Estou tentando copiar um arquivo de um servidor (Hosting Provider [Ubuntu]) para outro (Amazon EC2 [Ubuntu]) como parte de um cron.
Meu script cron é um script bash que cria um diretório e, em seguida, tenta scp os arquivos de um servidor para o outro.
mkdir db
scp -r -i /home/<user>/.ssh/id_rsa <user>@remote-server:/path/to/db/backups/* ./db
Como o cron usa um ambiente diferente, eu preciso fornecer um caminho completo para a chave ssh. No entanto, o problema com que me deparo é que o processo apenas transfere entre 1.5Mb e 3Mb antes aparentemente pendente indefinidamente .
O comportamento também está presente quando tento executar meu script em segundo plano.
bash /my/script &
Eu também tentei modificar meu script para usar rsync
em vez de scp
, mas recebo exatamente o mesmo problema.
Se eu executar este processo em primeiro plano, diretamente, ele transferirá o arquivo sem problemas.
bash /my/script
Não há registro ou saída que alude à razão pela qual isso acontece. Eu verifiquei /var/log/syslog
e também a saída de e-mail do cron, mas não há nenhuma indicação do motivo para isso.
TL; DR - executar scp
ou rsync
no plano de fundo via &
ou por meio de cron
faz com que a transferência de arquivos seja interrompida indefinidamente no início do processo de transferência.
Tags ssh networking cron rsync scp