24

I was using a script to perform rsync in sudo crontab. The script does a 2-way rsync (from serverA to serverB and reverse). After I reboot both the server machines, the rsync is not working in sudo crontab. I also setup a new cronjob and it fails, The error is:

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

However, when run from terminal, the rync script works as expected without issues. please help.

Rahul
  • 67
kabeer
  • 241

5 Answers5

11

One of the reason of rsync connection being unexpectedly closed is the timeout issue, especially when it takes a while to calculate file checksums in order to check the differences on the remote host.

To avoid this problem, you need to add these settings into your ~/.ssh/config or /etc/ssh/ssh_config:

Host *
  ServerAliveInterval 30
  ServerAliveCountMax 6

and optionally similar on the remote server (in /etc/ssh/sshd_config), e.g.

ClientAliveInterval 30
ClientAliveCountMax 6

See: What the options ServerAliveInterval and ClientAliveInterval mean?

kenorb
  • 7,125
4

A little hard to answer given the almost total lack of relevant information but as a general rule, if a command works from the prompt but not from a cron job it's because you need to specify the full path to the command(s). Cron jobs do not have a normal user environment, which especially means they don't have the same PATH as regular users do.

4

This appears to happen when the connection is refused:

ssh: connect to host port 2222: Connection refused

followed by rsync error:

rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: unexplained error (code 255) at /SourceCache/rsync/rsync-45/rsync/io.c(453) [receiver=2.6.9]


Possible reasons:

  • In my scenario, I had a firewall issue. Punched a hole.
  • wrong password (unlikely to address your issue, but will cause the same error)
2

I have similar issues too, while I was sending roughly 50GB of data through the local network with the command

rsync -avhPW --progress . user@192.168.1.233:/path/to/target

The pipe broke a few times, but for the first few times I could just relaunch the command. However, after ~20 hours, the command stopped working with unexplained error. rsync didn't even compute the list of files of consideration. It is not the problem of timeout either - the target machine never received a request. I ended up rebooting the source machine. That made rsync work again.

Student
  • 121
0

Please look at you fail2ban list.

use the command: "fail2ban-client set YOURJAILNAMEHERE unbanip IPADDRESSHERE" to unban it and try again.

womble
  • 98,245