rsync hatası: “/ foo / bar” üzerinde süreler ayarlanamadı: İşleme izin verilmiyor


194

Ben rsync kafa karıştırıcı bir hata alıyorum ve web arama (ve her zamanki gibi tüm chmod'ing) bulduğum ilk şeyler çözmüyor:

rsync: failed to set times on "/foo/bar": Operation not permitted (1)
rsync error: some files could not be transferred (code 23) 
  at /SourceCache/rsync/rsync-35.2/rsync/main.c(992) [sender=2.6.9]

Bu hataya rağmen çalışıyor gibi görünüyor, ancak bundan kurtulmak güzel olurdu.


hayır, sadece normal bir dizin kadarıyla söyleyebilirim.
dreeves

Hata kodum 22: rsync: zaman ayarlanamadı, ancak benzer bir sorunla karşılaştı ... Geçersiz argüman (22). Biraz kontrol ettikten sonra dosyalarımın son 1956'da değiştirildiği tarihlendirildi! Çözüm: Tüm dosyalara dokunun, sorun çözüldü. :) "bulmak. -print0 | xargs -0 dokunma"
KIAaze

Aynı hedefe bir cron işi ayarladıysanız, bu hatanın ortaya çıkacağını görüyorum. Cron işi (crontab) için zamanın değiştirilmesi bu işin etrafında dolaşmaya yardımcı olacaktır. Benim durumumda, bu hatayı sadece bir cron işi kurduğumda manuel bir rysnc yaparsam alırım.
NelsonGon

Yanıtlar:


286

Eğer /foo/barsorun olabileceğini, NFS (ya da muhtemelen bazı FUSE dosya sistemi) üzerindedir.

Her iki durumda da, komut satırınıza -O/ eklemek --omit-dir-timesdizinler üzerinde değişiklik zamanları ayarlamaya çalışmaktan kaçınacaktır.


8
Komik şey ext3 ile ext3'ü her iki işletim sisteminin de linux ile senkronize ediyorum. Daha önce hiç bu anahtarı kullanmak zorunda kalmadım. -O hile yaptı, ama keşke kullanmak zorunda kalmasaydım.
d -_- b

3
Teşekkürler! Bazı VPS ana bilgisayarlarının (örn. Xlshosting.nl) bunu dahili olarak kullandığı ortaya çıkar ve bu da rsync ile ilgili sorunlar verebilir.
Frederik

2
Ben aynı sorunu Linux ext4 Linux ext4 rsyncing ettik: a "süreler ayarlanamaz: dizinler için semboller için işleme izin verilmez" . -OAçıkçası yardım etmiyor. Yedek bölümüm ext4 yerine ext3 olduğunda bu gerçekleşmezdi.
Marius Gedminas

10
Ben rsync -avc kullanıyordum ve -O ekleyerek yardımcı olmadı. Sonra -a -O olduğunu geçersiz kılan -t içeren -rlptgoD için equiv olduğunu okudum. Bu yüzden benim için düzeltme -rlpgoDvc kullanmaktı
dlink

3
--no-tima edilen seçeneği kaldırmak için ekleyebilirsiniz @dlink .
Noam Nelke

86

Sorun muhtemelen / foo / bar'ın uzak bir darwin (OS X) sistemindeki yazma işlemine ait olmamasıdır. Bu soruna bir çözüm, uzak sitede yeterli sahibi ayarlamaktır.

Bu yanıt oylandığından ve bu nedenle birileri için umarım faydalı olduğundan, daha net olması için uzatıyorum.

Bunun olmasının nedeni, rsync'in dosyaları kopyalarken muhtemelen rasgele bir değişiklik zamanı (mtime) ayarlamaya çalışmasıdır.

Bu darwin'in sistem utime()işlevini yapabilmek için yazma işleminin etkin kullanıcı kimliğinin dosya kullanıcı kimliği veya süper kullanıcınınki ile aynı olması gerekir, bkz. Opengroup utime's page . Referans olarak rsync posta listesindeki bu tartışmayı kontrol edin .


10
Linux'ta aynı (benim durumumda Debian Sıkıştır) ... Hedef dizinin sahibi değilsem, rsync "süreleri ayarlayamadı" hata iletisini verir. (
Dizinde

1
Aynı konuda tuzağa düştüm. NTFS'yi uid = user ile bağlayana kadar.
gavenkoa

3
Etkilemeye çalıştığım dizinin sahibini (uzak sunucuda) rsync komutunu kullanarak yerel Bash komut dosyamda rsync ile oturum açmaya çalışan kullanıcıyla değiştirdiğimde bu hata benim için gitti. Başka bir deyişle: /remote/path/to/foo/barBu komutla uzak sunucuya yazmaya çalışıyordum : rsync -avzP --exclude '.DS_Store' /local/path/to/foo/bar/ user1@1.2.3.4:/remote/path/to/foo/bar ve user1bunun sahibini yaptığımda /remoe/path/to/foo/bar$ chown -R user1 /remote/path/to/foo/bar
ortadan kaybolan

1
Dosyalarınızı bir gruptaki diğer kullanıcılarla paylaşırsanız, örneğin yapışkan biti kullanırsanız, sahibi değiştirmek gerçekten çözüm değildir. Bu uyarıyı önlemek için -t ve -O eklemiyoruz.
R. van Twisk

1
Bir kullanıcı dosya veya dir sahibi olan bir grubun parçasıysa VEYA çalışmaması gerekiyorsa, bu soruyu daha ayrıntılı bir şekilde açıklayabilir misiniz?
Elijah Lynn

4

@ Racl101 bir yanıta yorum yaptığından, bu sorun klasör sahibiyle ilgili olabilir . Rsync komutu, klasör sahibininkiyle aynı kullanıcı tarafından yapılmalıdır. Aynı değilse, değiştirebilirsiniz.

chown -R userCorrect /remote/path/to/foo/bar

2

Benim durumumda sorun "alıcı bağlama noktası" yanlış monte edildi. Salt okunur moddaydı (bazı geniş nedenlerden dolayı). Görünüşe göre rsync dosyaları kopyalıyordu ama değildi. FStab dosyamı kontrol ettim ve bağlama seçeneklerini varsayılan olarak değiştirdim, dosya sistemini yeniden bağladım ve rsync'i tekrar çalıştırdım. Tamam o zaman.


2

Ben de aynı problemi yaşadım. Benim için çözüm uzak dosyayı silmek ve rsyncyeniden oluşturmak izin .


0

Süreleri (düzgün) işlemeyen bir dosya sistemine yazarken bu sorunu gördüm - Bence SMB paylaşımları ya da FAT falan.

Hedef dosya sisteminiz nedir?


Mac'im, linux'a (bir slicehost makinesi) rsync'ing.
dreeves

Ah, garip ... Mac'te rsync kullandığınız için, sizi uyarmalıyım: tüm OS X dosya özniteliklerini düzgün bir şekilde korumaz, bu yüzden Kötü Şeyler olabilir. Bkz. Örneğin: blog.plasticsfuture.org/2006/04/23/mac-backup-software-harmful
David Wolever

Bununla birlikte, MacPorts ( sudo port install rsync) ' dan en son sürümü kullanabilirsiniz ve daha az kesilir . Kontrol etmek için:: rsync --versionrsync sürüm 3.0.5 protokol sürümü 30 ... ek, ACL'ler, xattr'ler, iconv, semboller, dosya bayrakları ... (ACL'ler ve xattr'ler önemli olanlar)
David Wolever

1
Macintosh üzerinde rsync gerçekten tüm dosya özniteliklerini ayarlar ve oldukça uzun bir süre için yaptı, lütfen "Kötü şeyler olabilir" referans URL adresinin 2006 tarihli olduğunu unutmayın!
tgunr

2
Cevaplar gerçekten sorular içermemelidir. Bu bir yorum olarak daha uygun olacaktır.
Brian

0

Bazı dosyalar için ayrıcalıklarınız olmayabilir. Bir yönetici hesabından "sudo rsync -av" komutunu deneyin. Alternatif olarak, kök hesabı etkinleştirin ve root olarak oturum açın. Bu, sisteminizi tamamen hortumlamanıza ve rsync'inizi kaba kuvvetlendirmenize izin vermelidir! ;-) Yukarıda belirtilen - uzatılmış niteliklerin yardımcı olup olmayacağından emin değilim, ama sadece iyi bir ölçü için de attım.


0

Bu bana xfs (rw,relatime,seclabel,attr2,inode64,noquota)her iki üyesi olduğumuz bir gruptaki başka bir kullanıcının sahip olduğu dizinlerin bulunduğu bir bölümde oldu. Grup üyeliği oturum açmadan önce kurulmuştu ve dizin yapısının tamamı grup tarafından yazılabilirdi. Ben manuel olarak çalıştırmak sudo chown -R otheruser.group directoryve sudo chmod -R g+rw directorybunu onaylamak için vardı .

Hala neden işe yaramadığına dair hiçbir fikrim yok, ancak sahipliğini almak sudo chown -R myuser.group directorydüzeltildi. Belki de SELinux ile ilgili?


Man sayfası uygulamanın UID'sini söylüyor. utime()çalışmak için dosyanın UID'siyle eşleşmelidir . Kök olarak da çalışabilir ve yapabilirsiniz. Ancak dosyanın UID'si farklıysa, zamanı "şimdi" dışında bir değere değiştirmenize izin vermezler.
Alexis Wilke

Böyle bir adam sayfasına bağlantı verebilir misiniz? Hiçbirimden bahsetmedim utime().
Sam Brightman

1
linux.die.net/man/2/utime İlgili paragraf: "Şu durumlarda zaman damgalarının değiştirilmesine izin verilir: işlemin uygun ayrıcalıkları varsa veya etkin kullanıcı kimliği dosyanın kullanıcı kimliğine eşitse veya süre NULL olduğunda ve işlem NULL olduğunda dosya için yazma izni. "
Alexis Wilke

0

Son zamanlarda değiştirilen dosyalar için zamanı ayarlayamadığından, kaynak veya hedefte yakın zamanda değiştirilmemiş dosyalar için rsync işlemini çalıştırırsanız bu hata da açılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.