web-dev-qa-db-ja.com

crontabの変数?

Crontabに変数を保存するにはどうすればよいですか?私はそれがシェルではないことを理解していますが、私のアプリへのパスなどのような定数を持ちたいと言いますか?

考え?

48
JP Silvashy

おそらく最も一般的なVixie cronでは、シェルスクリプトとほぼ同じようにこれを行うことができます。

VARIABLE=value
PATH=/bin:/path/to/doathing
0 0 * * * doathing.sh $VARIABLE

マニュアルページには次のように書かれています:

Crontabのアクティブな行は、環境設定またはcronコマンドのいずれかです。環境設定は次の形式です。

     name = value

ここで、等号(=)の前後のスペースはオプションであり、valueの後続の非先行スペースは、nameに割り当てられた値の一部になります。値の文字列を引用符(単一または二重だが一致)で囲んで、先頭または末尾の空白を保持できます。名前の文字列は、先頭、末尾、または内側の空白を保持するために、引用符で囲むこともできます(単一または二重ですが一致します)。

crontabのmanページをチェックすると、Vixie cronがあるかどうかを確認できます。著者はPaul Vixieです。別のcronはこれをサポートする場合としない場合があります(たとえば、BusyBoxのcronはサポートしません)。その場合、シェルスクリプトでコマンドをラップし、代わりにそのスクリプトをcronから実行するのが最善のオプションです。実際、これは複雑なことを行うには良いことです。

79
mkb

Crontabをきれいに保つために、シェルスクリプトを呼び出して、スクリプトで楽しいことをするだけです。

3
Justaman

Crontabに環境変数を配置できます。詳細については、crontab(5)のマニュアルページを参照してください。

2
Richard Fearn