O Cron executa comandos sem um ambiente, portanto não há PATH
variable set. Por isso, é necessário especificar o caminho completo para rsync
em seu script.
if [ -d "/media/Beagle/books" ]; then
/usr/bin/rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi
Além disso, se você estiver executando crontab -e
, não inclua o nome de usuário na entrada do crontab. Seu crontab deve ser parecido com
55 12 * * * /storage/bin/rsync-books
EDIT: o cron é executado em um shell não interativo para que o ambiente (e o PATH) seja diferente do que você espera. É sempre melhor especificar caminhos completos em qualquer script que será executado a partir do cron.