cron|cron実行時にcommand not foundでエラーになった場合の対処法
スポンサーリンク
原因
cron実行時に /bin/sh: [実行コマンド]: command not found が出力されることがあります。
これは、cronで実行したコマンドに環境変数のパスが通っていないことが原因です。
解決方法
対処方法は、いくつかあります。
【解決方法その1】絶対パスでコマンドを指定する
まずは、コマンドのパスを確認しましょう。
$ which sh /bin/sh
コマンドを絶対パスで書き直します。
* * * * * sh /backup.sh ⬇︎ * * * * * /bin/sh /backup.sh
【解決方法その2】cronの環境変数を指定してパスを通す
cronの環境変数のPATHを変更すると、コマンドを絶対パスで書く必要がなくなります。
PATH=/usr/bin:/bin * * * * * sh /backup.sh
補足
cronの実行時と通常のログイン時とでは環境変数が異なっています。
これは、通常のログイン時は、.bash_profileが実行されて環境変数が設定されているためです。
更新日:2018年09月30日
作成日:2018年07月08日