タイトルの現象について一応は解決しました。解決したのですが、うまく行かなかった原因も、うまく行った理由もよく分かっていません。
確認したことを簡単にまとめておきます。
スクリプトの内容
- テキストデータを処理するスクリプト
- 中間ファイル、実行の様子を確認できるログファイルを書き出す
動かない状況
- 他のスクリプト(同じものを3個登録)の実行実績がある環境
- コマンドラインから「./script.sh」だと動く
- コマンドラインから「/path/to/script.sh」だと動く
- cronだと動かない
- 登録当初は「chmod 744」だったのを「755」に変更。
- コマンドラインでbashのパス補完で確認した「/path/to/script.sh」のコピペもダメ
確認したこと
- croneventsでは実行した様子がログとして出力されない
- /var/log/cron.logで見ると「/path/to/script.sh」があることは認識している
- 起動時に「-x ext,sch,proc,pars,load,misc」を指定しています
解決した方法
- 最終行にあった「/path/to/script.sh」を先頭行に移動したら動いた
備考
なんで、この方法で動いたのか不明。途中で「chmod 755」に変更したのがポイントで、この変更状況がcronに認識されていなかったのかもしれない。しばらく様子見。