Bagaimana cara mempertahankan direktori kloning jarak jauh dengan rsync?

1

Saya memiliki akses SSH (menggunakan pasangan kunci SSH) ke mesin jarak jauh. Saya ingin menyimpan direktori pada mesin jarak jauh persis sama dengan direktori lokal yang diberikan (sinkronisasi satu arah). Pemeriksaan untuk kesetaraan file harus dilakukan berdasarkan hash dari konten file biner (bukan ukuran / tanggal).

  1. Apa perintah rsync yang benar untuk melakukan itu (bukan layanan rsync)?
  2. Bagaimana izin file ditangani?
  3. Bagaimana tanggal modifikasi file ditangani?
  4. Bagaimana rsync bereaksi terhadap kegagalan dan apa kode keluar?
Gustave
sumber

Jawaban:

1

Rsync memeriksa isi file, bukan tanggal dan / atau ukuran file. Jika isinya berbeda tetapi dengan jalur dan nama yang sama, maka file tersebut akan ditimpa.

Sintaks untuk rsync adalah rsync options source destination jadi jika Anda ingin menyimpan direktori remote yang disinkronkan dengan yang lokal ini harus melakukan trik:

rsync -azh local_folder user@remote_server:/path/to/destination/

Jika Anda ingin menggunakan SSH sebagai protokol transfer, maka ini berfungsi untuk saya:

rsync -azhe ssh local_folder user@remote_server:/path/to/destination

Bagaimana izin file ditangani?   Bagaimana tanggal modifikasi file ditangani?

Itu a parameter mempertahankan symlink, izin file, cap waktu ... jika Anda tidak ingin mentransfer informasi ini hanya mengecualikannya dari perintah, itu akan dimiliki oleh pengguna dengan siapa Anda login di sesi SSH.

Bagaimana rsync bereaksi terhadap kegagalan dan apa kode keluar?

Sebagian besar perintah / program mengembalikan 0 ketika berhasil dan nomor lainnya salah. Berikut adalah daftar kode keluar rsync sebagai referensi

Purefan
sumber
Pernyataan di paragraf pertama dari jawaban ini, "Rsync memeriksa isi file, bukan tanggal dan / atau ukuran file" , salah. Menurut halaman manual rsync , "Biasanya rsync akan melewatkan file apa pun yang sudah berukuran sama dan memiliki cap waktu modifikasi yang sama" . Periksa halaman manual untuk opsi --ignore-times, --size-only, --checksum, dll.
Yingyu YOU