web-dev-qa-db-ja.com

bashスクリプトでcrontabを追加-ルートのcrontabなし

展開スクリプトがあり、その中にcronジョブを追加しようとしています。これは私が使用しているコードで、stackoverflowで見つかりました。私はdebian 8を実行しています。

# ADD CRON
crontab -l > mycron
echo "10 * * * * cd /var/www/test/ && ./test" >> mycron
crontab mycron
rm mycron

これらのコマンドを実行すると、応答が返されます:no crontab for root

ここで何が問題になっていますか?bashスクリプトを使用してこのcronジョブを追加できるようにするにはどうすればよいですか?ありがとうございました。

5
Jimmy

(a)rootのcrontabは最初は空で、(b)-eオプションがシェルで設定されているように聞こえます。

ユーザーのcrontabファイルが空の場合、crontab -lはステータス1で終了します。

シェルが-eオプションを指定して実行されている場合、失敗するとすぐに終了します(ゼロ以外のステータスで終了すると定義されています)。

この設定を確認するには、echo $SHELLOPTSの出力でerrexitを探します。現在のシェルでset +eを使用してオフにします。

9
Paul Haldane