Linux'ta nasıl yeniden başlatmayı planlayabilirim?


38

Linux'ta yeniyim ve gece yarısında bir yeniden başlatma planlamak istiyorum. Bunu nasıl yapmalıyım?

Düzenlemeler:

  • Özür dilerim, bütün ayrıntıları girmedim. Her ayın 3. cumartesi günü saat 23: 30'da yeniden başlatmak istiyorum.

  • Neyin yanlış olduğunu bilmiyorum ama crontab'ı bulamıyorum. Sahip olduğum şey cron.d; cron.daily; cron.weekly; cron.monthly;

Noob sorusu için üzgünüm. Lütfen yardım edin. Teşekkürler.


2
Asıl soru, neden düzenli olarak bunu yapmak isteyeceksiniz, sızdıran bir uygulamanız mı var? Bir sorunu çözmek için düzenli olarak yeniden başlatmayı
planlıyorsanız,

1
Her gece yeniden başlatılmasını ister misin?
Matt Simmons

4
Oy kullanmıyorum, çünkü bu bir tür politika kararı (ve gecelik yeniden başlatmaların biraz aşırı olduğunu düşünüyorum), ancak bir altyapı üzerinde düzenli olarak yeniden başlatmaların makinelerin güncel çekirdeğe ve çalışan tüm hizmetlere sahip olmasını sağlamanın iyi bir yolu yamalı. 3 aylık bir çalışma süresi limitinin iyi bir orta yol olduğunu duydum.
Matt Simmons

Bu soruya bir cevaptan çok bir yorum olsaydı, cevap verdim. Aslında fikrimi değiştirirdim, çünkü soru bunun tek seferlik mi yoksa düzenli bir şey mi olduğu konusunda belirsizdi. :)
intuited

3
/etc/crontabgibi giriş 30 23 15-21 * 6 /sbin/shutdown -r nowher ayın 3. cumartesi günü saat 23: 30'da yeniden başlayacaktır.
Chris S

Yanıtlar:


45

Yazın shutdown -r 0:00ve gece yarısı yeniden başlayacaktır.

Her gece yeniden başlatmak istiyorsanız, her gece yarısını kapatma -r komutunu çalıştırmak için crontab -e komutunu kullanarak bir cron girişi ekleyin.

@midnight shutdown -r now

3
Bir zaman argümanı zorunludur, kullanabilirsiniz now.
Tobu

Hayır ... bir kerelik komut istiyorsa ve şimdi komutu yazmak istiyorsa, zaman eklemelidir!
yarıçapı

3
@Hayır, nowcrontab satırındaki gibi bir zaman argümanına ihtiyaç duyar .
Dennis Williamson,

Oups evet üzgünüm, Tobu yorumunu yanlış okudum ve ilk komutta 0:00 'ın işe yaramaz olduğunu söylediğini düşünüyorum ... düzeltmek için düzenleme yaptım (ve Massimo da cevap veriyor)
radius

Başka hangi @{command}değişkenlerin mevcut olduğunu bilmek isterim .
Greg,

16

Kullanarak crontab.

http://en.wikipedia.org/wiki/Crontab

Bu girişi / etc / crontab dizinine eklemelisiniz:

0 0 * * * /sbin/shutdown -r now

3
shutdownGibi bir zaman tartışması gerekiyornow
Dennis Williamson

1
Bu her gece yeniden başlayacaktır. İstediği bu mu emin değilim.
cstamas

1
Asıl soru, her gece yeniden başlatılmasını istedi. Aslında her 3 cumartesi günü yeniden başlatılmasını istiyor, ki bu hala bir crontab ile daha kolay olacak
Chris S

Neyin yanlış olduğunu bilmiyorum ama crontab'ı bulamıyorum ..? Sahip olduğum şey cron.d; cron.daily; cron.weekly; cron.monthly; Noob sorusu için üzgünüm. Bana yardım edin. teşekkürler
klauriens

Kullandığınız dağılıma bağlıdır, ancak genellikle sisteminizin / etc dizininde "crontab" adlı bir dosya bulmalısınız. Ayrıca "crontab -l" komutunu kullanarak geçerli crontab'ı da inceleyebilmeli ve "crontab -e" kullanarak düzenleyebilmelisiniz.
Massimo

12

Diğer bir seçenek ise birçok Linux dağıtımında kullanılabilen at komutudur. Daha fazla bilgi için man sayfasına bakın, ancak amacınız için genel sözdizimi şöyle olacaktır:

yankı "yeniden başlat" | 0000 haziran 27

OS X man sayfasından alıntı yapmak için:

at - komutları belirli bir zamanda yürütür

Neden bahsettiğimize benziyor. ;)


1

Bildiğim kadarıyla, "her ayın son cuma" ya da "her ayın üçüncü perşembe" görevlerini zamanlamak için cron kullanamazsınız. Yapabildiğiniz şey, çirkin gözüküyorsa, her cumartesi 23: 30'da bir senaryo yayınlamak ve daha sonra bu senaryoyu bu cumartesi haftanın üçüncü cumartesi olup olmadığını belirlemektir (tarih ve belki cal komutları kullanılarak yapılabilir). .

Umarım bu yardımcı olur. Bu soruna elagant bir çözüm bulamadım. Bu konuyu buldum çünkü aynı problem için bir çözüm arıyordum.


1
Yukarıdaki yorumlar "30 23 15-21 * 6 / sbin / shutdown -r şimdi" çalışacaktır. Temelde sadece ayın üçüncü haftasında, ancak sadece cumartesi olduğunda da
çalışacak

Bu cron hattının sandığınız gibi çalıştığını sanmıyorum.
ervingsb

Aşağıdaki iki satırı oluşturdum: "30 23 1-7 * 4 tarih" ve "30 23 1-7 * 3 tarih". Dün gece iki posta aldım : "Çar 7 Mart 23:30:02 CET 2012"
ervingsb

son alan haftanın günleriyle eşleşir, sıfır pazar günleridir. 4 cronjob Çarşamba günü eşleşmemeliydi.
Sirex

Demek istediğim bu. Yazdığınız kural, ne anlama geldiğini düşündüğünüz anlamına gelmez. İşi bir hafta boyunca her gün tetikler. Hafta içi önemli değil.
ervingsb

0

1) komut satırına 2) yazın , yeniden başlatmanın nerede olduğunu (genellikle / sbin / yeniden başlatma) cd'yi /etc/cron.daily, /etc/cron.weekly, / etc / cron dizinlerinden birine yerleştirin. saatlik saatlik ... yaniwhich reboot
cd /etc/cron.weekly

3) bir dosya oluşturun (nano veya vim kullanarak) zzreboot olarak adlandırın ve aşağıdaki satırları ekleyin:

#! / bin / sh
/ sbin / reboot

Zzwhatever dosyasını çağırmak istemesinin nedeni, diğer tüm işlerden sonra en son aranan iş olduğundan emin olmak. Sadece ls -ldizinde bir yapmak ve son dosya olduğunu doğrulamak için.

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.