Saya pernah mengalami hal ini rsyncdi masa lalu. Solusi yang memperbaikinya bagi saya adalah menjalankannya dari dalam screensesi, yang dapat membantu menjaga koneksi ke server jarak jauh.
screen -LS rsync
[execute your rsync command]
Ctrl-A+D to detach from the session
Anda dapat memeriksa status dengan menjalankan screen -x rsync(atau apa pun yang Anda memutuskan untuk memberi nama sesi jika Anda memberinya nama, yang tidak diperlukan). Ini akan melampirkan kembali shell Anda saat ini untuk sesi itu. Ingatlah untuk melepaskannya lagi setelah Anda memeriksa statusnya agar tetap berjalan di latar belakang.
Anda juga dapat menjalankan perintah untuk dijalankan melalui screendi latar belakang dalam satu kali gagal dengan melakukan [seseorang tolong perbaiki saya jika saya salah] screen -dm 'command'. Anda mungkin ingin man screensebelum mencoba yang terakhir.
EDIT:
Saya mengedit jawaban saya karena Anda telah mengkonfirmasi bahwa screentidak memberikan bantuan dalam skenario ini, tetapi Anda menjawab komentar saya menyarankan untuk mencoba scpdan melihat hasil seperti apa yang Anda dapatkan, yang Anda jawab dengan aneh, itu bekerja dengan baik.
Jadi jawaban baru saya adalah ini: gunakan scp- atau ssh(dengan tar) - bukanrsync
Memang, scptidak mendukung sejumlah besar fitur seperti rsync, tetapi Anda akan benar-benar terkejut untuk menemukan betapa banyak fitur yang tidak support yang hampir identik dengan yang rsync.
Skenario dunia nyata untuk scpdan alternatif lain untuk rsync:
Beberapa waktu yang lalu, saya ditugaskan untuk membuat skrip shell yang akan menarik log dari server produksi kami dan menyimpannya secara lokal di server web sehingga pengembang dapat mengaksesnya untuk tujuan pemecahan masalah. Setelah gagal mencoba membuat tim Unix menginstal rsyncdi server kami, saya menemukan solusi scpyang bekerja dengan baik.
Yang sedang berkata, saya baru-baru ini memodifikasi skrip sehingga semua yang digunakan adalah sshdan tar- GNU tar/ gtar, tepatnya. GNU tarmendukung banyak opsi yang benar-benar akan Anda temukan rsync, seperti --include,, --excludepelestarian izin / atribut, kompresi, dll.
Cara saya sekarang menyelesaikan ini adalah dengan ssh-ing ke server jauh (melalui pubkey auth) dan menggunakan gtar -czf - [other options such as --include='*.log' and --exclude='*core*', etc.]- ini menulis semua info stdout, yang kemudian disalurkan [secara lokal] ke tar -xzfsehingga tidak ada perubahan yang dibuat pada server produksi jarak jauh , dan semua file ditarik apa adanya ke server lokal. Ini merupakan alternatif yang bagus untuk rsynckasus ini. Satu-satunya hal penting yang tidak didukung tarmaupun tidak scpadalah cadangan inkremental dan tingkat kesalahan blok-tingkat memeriksa rsyncfitur itu.
Perintah lengkap yang saya maksudkan ketika menggunakan sshdan tarakan menjadi seperti ini (remote adalah Solaris 10; lokal adalah Debian, untuk apa nilainya):
cd /var/www/remotelogs
ssh -C user@remotehost "cd /path/to/remote/app.directories; gtar -czf - --include='*.log' --exclude='*.pid' --exlude='*core*' *" | tar -xz
Dalam skenario Anda, itu akan menjadi sebaliknya - tar -cf -secara lokal, dan pipa ke server jauh melalui ssh user@remotehost "tar -xf -"- ada jawaban lain yang merujuk jenis perilaku ini tetapi tidak masuk ke detail sebanyak mungkin.
Ada beberapa opsi lain yang telah saya sertakan untuk mempercepat. Saya mengatur waktu semuanya tanpa henti untuk mendapatkan waktu eksekusi serendah mungkin. Anda akan berpikir bahwa menggunakan kompresi dengan tartidak ada gunanya, tetapi sebenarnya mempercepat segalanya, seperti halnya menggunakan -Cflag dengan sshuntuk mengaktifkan sshkompresi juga. Saya dapat memperbarui posting ini di kemudian hari untuk memasukkan perintah persis yang saya gunakan (yang sangat mirip dengan apa yang saya posting), tetapi saya tidak merasa ingin mendapatkan VPN saat ini karena saya sedang berlibur minggu ini.
Pada Solaris 10, saya juga menggunakan -c blowfish, karena ini adalah cipher tercepat untuk mengotentikasi dan juga membantu mempercepat, tetapi Solaris 11 kami tidak mendukungnya atau menonaktifkan cipher suite ini.
Selain itu, jika Anda memilih untuk menggunakan opsi ssh/ tar, sebenarnya akan menjadi ide yang baik untuk mengimplementasikan solusi asli saya menggunakan screenjika Anda melakukan pencadangan yang akan memakan waktu. Jika tidak, pastikan pengaturan keepalive / timeout Anda di ssh_config-tweak tepat, atau metode ini juga akan sangat mungkin menyebabkan pipa rusak.
Bahkan jika Anda ikut scp, saya selalu menganggapnya sebagai praktik terbaik untuk digunakan screenatau tmuxketika melakukan operasi semacam ini, untuk berjaga-jaga . Sering kali saya tidak mengikuti saran saya sendiri dan gagal melakukan ini, tetapi memang merupakan praktik yang baik untuk menggunakan salah satu alat ini untuk memastikan bahwa pekerjaan jarak jauh tidak kacau karena sesi shell aktif Anda terputus entah bagaimana.
Saya tahu Anda ingin mengetahui akar penyebab rsyncmasalah Anda . Namun, jika ini benar-benar penting, ini adalah dua solusi hebat yang dapat Anda coba untuk sementara waktu.
kerberosuntuk mengotentikasi pada server jauh.