2017-11-02 9 views

答えて

0

環境変数のcrontabの中で結果のcrontabファイルの内部で展開されません。しかし、echoコマンドをcrontabにパイプすることによって、crontabファイルを作成するときに環境変数を使用することができます。

- filename引数は、標準入力からcrontabの内容を取得することを意味します。

0

@のbarmarのソリューションのオフに基づいていますが、この1つはインプレース置換ん:

{ crontab -l | sed -E "s#^[^ ]* (.*/tmp/my_script.sh.*)#$JOB_MINUTES \1#"; } | crontab - 
  • だけの時間スペック
  • の最初のトークンは、cronジョブがで/tmp/my_script.shを持っていることを前提として置き換えますコマンドライン(お客様の要件に合わせて変更)

両方のアプローチを1つに組み合わせることができます。

if ! crontab -l | grep -q /tmp/my_script.sh; then 
    # add to cron 
    { crontab -l ; echo "$JOB_MINUTES * * * * /tmp/my_script.sh"; } | crontab - 
else 
    # update cron 
    { crontab -l | sed -E "s#^[^ ]* (.*/tmp/my_script.sh.*)#$JOB_MINUTES \1#"; } | crontab - 
fi 
+0

コマンドを実行すると、次のエラーが表示されます。 '' - 25:悪い時」 – sudobangbang

+1

スクリプトと*文字をエスケープする必要がありました – sudobangbang

+0

良い点。私は答えを更新し、クーロンの行を二重引用符で囲みました。 – codeforester

関連する問題