Ubuntu'mun her 30 dakikada bir yeniden başlatılmasını planlamak istiyorum. Herhangi bir komut veya grafiksel bir yol var mı?
Ubuntu'mun her 30 dakikada bir yeniden başlatılmasını planlamak istiyorum. Herhangi bir komut veya grafiksel bir yol var mı?
Yanıtlar:
Bunu yapmanın en iyi yolu, Ubuntu'nun neden her yarım saatte bir yeniden başlatılmasını istediğinize bağlı olacaktır .
Bu yüzden, bunu neden yapmak istediğinizi açıklamak için sorunuzu düzenlemenizi öneririz.
İnsanların makineyi yerel veya uzaktan kullandığını varsayarsak, Ubuntu'nun herhangi bir uyarı yapmadan altlarından yeniden başlatılmasını önlemek en iyisidir. Bu nedenle, rebootkomutu zamanlamak yerine shutdown, kullanıcıyı uyarması için komutun zamanlanmasını öneririm .
5 dakika önce bir uyarı vererek her yarım saatte bir kapanış planlamak için şunu ekleyin /etc/crontab:
#minute hour mday month wday user command
*/30 * * * * root shutdown -r +5
Aslında bir yumruk satırı eklemek zorunda değilsiniz. Anlaşılır olması için ekledim - zaten orada olduğu gibi bir şey.
-r( +5) komut çalıştırıldıktan beş dakika sonra sistemi yeniden başlatmaya ( ) inecek şekilde zamanlar . Her yarım saatte bir çalışır ( */30). Bkz man cronve man 5 crontab.+5Kullanıcıların yeniden başlatmalardan uyarıldıktan sonra ne kadar süreceklerini değiştirmek için başka bir şeye geçin.0,30Eğer tercih ederseniz, dakikadan az da çalışacaktır. (Benzer şekilde, her 20 dakikada bir olsaydı, */20veya yazabilirsiniz 0,20,40.)/sbinolduğunu PATHüstüne yakın belirtilen değişken /etc/crontab. Aksi takdirde, shutdown(altında command) olarak çağrılmalıdır /sbin/shutdown.Makine o sırada çalışıyorsa, komut her zaman yarım saat işareti üzerinde çalışır . Bu, duruşların her yarım saatte bir duyurulmasına ve saatin 5 ve 35 dakika sonrasında yapılmasına neden olur.
sudo shutdown -c.shutdownancak planlama yapıyorsanız eşit olarak geçerlidir reboot.) Bu durumda, lütfen özel gereksinimlerinizi açıklamak için sorunuzu düzenleyin. (Bunu tavsiye ederim anacron, ancak zaman aralıklarınız çok kısa.)Bunu, bir yöneticinin otomatik olarak zamanlanan tüm yeniden başlatmaları askıya almasını kolaylaştıracak şekilde ayarlamak isteyebilirsiniz:
#minute hour mday month wday user command
*/30 * * * * root [ -e /etc/noautoreboot ] || shutdown -r +5
Adlı bir dosya varsa bu bir yeniden başlatma zamanlama olmaz dışında - beş dakika uyarısı ile, her yarım saatte - Bu programlar aynı şekilde yeniden başlatılır noautorebootbulunmaktadır /etc.
Bu kontrol dosyası aşağıdakilere sahip bir yönetici tarafından oluşturulabilir:
sudo touch /etc/noautoreboot
Şununla silinebilir:
sudo rm /etc/noautoreboot
Önemli olan dosyanın var olup olmadığının, var olup olmadığına dikkat edin .
Yeniden başlatma planlanır ve kullanıcılar uyarılır ise, o zaman dosya oluşturulur, (hemen yaklaşan) yeniden başlatma hala ortaya çıkar.
Bu nasıl çalışıyor? Bu kullanan kısa devre -evaluated veya operatörü ( ||için kısaltma olarak):
Eğer
/etc/noautorebootyoksa, çalıştırınshutdown -r +5.
Bu cevap nasıl kısa devre açıklar ve ve ya operatörler gerçekleştirebilir if- thenmantık. Kısa, sezgisel ve gayri resmi bir açıklama için komutu şu şekilde okuyabilirsiniz:
/etc/noautorebootmevcut! Ya da koşshutdown -r +5.
Bkz man [Test kendisi yapılır nasıl olduğunu görmek için.
Bunu Oturum Yöneticisine yeniden başlatmak istediğimizi söyleyerek yapmayı seviyorum. Bu, kök izinleri olmadan yapılabilir ve sistemin yeniden başlatılacağı konusunda bizi uyaran güzel bir pencere alırız - hatta istersek yeniden başlatmayı iptal edebiliriz.
gnome-scheduleUbuntu Yazılım Merkezi'nden yükleyin . Ek bir şey kurmak istemiyorsanız, Terminal Yolu'nu yapın.
gnome-scheduleKısa çizgiden açın , tekrarlanan yeni bir görev oluşturun ve şu seçenekleri ayarlayın:
dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.RebootDiğer seçenekleri varsayılan değerlerinde bırakın. Ekle'ye tıklayın .
Terminalden çalıştırın:
crontab -e
Bu satırı ekle:
0,30 * * * * DISPLAY=:0 dbus-send --print-reply --dest="org.gnome.SessionManager" /org/gnome/SessionManager org.gnome.SessionManager.Reboot
Kaydet çık. nano(Varsayılan olanı) kullandığınızı varsayarsak , Ctrl + o ve Ctrl + x tuşlarına basın .
DISPLAY'iniz gerçekten farklıysa bunun işe yaramayacağını lütfen unutmayın :0ve bu nedenle bu yöntem tercih edilmez. Ancak, dürüst olmak gerekirse, bilgisayarınızı her 30 dakikada bir yeniden başlatıyorsanız, DISPLAY'iniz muhtemelen her zaman olacaktır :0.
Yukarıda açıklanan her iki yöntem de hem Gnome oturumlarında hem de Unity'de bulunan bazı gnome bileşenlerine bağlıdır. Bunu başka bir ortamda (Kubuntu'nun KDE'si, Kubuntu'nun LXDE'si gibi) yapmak istiyorsanız, bunun yerine komutu bununla değiştirseniz iyi olur:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
Bu onay istemez ve aracılıksız olarak yeniden başlatılır, ancak elbette ConsoleKit'i manuel olarak kaldırmadığınız varsayılarak tüm ortamlarda çalışır.
sudo crontab -eKomut satırından çalıştırın ve bu satırı dosyaya ekleyin:
0,30 * * * * reboot
Bu, sisteme komutu reboother 30 dakikada bir root olarak çalıştırmasını söyler . Zaman sözdizimine genel bir bakış için buraya bakın: http://linuxmoz.com/crontab-syntax-tutorial/
rebootolması gerektiği gibi çalışmaz rootve bu kullanıcının kişisel crontab ekler, bu yüzden o kök olmayan kullanıcı olarak çalışır. (Aynı şey sudo rebootişe yaramayacaktır çünkü sudobir şifre istemeye ve başarısız olmaya çalışacaktır.) Bunun /etc/crontabiçin kullanılmalıdır (sözdiziminin biraz farklı olduğunu unutmayın).
sudo crontab -eve daha sonra bir cron girişi oluşturmak.
cronHer 30 dakikada bir iş planlamak için kullanın . Bu işi basitçe sahip bir kabuk betiğine yönlendirin
reboot
içinde.
Yana cronkök olarak çalışır, izinler bakımından özel bir şey yapmak gerekmez.
Evet, aslında hiçbir sistemimde hiçbir zaman kullanıcı tabanlı crontabs (kullanıcıların kullanıcı düzeyinde zamanlanmış görevler yapmasına izin vermenin daha iyi yolları vardır) görevler. Günlük dönüşleri (bugün hala gerçekleşen) gibi şeyler
Yeniden başlatma doğru çalışmak için kök olarak çalıştırılmalıdır ZORUNLU, alternatif yapışkan bitini ayarlamaktır, böylece normal bir kullanıcı olarak çalıştırıldığında aslında kök olarak yürütülür ve beklendiği gibi çalışır, ancak bunu yaparken sunucunuzu düzenli olarak izin vermeye kadar açarsınız. kullanıcıları istediği zaman yeniden başlatacak.
Muhtemelen SUDO'ya bir çağrıyı otomatikleştirebilirsiniz, ancak SUDO ile bir şifre ihtiyacını otomatik hale getirip getiremeyeceğinizden emin değilim. SU kullanarak kabuk)
Sistem geniş crontab'da kurduysanız, o zaman her şey root olarak çalıştırılır, bu yüzden ifadem doğrudur (sadece sistem genişliğinin kullanılması gerektiğini belirtmeyi ihmal ettim)
Sorunuza gelince "Neden bir senaryoya sarın?" Peki neden olmasın? OP bir kabuk betiğine koyarsa, gelecekte bir noktada ona eklemesi gerekir, işi bulmak, kaldırmak, kabuk betiği ile değiştirmek yerine crontab'ı açmak yerine betiğe ekler, sonra eski + yeni ile bir komut dosyası yazın.
Ultrix / Solaris ve hatta VAX kadar sistemler ile çalışan bir Sys Yönetici / Geliştirici olarak 20 yılı aşkın bir süredir bana önemli bir nokta öğretti.
Başlangıçta kolaylaştırabilirseniz, yaşam süresi boyunca kolay kalır.
Gerçekten bu "Minimalist" tutum alamadım modern sistem sys bir sürü var, mümkün olduğunca az yapmak başarının anahtarıdır. Bu günlerde çoğu sunucu kolayca başladığım her şeyden 20 kat + daha güçlüdür ve bu tür bir senaryo (kabuk komut dosyalarında kaydırma) o zaman pratik yapılmasını önerdi, bu yüzden şimdi yapmamanın gerçekten bir argümanı yok.
Gerçekten hardcore Unix / Linux'a gitmek istemiyorsanız, bu durumda hepsini cron girişine etiketleyin ve her şeyi yapılması gerektiği gibi birbirine bağlayın :-)
Bununla birlikte, kazıyorum ve aynı zamanda bu günlerde birçok erkeğin derin uçlara atıldığını ve bir şeyler yapmasını söylediklerini anlıyorum, bu nedenle oturup yeni teknikler (ve genellikle) hakkında bilgi edinme zamanından (ve genellikle eğimden) yoksunlar. bu durumda eski) veya hatta iş dışında bu şeylerle oynamak istiyorum.
Kişisel olarak, koştuğum sunucular arasında tek bir sunucum var, bu sadece etrafta oynamam için adanmış, bu yüzden bu gibi şeyleri test edebilirim ... bu daha iyi A veya B, bu yüzden herhangi birine tavsiyede bulunmamın sebebi yok bu.