私は最近、crontabロギングの問題の簡単な修正を思いつきました。この特定の修正(「ログインシェルフラグ」を使用してスクリプトを実行する)を使用することの長所と短所は何でしょうか。
#!/bin/bash -l
[以下は、不特定の「ロギングの問題」が、通常はプロファイルから継承された、欠落している環境設定に関連していることを前提としています。]
-l
オプションは、/etc
およびホームディレクトリからさまざまな「プロファイル」スクリプトをすべて読み取るようにbashに指示します。 Bashは通常、対話型セッション(bashがコマンドラインパラメーターなしで実行される)に対してのみこれを実行します。
通常のスクリプトには、プロファイルを読み取るビジネスはありません。与えられた環境で実行することになっています。とはいえ、個人用スクリプトに対してこれを実行することをお勧めします。おそらく、スクリプトが環境に緊密にバインドされていて、通常のセッションの外で実行する予定の場合です。
Crontabは、セッションの外部でスクリプトを実行する1つの例です。そうです、実行してください。
スクリプトが純粋にcrontabを使用するためのものである場合は、Shebangに-l
を追加しても問題ありません。スクリプトを他の方法で使用する可能性がある場合は、crontab自体で環境問題を修正することを検討してください。
0 * * * * bash -l hourly.sh