rsync hanya menyalin file baru, tidak ada pembaruan?

10

Saya ingin menggunakan rsync untuk menyalin file dari server jauh. saya minta

  • hanya menyalin file dari server, tidak mendorong kembali.
  • salin file yang tidak ada. Jika file jarak jauh lebih baru saya tidak ingin menyalinnya
  • memilikinya otomatis. Ini meminta saya untuk kata sandi saya setiap kali dan saya ingin itu dijalankan oleh cron. Jadi bagaimana cara menjalankannya dalam skrip bash yang dijalankan oleh cron?
isaaclw
sumber
Untuk "memilikinya otomatis" --password-fileopsi akan memberikan kata sandi ke prompt server. File tersebut seharusnya hanya memuat frasa sandi dalam plaintext dan tidak mengizinkan pengguna lain memiliki akses baca.
altmas5

Jawaban:

5

Poin 1 dan 2: Cara menentukan apa yang akan disalin dijawab dengan membaca manual rsync . Dalam kasus Anda, lihat terutama pada flag --ignore-existing.

Butir 3: Tutorial ini akan membuat Anda menggunakan ssh tanpa kata sandi dengan rsync. Rangkuman: mengatur ssh tanpa kata sandi dan menggunakan '-e ssh' untuk memberitahu rsync untuk menggunakan ssh alih-alih rsh untuk terhubung ke host jarak jauh.

pjz
sumber
Saya melihat pria itu dan saya tidak tahu apa yang akan memungkinkan saya untuk menyalin file baru saja dan tidak memperbarui.
1

Untuk bagian kedua, karena pjz menjawab sisanya, saya yakin Anda bisa menggunakan saklar --ignore-existing untuk hanya mendapatkan file baru.

Dari http://www.samba.org/ftp/rsync/rsync.html :

Ini memberitahu rsync untuk melewatkan pembaruan file yang sudah ada di tujuan (ini tidak mengabaikan direktori yang ada, atau tidak ada yang dilakukan). Lihat juga - yang ada. Opsi ini adalah aturan transfer, bukan pengecualian, sehingga tidak memengaruhi data yang masuk ke daftar file, dan karenanya tidak memengaruhi penghapusan. Itu hanya membatasi file yang diminta oleh penerima untuk ditransfer.

Opsi ini dapat bermanfaat bagi mereka yang melakukan pencadangan menggunakan opsi --link-dest ketika mereka perlu melanjutkan pencadangan yang terganggu. Karena menjalankan --link-dest disalin ke dalam hierarki direktori baru (bila digunakan dengan benar), menggunakan --ignore yang ada akan memastikan bahwa file yang sudah ditangani tidak mendapatkan tweak (yang menghindari perubahan dalam izin pada file yang ditautkan). Ini berarti bahwa opsi ini hanya melihat file yang ada di hierarki tujuan itu sendiri.

runlevelsix
sumber