Yanlışlıkla crontab -r ile kaldırılan cron işlerini kurtar


64

Bunun crontab -ryerine girdim crontab -eve tüm işlerim cronkaldırıldı.

Bu işleri kurtarmanın en iyi yolu nedir (veya var mı)?


30
Sadece ben miyim yoksa crontab için -r varsayılan olarak evet / hayır sormak için daha mantıklı olmaz mıydı?
user1446688 16:15

4
Evet / hayır istemine sahip olmak harika bir fikir olur. özellikle e & r yan yana crontab -eolduğu için .. ve gerçekten yaygın bir cron komutudur.
JustinP

4
7 yıl veya daha fazla yönetici çalışmasında, bu bana hiç olmadı. Şimdi korkuyorum. Crontab'ları düzenli olarak yedeklemeye başlama zamanı.
Caja

7
Bu zaten iki kere başıma geldi. eDüzenleme ve rkesinlikle hiçbir istemi ile kaldırmak için gelmiş geçmiş en kötü fikir !
DaniG2k

9
Yapacak ilk şey alias crontab=crontab -i,. Fakat crontab, bu varsayılanı yapmalıydı, e & r yan yana ...
anishsane

Yanıtlar:


49

crontab -r cron işlerini içeren tek dosyayı kaldırır.

Bu nedenle, yedekleme yapmadıysanız, yalnızca kurtarma seçenekleriniz şunlardır:

  • RedHat / CentOS'ta işleriniz daha önce tetiklenmişse, cron girişini bulabilirsiniz /var/log/cron. Dosya işleri yeniden yeniden yazmanıza yardımcı olur.
  • Başka bir seçenek de dosyayı bir kurtarma aracı kullanarak kurtarmaktır. Sistem bölümleri genellikle yoğun bir bölüm olduğundan ve buna karşılık gelen sektörlerin büyük olasılıkla zaten üzerine yazıldığı için bunun başarılı olma olasılığı daha düşüktür.
  • Ubuntu / Debian'da, eğer göreviniz daha önce yayınlandıysa, deneyin grep CRON /var/log/syslog

Sana oy veremedim ama bu cevap benim için ne kadar yararlı oldu. thankx
Teerath Kumar

1
@RajaRassani Cevabı işaretleyebiliyorsanız cevabın doğru olduğunu işaretleyebilirsiniz. Geri bildirim için teşekkürler!
SkyDan

Bu sadece bana oldu :) toplam bummer .. Ben sanal sunucuları kullanmak ve düzenli olarak onları yedekleyin ... böylece bir yedek kadar döneceğim .. ve silinen crontabs almak
JustinP

Basit olduğu için +1:}
namezero

Editör tarafından /tmp/crontab.wpMhKS adresinde (tabii ki isim değişebilir) yapılmış bir yedeği arayarak şansınızı deneyebilirsiniz. En son sürüm olmayabilir, ancak benim durumumda çok yardımcı oldu
Jong Bor

21

Eğer bir /var/log/crondosyanız yoksa, komutları (ancak zamanlamaları değil) ondan kurtarabilirsiniz syslog.

grep 'CRON.*(yourusername)' /var/log/syslog

Daha sonra çoğu zamanlamayı tarih damgalarına bakarak öğrenebilirsiniz.


1
Ubuntu'da dosya /var/log/syslog.
Aurelijus Rozenas,

@ Aurelijus Rozenas Yanlışlıkla / var / log / syslog olması gereken dizine sys ekledim, yazımı düzelttim.
Miyav

2
grep 'CRON.*(yourusername)' /var/log/syslog
Aidan

@Aidin, sen benim kurtarıcımsın! Kendime not: Sunucu alanı doluyken crontab dosyasını asla düzenlemeyin.
Shadoath

1
Phew yakındı! Şimdi her gün benim crontab'ımı yedeklemek için bir cron ekledim :)
SidJ

-5

vi /var/spool/cron/*user*veya eğer rootkullanıcıysanızvi /var/spool/cron/root


3
Bu daha kötü. Biriktirme dosyalarını cron, dosyanın düzenlendiğini bildirmeden düzenler. Ayrıca, kullanıcı yanlışlıkla silindiğinde, crontabdüzenlenecek dosya olmadığı için çalışmaz .
roaima

Aslında crontab'ın yerini belirttiğim için benden fazla oy al. Tüm sistem yedeklemem vardı ve cronjobs'umu kolayca alabilirdim. Teşekkürler!
Cookie
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.