はじめに
ちょっとした環境をローカルで作った際に、
MacでCronを動かそうとしてつまづいたので、
解消までに試したことを忘備録。
目次
簡単なコマンドで動作確認
以下のようなcronを仕込んでみる。
*/2 * * * * echo "hello world" >> ~/Desktop/hello.txt
2分おきにデスクトップのhello.txtに「hello world」が書き込まれていれば、
cronは正常に動作していることが確認できる。
ログとして吐き出してみる
標準出力ごとログファイルに吐き出してみる。(2>&1
の部分)
*/2 * * * * [docker 実行したいコマンド] >> ~/Desktop/cron.log 2>&1
実行時のログが何かしら出力されるはず。
自分の場合、bash: docker: command not found
のエラーが出ていた。
「bash: docker: command not found」の対応
ローカルで以下を叩いてみる。
whereis docker
するとdocker: /usr/local/bin/docker
と出力されたため、
cronのdockerコマンドを明示的に指定する。
*/2 * * * * [/usr/local/bin/docker 実行したいコマンド] >> ~/Desktop/cron.log 2>&1
すると正常に動いた。
cronだと一部の環境変数が設定されず、
いつも通りに叩くだけだと使えないコマンドが出てくるみたい。
今回みたいにフルパス指定してあげると動かせる。
まとめ
以上、忘備録でした。
他にも、-itオプションがついたままだとエラーが出るなどもあるみたい。
色々、知らない仕様があるなあ。