Amazon Linuxを使用しており、ホームディレクトリからcronジョブを実行しようとしています(マシン上でsudo権限がありません)。crontab -eを実行して次の行を追加することでcronジョブを設定しています。
30 18 * * * /home/myuser/run_my_script.sh
しかし、何かがうまくいっていないようなので、その理由を知りたいと思いました。しかし、これを実行すると
[myuser@mymachine ~]$ tail /var/log/cron
tail: cannot open ‘/var/log/cron’ for reading: Permission denied
役に立ちません。なぜ実行されないのか、またはスクリプトのどこで問題が発生しているのかをどうやって調べればよいのでしょうか?
答え1
テーブルエントリの末尾に以下を追加しますcron
: >> /home/myuser/myscript.log 2>&1
これにより、出力がログ ファイルにキャプチャされます。デフォルトでは、出力はローカル メール デーモンを使用してジョブを所有するユーザーにメールで送信されますが、このデーモンが AWS インスタンスでデフォルトで実行されているかどうかはわかりません。実行されている場合は、mail
ジョブを所有するユーザーとして実行してみてください。探している出力とともに、いくつかのメッセージが待機している可能性があります。