Jak odzyskać usunięte crontab

BlunT 12/01/2017. 3 answers, 574 views
centos cron scheduling

Stało się coś naprawdę głupiego i wydaje się tak nierealne, że nie mogę nawet zacząć rozumieć, jak to jest możliwe.

Próbowałem edytować crontab w terminalu i przez przypadek wpisałem crontab -r zamiast crontab -e . Kto by określił takie niebezpieczne polecenie, usiadłby tuż obok litery, by edytować crontab? Co więcej, nadal próbuję dowiedzieć się, w jaki sposób crontab -r nie prosi o potwierdzenie?

Niezależnie od mojego braku wiarygodności co do tego, jak to jest możliwe, moje pytanie brzmi: czy jestem w stanie odzyskać utracony plik crontab?

5 Comments
Raman Sailopal 12/01/2017
Dla informacji crontab -r usunie crontab bez pytania, a crontab -i poprosi o potwierdzenie.
BlunT 12/01/2017
@RamanSailopal dziękuję za informacje. to naprawdę niebezpieczne, biorąc pod uwagę fakt, że -e i -r są obok siebie (przynajmniej na qwerty) ...
1 David Foerster 12/01/2017
Takie rzeczy to jeden z powodów, dla których używam etckeeper .
2 PiedPiper 12/01/2017
Przywróć z kopii zapasowej
BlunT 12/01/2017
@PiedPiper, jeśli miałem to na kopii zapasowej, nie byłoby problemu. Mam kopie zapasowe folderów domowych, ale nie ten katalog główny.

3 Answers


Muhammed Sherief 12/01/2017.

Możesz znaleźć swoje zadania cron w dzienniku, jeśli wcześniej wykonano je. Sprawdź /var/log/cron .

Nie masz żadnej opcji odzyskiwania, poza narzędziami do odzyskiwania po stronie trzeciej.

5 comments
BlunT 12/01/2017
Jakieś wskazówki, w jaki sposób mogę sprawdzić, czy czegoś nie brakuje? Co, jeśli było jakieś zadanie tygodniowe lub miesięczne? Czy muszę iść linia po linii, aż do początku zeszłego miesiąca, aby dowiedzieć się, czy mam trochę mniej wspólnego cronjob działa?
Muhammed Sherief 12/01/2017
Myślę, że musisz iść linia po linii przez ostatni miesiąc. Przepraszam
Patrick 12/01/2017
Nie ma potrzeby "linia po linii". Użyj grep z -o lub piped do sed / awk / cut / etc, aby wyodrębnić tylko polecenie, a następnie wypakowane do sort -u .
2 James Sneeringer 12/01/2017
Będziesz nadal musiał iść liniowo, aby opracować harmonogramy, jeśli nie są one tylko codzienne lub tygodniowe. Coś w rodzaju awk '$5 ~ "^CROND" && $6 == "(username)" { print }' /var/log/cron | sort -t ' ' -k 8 awk '$5 ~ "^CROND" && $6 == "(username)" { print }' /var/log/cron | sort -t ' ' -k 8 pokaże wpisy dla username posortowanej według komendy, co powinno ułatwić przeglądanie odstępów między nimi, aby można było odtworzyć ich harmonogramy.
BlunT 12/01/2017
@JamesSneeringer to zdecydowanie czary! Kciuki za to!

Kamil Zabielski 12/01/2017.

Nie jestem pewien, możliwe jest odzyskanie pliku crontab bez tworzenia kopii zapasowej. Ale jestem pewien, że możesz przywrócić plik crontab z dzienników cron . O ile dobrze pamiętam, każde polecenie jest szybkie i zawiera użytkownika.


Hexdump 12/01/2017.

Jeśli pamiętasz konkretną linię, możesz odszukać całe urządzenie, aby odzyskać dane, pod warunkiem, że żadne inne dane nie zastąpią ich. Działa to dla dowolnego pliku.

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

Dostosuj -B (przed) i -A (fter) do rozmiaru pliku, ale 100 linii wokół powinno wystarczyć dla pliku cron. Parametr -a jest potrzebny, aby zmusić grep do uznania urządzenia za tekst.

Będziesz wtedy musiał wyczyścić binarny bałagan przed i po danych w wynikowym pliku.

A zajmuje to dużo czasu. Powodzenia.

Możesz również odnieść się do tej odpowiedzi: https://unix.stackexchange.com/a/80285/263335

Related questions

Hot questions

Language

Popular Tags