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     

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 thegooduser@test.desktop "touch /dept/intranet/dept/atest/f1/test")

Bukan dari salah satu di atas

Jalankan perintah Anda dengan -vopsi, untuk verbose.


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.