Kök crontab çalışmıyor


10

Bazı nedenlerden dolayı, kök crontab'ım çalışmıyor gibi görünüyor.

Gece yarısında her gece cihazı yeniden başlatmaya çalışıyorum.

Kök olarak şu şekilde olmalıdır:

crontab -e

Sonra Ekle:

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

Şu anki zamanı yakın bazı değerleri kullanarak test yaptığımda hiçbir şey olmuyor. NTP'yi yükledim ve saat diliminin doğru olduğundan emin oldum. Ayrıca 24 saat biçimini de kullanıyorum. Örneğin, şu anda bu satırı test etmek için (17:35) Aşağıdakileri girmeye çalışıyorum:

36 17 * * * /sbin/shutdown -r now

Saati -R ile kontrol ettim. Crontab'ın çalışma zamanı gelir ve gider ve sistem yeniden başlatılmaz. Burada ne eksik?


Sadece emin olmak için, düzenledikten sonra crontab'ı kapatıyorsunuz, değil mi? Ayrıca, "root olarak" nasıl koştunuz? Çıktısı nedir sudo crontab -l | grep -v '#'?
terdon

Bu neden debian olarak etiketlendi ? Bu Ubuntu ile değil Debian ile ilgiliyse, lütfen Unix ve Linux'a danışın .
muru

Debian Ubuntu'nun merkezinde olduğuna inanıyorum.
Atomiklan

Yanıtlar:


11

Size üç çözüm önerim var.

  1. Crontab'ı şununla çağır: crontab -e -u root

  2. Cronjob dosyasının sonunda boş bir satır olduğundan emin olun, yani her satır bir satırsonu ile biter.

  3. Çıkışı devnull'a yönlendirmeniz gerekebilir: shutdown -r now > /dev/null

İşte cronjobs için iki yararlı web sayfası:

CRON Test Cihazı

CRON Jeneratörü

Ayrıca cronjobs'u webmin ile düzgün bir şekilde kullanabilirsiniz .

Bunun dışında, bilgisayarınızı gece yarısı yeniden başlatmanın en az iki yolu daha vardır.

Bunlardan biri, login komutunu oturum açma sırasında otomatik olarak bir komut dosyası olarak ancak "now" yerine belirli bir zaman parametresi olarak çalıştırmaktır:

shutdown -r 00:00

Ancak, bu, her girişte yaklaşan kapanmaya ilişkin bir yayın mesajı verecektir (hiç de kötü bir şey olmayabilir). Yine de, init.d dosyasına komut dosyası ekleyerek, yine de iletiyi vererek, önyükleme zamanında çalıştırılmasını sağlayabilirsiniz.

Başka bir atkomut kullanmaktır :

at 0am

Komutu girin shutdown -r nowve ctrl + d ile kaydedin veya komut için bir komut dosyası yapın ve şunları yapın:

at -f restart_script.sh 0am

Umarım bunlar istediğiniz sonucu elde etmenize yardımcı olur.


Çözüm, dev null değerine çıktı. Nedenini merak ediyorum?
Atomiklan

Bunun nedeni, cron işinin, beklediğiniz standart bir giriş / çıkış sistemine sahip olmayan kendi ortamına sahip olması ve iletileri eksik bir çıkış borusuna iletmeye çalışması nedeniyle işlemin başarısız olmasıdır. Cron işi aslında herhangi bir kullanıcı olarak terminalde bazı komutları çalıştırmaya kıyasla çok farklı bir şey. Sonuçta çalıştığını duyduğuma sevindim.
Ahti Komu

0

Sistem Cron işleri / etc / crontab dosyasında listelenir. Bu nedenle, bu dosyayı doğrudan düzenlemek, reboot komutunu root olarak çalıştırmanıza yardımcı olacaktır.

dolayısıyla,

$ sudo vi /etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
  23 20 *  *  *  root  shutdown  -r  now

crontab'ı düzenledikten sonra Cron günlük dosyasını kontrol ettiğinizden emin olun, çünkü cron başarılı bir şekilde kurulup kurulmadığını size bildirir.

Test ettim ve benim için çalıştı. Sistemimi 20:23 de yeniden başlattı

İyi şanslar!


-3

36 17 * * * vb.

36 17, cronunuzda doğru zamanı belirlemenin bir yolu değildir.

sisteminizin ABD saatinde mi yoksa Europ saatinde mi çalıştığını görmek için tarih komutuyla kontrol edin

avrupa saati varsa ve sisteminiz 24 saat kullanırsa 17 36 veya sisteminiz ABD saati ve 12 saat kullanıyorsa 5 36 kullanın


Doğru değil! Cron 12 saat biçimini kullanmaz ve biçim her zaman mm ss DD MM WD'dir.
Ahti Komu

Lütfen bir dahaki sefere yazının tamamını okuyun.
Atomiklan
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.