cronタブファイルを削除し、それを回復する必要があります


11

crontab -eの代わりにcrontab -rを実行し、crontabファイルを削除しました。バックアップがなく、削除されたファイルを回復するための新しいものがありませんでした。

これは可能ですか?

おかげで、

ピーター


7
編集および削除するオプションは、キーボード上で隣り合わせにしないでください。迅速なタイパーにとって間違いを犯しやすい。
einstiien

それがまさに私に起こったことです。

回答:


9

/ var / log / cronを見て、何が実行されているかを確認してから、そこからcrontabを再作成してみてください。面倒ですが、以前に実行したすべてを復元できるはずです。しかし、新しいアイテムにはそれほど運がありません。幸運を!


素晴らしいアプローチ!
アレックス

5

まず第一に:常にバックアップを作成してください!

しかし、アップミックスするのは簡単ですcrontab -rcrontab -e。私はこれを自分でやった。

それが私がしたことです:

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

  1. ログファイルをご覧ください
  2. 最初のコマンドを実行して grep commandname1 /var/log/cron
  3. コマンドが実行された時代の背後にある体系的なものを把握する
  4. そのエントリを新しいcrontabに配置します
  5. 実行しcat /var/log/cron | grep -v commandname1ます。これにより、すでに説明したcommand1が除外されます。
  6. 次のコマンドを受け取り、grepを実行します
  7. 2番目のコマンドが実行された時間の背後にある体系的なものを把握する
  8. そのエントリを新しいcrontabに配置します
  9. 実行する cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. すべてのコマンドをカバーするまで繰り返します

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


1
少なくともUbuntuでは(anacron / Vixie cronを使用する他のプラットフォームについては不明)、ログはに保存され/var/log/syslog/*ます。
ティモシー区

1
誤って何かを削除する前に、常にバックアップを作成してください!
デヴィッドホルバース

4

crontabを完全に回復するためのスクリプト

ログに基づいて、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

1
なぜこれに-1が与えられたのですか?それは質問に対する直接的な答えです。
ダングリーンライプシガー

私はあなたのスクリプトを使用しています。本当にありがとうございます!
MeV

PHPスクリプトは、閉じ括弧を含むコマンドには適切に対応していません。修正され、bashに移植されましたzgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
。–

1

選択肢はありますが、特にきれいなものはありません。あなたがそれを考えていなかった場合、あなたが開発マシンに最近のバージョンを持っているなら、そこからそれをコピーすることができます...あなたはすでにそれを試したことがあると思います。

ファイルのカスタマイズが多すぎて単純に再構築できない場合は、いつでも低レベルのフォレンジックを試すことができます。sleuthkitとUFS Explorerに基づいたチュートリアルのグーグル検索を試してください。これらのツールを使用している人々は、使いやすさと成功率の点でさまざまな程度を見つけています。


1

うわ元の質問にコメントを投稿したが、同僚は、ちょうど私の素晴らしいツールが示されたことはできません。何でエイリアスを作る.profileあなたが使用crontabすることをcrontab -i-iフラグは、削除する前に確認を求めます。

そのcrontab -eため、通常どおり編集を続行しますが、誤って編集crontab -rすると確認プロンプトが表示されます。


それは差し迫った問題の助けにはなりません
...-フォンブランド

0

そうは思いません。この重要なファイル(/ etc / var / spool / home ...にある他のすべてのファイル)のバックアップを開始します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.