Apakah rsync adalah pilihan yang baik untuk proyek saya?
Saya harus:
- menyalin file dari folder sumber ke tujuan melalui SSH,
- pastikan semua file disalin,
- hapus file sumber setelah salinan.
- jika saya memiliki nama konflik, saya harus mengganti nama file.
Sepertinya saya bisa menggunakan opsi: --remove-source-files (untuk menghapus file sumber)
Tapi bagaimana rsync mengelola konflik, dapatkah saya memiliki aturan?
Gunakan kasing pada proyek saya:
Saya menjalankan perhitungan ilmiah pada server A dan hasilnya dimasukkan ke folder "proses", untuk setiap perhitungan saya memiliki repositori seperti ini: / process / calc1.
Sekarang saya ingin mentransfer repositori "/ calc1" ke server B (saya dapatkan / proses / calc1), dan hapus "calc1" dari server A.
... Selama perhitungan lain saya mendapatkan "/ process / calc2" di server A, idenya juga untuk memindahkan "calc2" di direktori "/ process /" di server B, maka saya sekarang di server B:
- / process / calc1
- / process / calc2
(dan / process / pada server A kosong).
Bagaimana rsync akan mengelola konflik (di server B) jika saya memiliki folder lain seperti "/ process / calc1" di server A setelah perhitungan baru (jika "/ proses / calc1" sudah ada di server B)?
Apakah mungkin untuk menambahkan aturan dengan rsync, dan mengganti nama "/ process / calc1" dengan "process / calc1R2" di server B? Dan seterusnya (mis: calc1R3)?
Terima kasih.
sumber
Sesuai namanya, rsync digunakan untuk menyinkronkan file. Ketika "disinkronkan", ini berarti bahwa file pada sumber dan tujuan adalah sama. Itu tidak tampak seperti apa yang ingin Anda lakukan.
Sepertinya Anda hanya ingin memindahkan beberapa file. Anda tidak perlu menggunakan rsync untuk itu. Sepertinya Anda menggunakan linux atau BSD. Anda bisa menggunakan mv -n di atas ssh. Opsi -n tidak menimpa file yang ada. Ini bukan 100% otomatis. Namun, saya tidak melihat bagaimana file tersebut sudah ada dalam kasus Anda. File akan disalin dari sumber ke tujuan dan kemudian dihapus dari sumber. Apakah Anda ingin menjalankan perhitungan yang sama lagi? Apakah itu sebabnya Anda akan berakhir dengan file dengan nama yang sama? Saya sarankan menambahkan nomor run atau batch ke nama folder. Anda ingin itu tetap jelas. Apakah Anda memiliki kendali atas nama folder? Ada detail lebih lanjut? Saya akan merekomendasikan menempatkan perintah dalam skrip bash atau serupa.
sumber
Untuk SSH, secara ringkas, gunakan ini:
Semuanya dijelaskan dalam rsync (1).
Adapun scripting untuk cronjob, untuk rsync atas ssh secara otomatis tanpa memerlukan kata sandi, lihat juga ssh-agent (1).
sumber