Coloque o caminho completo para o rsync até mesmo em seu / usr / bin / backup , para que a linha nesse arquivo seja iniciada
/usr/bin/rsync <your other options>
E tente colocar uma linha como
logger -t my_backup Hello from /usr/bin/backup
para o seu script / usr / bin / backup e veja se alguma coisa é registrada em / var / log / messages (ou outro arquivo de log, dependendo da configuração do seu syslog). Alternativamente, você pode substituir o logger com
echo "Hello from /usr/bin/backup" >/tmp/backuptest
Ah, às vezes, o SELinux pode causar problemas como os que você encontrou. Está em uso?
Espero que isso ajude.
EDITAR : Faça com que sua linha rsync de / usr / bin / backup seja como
/usr/bin/rsync <your options> || echo "rsync died with error code $?" >> your_log
Talvez possamos entender porque o rsync está tão chateado.
AINDA OUTRA EDIÇÃO : OK, código de erro rsync 5. Isso significa
rsync error: error starting client-server protocol
Na maioria das vezes, isso acontece devido à senha incorreta, mesmo que a mensagem pareça mais enigmática.
Se você executar manualmente o seu script rsync como niklas, isso funciona, certo?
EDIT 3 : Spotted sua menção sobre chaveiro . Eu acho que o cron não usa o mesmo chaveiro que o usuário niklas durante o seu login. É por isso que o login vai p00f ao tentar executá-lo do cron. Você poderia usar uma chave RSA sem senha para isso e apenas restringi-la para executar o rsync?
EDIT 4 : Use a variável de ambiente RSYNC_PASSWORD . Isso pode ser feito colocando isso no topo do seu script de backup:
export RSYNC_PASSWORD="myprecioussssssss"
ou se você gostaria de armazenar a senha em um arquivo de texto, crie um arquivo e forneça uma opção - password-file para o rsync.
Se isso não funcionar, você pode fornecer a opção -e 'ssh -o IdentityFile = / path / to / your_file para rsync.