Saya mencoba mengatur rsync untuk menyinkronkan server web utama saya ke server jarak jauh dengan menambahkan file yang baru dibuat ke nanti.
Inilah perintah yang saya gunakan:
rsync -avh --update -e "ssh -i /path/to/thishost-rsync-key" remoteuser@remotehost:/foo/bar /foo/bar
Tetapi tampaknya server web benar-benar mentransfer semua file meskipun ada tanda '--perbarui'. Saya telah mencoba kombinasi flag yang berbeda (mis. Menghilangkan '-a' dan menggunakan '-uv' sebagai gantinya) tetapi tidak ada yang membantu. Jadi bertanya-tanya bagaimana saya bisa memodifikasi perintah rsync untuk mengirim hanya file yang baru ditambahkan. Terima kasih
rsync /foo/bar remoteuser@remotehost:/foo/bar
-a
opsi yang tersirat (pemilik, grup, perms, ...) itu harus menjadi penyebab masalah kami.-c
opsi. Itu melompati file yang ada berdasarkan pada checksum, bukan waktu atau ukuran modifikasi.Jawaban:
Dari
man rsync
:--update
melakukan sesuatu yang sedikit berbeda, yang mungkin mengapa Anda mendapatkan hasil yang tidak terduga (lihatman rsync
):sumber
--ignore-existing
berarti tidak mentransfer file yang ada pada penerima, atau tidak mentransfer file jika beberapa file / folder dengan nama yang sama ada pada penerima?Dalam kasus saya, saya memiliki masalah yang sama, semua file ditransfer bukan hanya yang dimodifikasi / baru. Saya memecahkan ini dengan menggunakan parameter
-t
(bukan-a
), dan-P
(setara dengan--partial --progress
):Ini hanya mentransfer file baru, dan file yang sudah ada tetapi diubah:
-a
tidak terlalu banyak, seperti sinkronisasi ID pengguna dan grup, yang dalam kasus saya tidak dapat berfungsi karena saya memiliki pengguna dan grup yang berbeda pada sumber dan sistem target saya.Parameter secara rinci:
-h
: angka yang dapat dibaca manusia-v
: verbose-r
: berulang ke direktori-P
:--partial
(simpan sebagian file yang ditransfer) +--progress
(tampilkan kemajuan selama transfer)-t
: pertahankan waktu modifikasisumber
-rlptgoD
, jadi izin tidak diratakan, grup dan pemilik dipertahankan –bukan cadangan play-safe khas saya ...)Dari pengalaman saya dengan rsync, penyalinan partisi 1TB terlalu besar untuk menjadi efisien. Dibutuhkan rsync selamanya untuk memprosesnya. Sebagai gantinya, lakukan dengan subdirektori. Yaitu, jalankan rsync untuk setiap subdirektori utama. Ini berjalan jauh lebih cepat jika tidak harus menyulap puluhan ribu file.
sumber
Mencoba
sumber