rsync: gagal mengatur waktu di "<dir path>"

20

Saya mencoba rsync file dari satu server ke yang lain tetapi mendapatkan kesalahan ini

rsync: gagal mengatur waktu pada "/ dept / intranet / dept / atest /.": Operasi tidak diizinkan (1)

Adakah yang bisa membantu saya mengapa begitu?

Saya kira itu adalah beberapa masalah izin.

Ini adalah perintah saya:

RSYNC=/usr/bin/rsync
SSH=/usr/bin/ssh
REMOTE_HOST=test.desktop

${RSYNC} -crlt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

LOCAL_DIR = workplace1/f1/
permissions drwxr-xr-x   11 root     root         4096 Mar 19  2009 f1

REMOTE_DIR=/dept/intranet/dept/atest/f1/
permissions :drwxr-xr-x 14 dbld   a1     4096 Mar 19  2009 f1     
TheVillageIdiot
sumber
dapatkah Anda memberi kami informasi lebih lanjut? * Perintah rsync Anda * izin file lokal + pengguna jarak jauh *
Brian Clozel
mengedit pertanyaan.

Jawaban:

26

Hanya saja kita berada di halaman yang sama:

-r recursive
-l preserve links
-c sync based on file checksum
-t preserve modification times

Lalu dua hal:

Itu hanya sistem file

Jika folder tujuan adalah NFS mount, atau beberapa filesystem yang tidak menangani mod-times dengan baik, well itu rusak.

Coba tambahkan parameter -O(untuk --omit-dir-times) ke perintah Anda.

Waktu modifikasi akan dipertahankan, tetapi dihilangkan untuk direktori:

${RSYNC} -crlOt -e ${SSH} ${LOCAL_DIR} ${REMOTE_HOST}:${REMOTE_DIR}

Ini adalah tebakan terbaik saya, karena sinkronisasi file tampaknya berfungsi, dan kesalahan Anda terjadi pada sinkronisasi waktu mod. Bagaimanapun, apakah Anda benar-benar perlu mempertahankan waktu modifikasi ? The -cfile pilihan melewatkan berdasarkan checksum (kali jadi mod tidak masalah).

Atau, sebenarnya, masalah izin

  • apakah pengguna yang menjalankan skrip memiliki cukup hak untuk mengedit / menulis folder tujuan? (coba ssh -vv test.desktop "touch /dept/intranet/dept/atest/f1/test")
  • apakah pengguna yang menjalankan skrip adalah "the Right One ™" (coba ssh -vv [email protected] "touch /dept/intranet/dept/atest/f1/test")

Bukan dari salah satu di atas

Jalankan perintah Anda dengan -vopsi, untuk verbose.

Brian Clozel
sumber
1
Terima kasih atas --omit-dir-timestipnya. Sangat membantu.
JakeGould
1

Dalam kasus saya, saya telah memecahkan masalah dengan memberikan izin pada direktori induk tempat sinkronisasi dilakukan.

Sebenarnya pemilik direktori induk adalah selain pengguna yang melakukan sinkronisasi.

Matías
sumber