Bagaimana mencegah Rsync agar tidak mengirim file yang ditransfer?


72

Saya memiliki pengaturan koneksi sshfs dengan sistem file jarak jauh di server Linux. Saya melakukan Rsync dari server lokal saya ke sistem file ftpfs. Karena sifat dari pengaturan ini, saya tidak dapat melakukan chownapapun pada sistem file sshfs.

Ketika saya melakukan Rsync, ia mencoba meng-chown semua file setelah mentransfernya. Ini menghasilkan kesalahan chown, meskipun mentransfer file dengan baik.

Dengan Rsync, apakah ada cara untuk mengatakannya untuk tidak mencoba dan meng-chown file? Jika saya rsync suka 1000 file saya berakhir dengan log 1000 chown: permission denied (error 13)kesalahan. Saya tahu tidak ada salahnya untuk mendapatkan kesalahan ini karena kepemilikan file ditentukan oleh konfigurasi sshfs itu sendiri. Tapi alangkah baiknya tidak mendapatkannya.

Jawaban:


107

Anda mungkin menjalankan rsync seperti ini:

rsync -a dir/ remote:/dir/

The -apilihan menurut dokumentasi setara dengan:-rlptgoD

      -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X)

Anda mungkin ingin menghapus -odan -gopsi:

      -o, --owner                 preserve owner (super-user only)
      -g, --group                 preserve group

Jadi, alih-alih, perintah rsync Anda akan terlihat seperti ini:

rsync -rlptD dir/ remote:/dir/

Atau seperti yang ditunjukkan @glglgl :

rsync -a --no-o --no-g dir/ remote:/dir/

Opsi yang tersisa digunakan adalah:

      -r, --recursive             recurse into directories
      -l, --links                 copy symlinks as symlinks
      -p, --perms                 preserve permissions
      -t, --times                 preserve modification times
      -D                          same as --devices --specials
          --devices               preserve device files (super-user only)
          --specials              preserve special files

19
... atau hanya-a --no-o --no-g
glglgl

1
Saya menggunakan hanya rsync -r --no-o --no-g /source/* /dest/dan pemilik dan grup file di tujuan masih berubah sesuai dengan sumbernya. Ada ide?
Ram Patra


5

Jangan gunakan -aopsi, karena akan termasuk -popsi yang menjaga izin. Untuk situasi ini, -ritu sudah cukup.

Untuk info lebih lanjut, lihat man rsync.


4
Apakah Anda yakin -papa yang ingin saya hindari? Kepemilikan berbeda dari izin, benar?
Jake Wilson

0

Saya menemukan sesuatu yang serupa dimana rsynctidak mempertahankan pemilik dan grup file & direktori disinkronkan dari server jauh. Untuk memperbaiki, saya menyalin /etc/shadow,, /etc/groupdan /etc/passwdfile.

Ketika saya menjalankan rsyncperintah di bawahnya, ia berfungsi dengan baik sehingga mempertahankan izin, tautan simbolis & kepemilikan.

Saya telah mengatur kunci ssh untuk menggunakan ssh tanpa kata sandi.

rsync -avpog user@10.1.x.x:/usr/local /usr
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.