rsync error error yang tidak dapat dijelaskan (kode 255) di io.c

8

Saya menggunakan skrip untuk melakukan rsync di sudo crontab. Script melakukan rsync 2 arah (dari serverA ke serverB dan mundur). Setelah saya reboot kedua mesin server, rsync tidak berfungsi sudo crontab. Saya juga menyiapkan cronjob baru dan gagal, Kesalahannya adalah:

rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]

Namun, ketika dijalankan dari terminal, skrip rync berfungsi seperti yang diharapkan tanpa masalah. tolong bantu.

kabeer
sumber

Jawaban:

3

Agak sulit dijawab mengingat hampir tidak ada informasi yang relevan tetapi sebagai aturan umum, jika suatu perintah bekerja dari prompt tetapi bukan dari tugas cron, itu karena Anda perlu menentukan path lengkap ke perintah. Pekerjaan Cron tidak memiliki lingkungan pengguna normal, yang terutama berarti mereka tidak memiliki PATH yang sama seperti yang dilakukan pengguna biasa.

John Gardeniers
sumber
Saya dulu memiliki masalah yang sama dengan rsync 2.6.8, ternyata bug yang menghentikan tranmisi yang di-cron secara acak, tetapi saya tidak ingat apakah ia memiliki kode kesalahan itu. Itu di bawah CentOS 5.5 pada waktu itu. Kemudian dengan rsync versi CentOS yang lebih baru datang ke 3.x dan masalah ini hilang untuk selamanya.
David Ramirez
3

Ini tampaknya terjadi ketika koneksi ditolak:

ssh: terhubung ke port host 2222: Koneksi ditolak

diikuti oleh rsynckesalahan:

rsync: koneksi ditutup secara tak terduga (0 byte diterima sejauh ini) [receiver] kesalahan rsync: kesalahan yang tidak dapat dijelaskan (kode 255) di /SourceCache/rsync/rsync-45/rsync/io.c(453) [receiver = 2.6.9]


Alasan yang mungkin:

  • Dalam skenario saya, saya memiliki masalah firewall. Memukul lubang.
  • kata sandi salah (tidak mungkin mengatasi masalah Anda, tetapi akan menyebabkan kesalahan yang sama)
Arsitektur Swift
sumber
3

Salah satu alasan rsynckoneksi ditutup secara tidak terduga adalah masalah batas waktu, terutama ketika dibutuhkan beberapa saat untuk menghitung checksum file untuk memeriksa perbedaan pada host jarak jauh.

Untuk menghindari masalah ini, Anda perlu menambahkan pengaturan ini ke dalam ~/.ssh/configatau /etc/ssh/ssh_config:

Host *
  ServerAliveInterval 30
  ServerAliveCountMax 6

dan secara opsional serupa pada server jarak jauh (dalam /etc/ssh/sshd_config), mis

ClientAliveInterval 30
ClientAliveCountMax 6

Lihat: Apa opsi ServerAliveIntervaldan ClientAliveIntervalartinya?

kenorb
sumber
0

Silakan lihat daftar fail2ban Anda.

gunakan perintah: "fail2ban-client atur YOURJAILNAMEHERE unbanip IPADDRESSHERE" untuk membatalkan pembatalannya dan coba lagi.

Linkinall
sumber