Cronjobは実行されません。

Cronjobは実行されません。

rsync-bookscrontabを使って実行しようとしています。入力crontab -e結果:

55 12 * * * diegoaguilar /storage/bin/rsync-books

/storage/bin/rsync-booksのように見えます。

if [ -d "/media/Beagle/books" ]; then
  rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi

確認のためにスクリプトに実行権限があります。私はwaitコマンドを試していて、/media/Beagle/booksが存在したときに何もrsyncされず、ログファイルも生成されませんでした。

私が逃したものはありますか?

答え1

Cronは環境なしでコマンドを実行するため、PATH変数は設定されません。したがって、rsyncスクリプトでフルパスを指定する必要があります。

if [ -d "/media/Beagle/books" ]; then
  /usr/bin/rsync -rP --delete --verbose /storage/Copy/Books/ /media/Beagle/books >> ~/rsync-books.log
fi

また、実行している場合は、crontab -ecrontabエントリにユーザー名を含めないでください。あなたのcrontabは次のようになります

55 12 * * * /storage/bin/rsync-books

編集:cronは非対話型シェルで実行されるため、環境(およびパス)が期待したものと異なる場合があります。 cronで実行するスクリプトへのフルパスを指定するのが最善です。

関連情報