Apakah Rsync Mengizinkan File Disinkronkan Kedua Cara

25

Saya telah membuat cadangan server web linux menggunakan rsync dengan cygwin. Saya sekarang memiliki salinan server yang sempurna di laptop windows saya. Jika saya menghapus atau memodifikasi file di laptop saya dan menjalankan rsync lagi dengan cygwin apakah itu akan menghapus / memperbarui file yang sama di server? Saya di bawah kesan bahwa jika saya menghapus / memodifikasi pada server dan menjalankan rsync di laptop saya itu akan menghapus / memodifikasi file lokal di laptop saya tetapi apakah ini bekerja secara terbalik?

Dan Hastings
sumber
12
Ini bukan jawaban untuk pertanyaan Anda, tetapi Anda harus melihatnya unison. Ini adalah alat sinkronisasi yang menyimpan status file pada kedua salinan dan karenanya memungkinkan sinkronisasi dua arah. Ada juga paket cygwin.
Dubu

Jawaban:

29

Rsync melakukan sinkronisasi satu arah, namun terserah Anda untuk memutuskan ke mana sinkronisasi berjalan.

Sintaks perintah Rsync adalah sebagai berikut:

rsync [OPTION...] SRC... [DEST]

Perhatikan bahwa Anda menentukan sinkronisasi dari sumber ke tujuan. Sumber dan tujuan dapat berupa jalur lokal atau jauh.

Sebagai contoh jika Anda ingin menyalin file dari server Anda ke laptop Anda Anda lakukan:

rsync [OPTION...] <server-path> <laptop-path>

Untuk menyinkronkan arah berlawanan yang Anda lakukan:

rsync [OPTION...] <laptop-path> <server-path>

Jadi untuk menjawab pertanyaan Anda: itu tergantung pada bagaimana Anda menjalankan rsync.

Jika Anda ingin file dihapus di tujuan, Anda perlu menggunakan --deleteopsi. Tapi hati-hati dengan itu, karena jika Anda membuat kesalahan ketika menentukan sumber Anda maka Anda akan akhirnya menghapus semua yang ada di tujuan Anda. Lebih aman untuk menguji sinkronisasi Anda tanpa --deleteopsi terlebih dahulu dan begitu Anda puas dengan cara kerjanya, Anda dapat menambahkan--delete opsi.

Seperti yang disarankan oleh masegaloeh dalam komentar di bawah, -natau --dry-runopsi juga dapat digunakan untuk menguji rsyncperilaku perintah.

grekasius
sumber
9
Catatan tambahan: Untuk menguji perilaku rsync, Anda dapat menggunakan parameter -natau --dry-run, jadi Anda akan tahu file mana yang akan dihapus dan dimodifikasi
masegaloeh
1

Alat pembungkus yang ditulis dalam python3 disebut bsyncwraps finddan rsyncperintah yang menyederhanakan tugas. Github repo: https://github.com/dooblem/bsync

Jangan takut ketika ada di github (yaitu dengan cara yang Anda pikir Anda harus menjadi programmer untuk menggunakan alat ini).

biocyberman
sumber
-1

pertimbangkan untuk menggunakan --delete-after dan bukan --delete, ini akan memastikan bahwa pihak penerima Anda akan menghapus file setelah transfer, bukan sebelumnya.

Moti
sumber
Saya menganggap bahwa downvotes adalah karena OP tidak berusaha untuk rsyncmenghapus apa pun. Dia menghapus semuanya sendiri. Karena itu, petunjuk bermanfaat untuk rsync'ing secara umum. Terima kasih.
harperville