web-dev-qa-db-ja.com

誤って削除したcrontabエントリを復元できますか?

本番環境でcronを作成しようとしていたので、crontab.txtファイルを新しいcronコマンドで実行してcrontab crontab.txtファイルですが、既存のcronジョブリストに追加するのではなく、誤ってすべてのcronを削除し、現在は製品にのみcronを置いています。

設定された以前のcronを取得して、それに新しいcronを追加するにはどうすればよいですか。

ありがとう。

6
Rachel

バックアップからcrontabを復元することを提案することは、傷害に侮辱を加えるでしょうか?

16
Jim Lewis

まず、常にバックアップを作成してください。

第二:

/ var/log/cronを見て、crontabを再構築してみてください。

  1. ログファイルを見てください
  2. 最初のコマンドを取り、grep commandname1 /var/log/cron
  3. コマンドが実行された時代の背後にある体系を理解する
  4. そのエントリを新しいcrontabに入れます
  5. 実行cat /var/log/cron | grep -v commandname1
  6. 次のコマンドを受け取り、それをgrepします
  7. 2番目のコマンドが実行された時間の背後にある体系を理解する
  8. そのエントリを新しいcrontabに入れます
  9. 実行cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. すべてのコマンドをカバーするまで繰り返します

次に、古いcronlogでgrepを実行して、月に1回だけ実行される可能性のあるジョブを見つける必要があります。

7
Alex

ログに基づいて、crontabを完全に回復するPHPスクリプトを作成しました。

先週ユーザーが実行したすべてのcronコマンドの単一インスタンスを出力します。

ここに置いた

https://github.com/dangreenisrael/recover_crontab

次に出力例を示します。

Perl〜/ sorttv/sorttv.pl

/ usr/local/bin/flexget

bash〜/ scripts/sort_sports.sh

〜/ scripts/play_recently_added.sh

6