削除されたcrontabを復元する方法


11

ターミナルでcrontabを編集しようとしたところ、誤ってのcrontab -r代わりに入力してしまいましたcrontab -e。誰がそのような危険なコマンドがcrontabを編集するための手紙のすぐ隣に座っていると思いますか?さらに、私はまだcrontab -r確認を求めない方法を理解しようとしていますか?

これがどのようにして可能であるかについての私の信頼性の欠如に関係なく、私の質問は次のとおりです。失われたcrontabを回復できますか?


参考までに、crontab -rはプ​​ロンプトを出さずにcrontabを削除し、crontab -iは確認を求めます。
Raman Sailopal 2017

@RamanSailopal情報ありがとうございます。本当に... -eと-rは、(少なくとも、QWERTYに)隣接しているという事実を考えると、危険であること
ミゲル・メスキータAlfaiate

1
このようなものは私が使用する理由の1つetckeeperです。
David Foerster、2017

2
バックアップから復元
PiedPiper

@PiedPiperバックアップでそれがあった場合、これは問題にはなりません。バックアップされているホームフォルダーがありますが、このルートcrontabはバックアップされていません。
Miguel Mesquita Alfaiate 2017

回答:


7

以前に実行したことがある場合は、ログからcronジョブを見つけることができます。確認してください/var/log/cron

サードパーティの回復ツール以外の回復オプションはありません。


何かが欠落していないことを確認するためのヒントはありますか?毎週、または毎月のタスクがある場合はどうなりますか?一般的なcronジョブが実行されているかどうかを確認するには、先月の初めまで1行ずつ行かなければなりませんか?
Miguel Mesquita Alfaiate 2017

私はあなたが最後の1か月間1行ずつ行かなければならないと思います。申し訳ありません
Muhammed Sherief 2017

「行ごと」の必要はありません。grepwithを使用するか-osed/ awk/ cut/ etcにパイプしてコマンドのみを抽出し、次にパイプしsort -uます。
Patrick

3
スケジュールが毎日または毎週ではない場合でも、スケジュールを計算するには、行ごとに実行する必要があります。のようなものawk '$5 ~ "^CROND" && $6 == "(username)" { print }' /var/log/cron | sort -t ' ' -k 8は、usernamesorted byコマンドのエントリを表示します。これにより、それらの間隔を確認しやすくなり、スケジュールを再作成できるようになります。
James Sneeringer、2017

間違いなく魔術である@JamesSneeringer!いいね!
Miguel Mesquita Alfaiate 2017

2

crontabバックアップがなくてもファイルを復元できるかどうかはわかりません。しかし、ログcrontabからファイルを復元できると確信していますcron。私が覚えている限り、高速ですべてのコマンドがユーザーと共にそこにリストされます。


2

特定の行を覚えている場合は、他のデータで上書きされていない状態で、デバイス全体をgrepしてデータを見つけることができます。これはどのファイルでも機能します。

grep -a -B100 -A100 "command/you remember" /dev/sda1 > /tmp/cron.ressurected

-B(efore)と-A(fter)をファイルサイズに調整しますが、cronファイルには100行で十分です。-aパラメータは、grepがデバイスをテキストと見なすようにするために必要です。

次に、結果のファイルのデータの前後でバイナリの混乱を解消する必要があります。

そして、それは多くの時間がかかります。幸運を。

この回答を参照することもできます:削除したファイルの復元/復元| UnixおよびLinuxスタック交換

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