[CRON] /bin/sh: source: not found
CentOSからFreeBSDに乗り換えた後、cronジョブが失敗するので調査しているときの覚書。
環境: FreeBSD 14.1
cronのメール内容
/bin/sh: source: not found
普段は使い慣れたbashをインストールして使っているけど、FreeBSDはshがデフォルトなのでsourceコマンドがない。
再現するためshシェルに切り替える。
# sh
sourceコマンドではなく「.」を使うらしい。
参考: . (dot) - 現行環境でシェル・ファイルを実行する - IBM Documentation
試しに実行してみる。
# . /root/.bash_profile && /usr/local/bin/bash /home/software/wordpress-backup-google-cloud-storage/main.sh
無事実行できた。
.bash_profileを実行するのはgsutilのための環境変数を設定したいから。
cronを設定変更。
# less /etc/cron.d/wordpress-backup
MAILTO="info@hoge.co.jp"0 3 * * * root . /root/.bash_profile && /usr/local/bin/bash /home/software/wordpress-backup-google-cloud-storage/main.sh