Crontab スクリプトが Ubuntu で機能しないのはなぜですか?
クローン
多くの場合、
間違った crontab 表記 権限の問題 環境変数
このコミュニティ wiki は、
回答ごとに 1 つの理由 (実行されない理由の詳細) と、その 1 つの理由に対する修正を含めてください.
cron 固有の問題のみを記述してください.シェルからは期待どおりに実行されるが、cron によって誤って実行されるコマンド.
異なる環境
Cron は、最小限の環境変数セットをジョブに渡します.違いを確認するには、次のようなダミー ジョブを追加します.
ここでよくある「落とし穴」は、
これを回避するには、スクリプトの先頭に独自の
代わりに、すべてのコマンドへの絶対パスを使用することを好む人もいます.私はそれに対してお勧めします.スクリプトを別のシステムで実行したい場合にどうなるかを考えてみてください.そのシステムでは、代わりにコマンドが
crontab ファイルに PATH 変数を設定することもできます.これはすべての cron ジョブに適用されます.例えば.
投稿 Why Crontab Scripts Are Not Working in Ubuntu? は Stack All Flow に最初に表示されました.
多くの場合、
crontab
スクリプトはスケジュールどおりに、または期待どおりに実行されません.これには多くの理由があります.このコミュニティ wiki は、
crontab
個のスクリプトが期待どおりに実行されない主な理由を集約することを目的としています.それぞれの理由を個別の回答に記入してください.回答ごとに 1 つの理由 (実行されない理由の詳細) と、その 1 つの理由に対する修正を含めてください.
cron 固有の問題のみを記述してください.シェルからは期待どおりに実行されるが、cron によって誤って実行されるコマンド.
受け入れられた回答
異なる環境
Cron は、最小限の環境変数セットをジョブに渡します.違いを確認するには、次のようなダミー ジョブを追加します.
* * * * * env > /tmp/env.output
/tmp/env.output
が作成されるのを待ってから、ジョブを再度削除します. /tmp/env.output
の内容を、通常の端末で実行された env
の出力と比較します.ここでよくある「落とし穴」は、
PATH
環境変数が異なることです. somecommand
の /opt/someApp/bin
に追加した PATH
にあるコマンド /etc/environment
を cron スクリプトで使用しているのではないでしょうか? cron はそのファイルから PATH
を無視するため、スクリプトから somecommand
を実行すると、cron で実行すると失敗しますが、ターミナルで実行すると機能します. /etc/environment
からの変数が cron ジョブに渡されることは注目に値しますが、 PATH
のように cron が特に設定する変数ではありません.これを回避するには、スクリプトの先頭に独自の
PATH
変数を設定するだけです.例えば.#!/bin/bash
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# rest of script follows
代わりに、すべてのコマンドへの絶対パスを使用することを好む人もいます.私はそれに対してお勧めします.スクリプトを別のシステムで実行したい場合にどうなるかを考えてみてください.そのシステムでは、代わりにコマンドが
/opt/someAppv2.2/bin
にあります.スクリプトの最初の行を少し編集するだけでなく、/opt/someApp/bin
を /opt/someAppv2.2/bin
に置き換えて、スクリプト全体を実行する必要があります.crontab ファイルに PATH 変数を設定することもできます.これはすべての cron ジョブに適用されます.例えば.
PATH=/opt/someApp/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
15 1 * * * backupscript --incremental /home /root
投稿 Why Crontab Scripts Are Not Working in Ubuntu? は Stack All Flow に最初に表示されました.
Reference
この問題について(Crontab スクリプトが Ubuntu で機能しないのはなぜですか?), 我々は、より多くの情報をここで見つけました https://dev.to/stackallflow/why-crontab-scripts-are-not-working-in-ubuntu-1f11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol