Silinen crontab nasıl kurtarılır


11

Terminaldeki crontab'ı düzenlemeye çalışıyordum ve crontab -rbunun yerine yanlışlıkla yazdım crontab -e. Kim böyle tehlikeli komutun crontab'ı düzenlemek için mektubun hemen yanında olacağını düşünür? Dahası, hala crontab -rsizden nasıl onay istemediğinizi anlamaya çalışıyorum ?

Bunun nasıl mümkün olduğuna dair güvenilirliğim olmamasına bakılmaksızın, sorum şu: Kayıp crontab'ı kurtarabilir miyim?


Sadece bilgi için, crontab -r sormadan crontab'ı kaldıracak ve crontab -i onay isteyecektir.
Raman Sailopal

@RamanSailopal bilgi için teşekkür ederim. -e ve -r'nin yan yana (en azından qwerty'de) olduğu düşünüldüğünde, bu gerçekten tehlikelidir ...
Miguel Mesquita Alfaiate

1
Bunun gibi şeyler kullanmamın bir nedeni etckeeper.
David Foerster

2
Yedekten geri yükle
PiedPiper

@PiedPiper Eğer yedek vardı, bu bir sorun olmaz. Ev klasörleri yedekleniyor, ancak bu kök crontab değil.
Miguel Mesquita Alfaiate

Yanıtlar:


7

Daha önce bir kez çalıştırıldıysa cron işlerinizi günlükte bulabilirsiniz. Kontrol edin /var/log/cron.

Üçüncü taraf kurtarma araçlarından başka kurtarma seçeneğiniz yoktur.


Bir şey eksik olmadığımı nasıl kontrol edebileceğime dair bir ipucu var mı? Haftalık veya aylık bir görev olsaydı ne olurdu? Daha az yaygın olan cronjob çalışıp çalışmadığımı öğrenmek için geçen ayın başına kadar satır satır gitmem gerekir mi?
Miguel Mesquita Alfaiate

Bence son bir aydır satır satır gitmelisin. Üzgünüz
Muhammed Sherief

"Satır satır" gerekmez. Sadece komutu çıkarmak için grepya / / / etc -oiçine ya da ile piped kullanın ve sonra piped ile kullanın . sedawkcutsort -u
Patrick

3
Yalnızca günlük veya haftalık değilse, programları çözmek için satır satır gitmeniz gerekir. Gibi bir şey komutlarına göre sıralanmış awk '$5 ~ "^CROND" && $6 == "(username)" { print }' /var/log/cron | sort -t ' ' -k 8girişleri gösterecektir username, bu da onların zamanlamalarını yeniden oluşturabilmeniz için aralarındaki aralıkları görmeyi kolaylaştırmalıdır.
James Sneeringer

@JamesSneeringer kesinlikle büyücülük! Yaşasın!
Miguel Mesquita Alfaiate

2

Emin değilim, crontabyedeklemeden dosyayı kurtarmak mümkündür . Ancak, crontabdosyanızı crongünlüklerden geri yükleyebileceğinizden eminim . Hatırladığım kadarıyla, hızlı her komut orada kullanıcı ile listelenir.


2

Belirli bir satırı hatırlarsanız, başka hiçbir verinin üzerine yazmamak şartıyla verilerinizi geri bulmak için tüm cihazı grep edebilirsiniz. Bu herhangi bir dosya için çalışır.

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

-B (efore) ve -A (fter) değerlerini dosya boyutunuza göre ayarlayın, ancak 100 satırlık bir cron dosyası için yeterli olmalıdır. Grep'i cihazınızı metin olarak kabul etmeye zorlamak için -a parametresi gerekir.

Ardından, sonuçtaki dosyadaki verilerinizden önce ve sonra ikili karışıklığı temizlemeniz gerekir.

Ve çok zaman alıyor. İyi şanslar.

Bu yanıta da başvurabilirsiniz: Silinen dosyaları geri alma / kurtarma | Unix ve Linux Yığın Değişimi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.