Kök olarak bir Bash komut dosyasını çalıştırmak için, her ay, her ay, her ay, her saat, 7,37'de çalışmak üzere bir root cron işi kurmaya çalıştım. Bu komut dosyası /usr/bin
dizininde ve tunlrupdate.sh
olarak adlandırılmıştır. Tunlr'ın DNS'sini günceller.
$ ls -l /usr/bin/tunlrupdate.sh
-rwxr-xr-x 1 root root 2133 Sep 24 15:42 /usr/bin/tunlrupdate.sh
Bu Bash komut dosyası buradan kullanılabilir.
Çağrıldığında, komut dosyası /var/log/tunlr.log
Bu root cron işini eklemek için root'un crontab standardını kullandım
sudo crontab -e
Ve bu 2 çizgiyi sonuna ekledim. Cron'un betiği root olarak çalıştırmasını beklerim.
# check for updated Tunlr DNS every 30 minutes at the hour + 7 mn and hour + 37 mn
07,37 * * * * root /usr/bin/tunlrupdate.sh
Daha sonra% co_de komutu, cron işinin eklendiğini doğruladı.
Ubuntu'yu yeniden başlattım ve eğer cron işi düzgün bir şekilde başlatılmışsa günlük dosyasına baktım. Bununla birlikte, sudo crontab -l
günlük dosyasında, işin hiçbir zaman başarılı bir şekilde başlatılmadığı anlamına gelen hiçbir şey yoktur.
Komut dosyasını komut satırından çalıştırırsam
kontrol ettimsudo /usr/bin/tunlrupdate.sh
sonra, günlük dosyası buna göre güncellenir.
Neden bu cron işi sistemimde planlandığı gibi çalışmıyor?
GÜNCELLEME 1: Şimdiye kadar önerilen tüm çözümler işe yaramıyor. Sistem kütüğünü /var/log/tunlr.log
listelemek için CLI için teşekkür ederim. Ancak bir CRON hatası aldım
CRON[13092]: (root) CMD ( [ -x /usr/lib/php5/maxlifetime ] && [ -d /var/lib/php5 ]
&& find /var/lib/php5/ -depth -mindepth 1 -maxdepth 1 -type f -cmin +$(/usr/lib/php
/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
önerilen PATH = ekleme & amp; komut dosyasındaki işlevler için veya bu önerilen çözümler olmaksızın kökten mutlak yolun kullanılması. Hala bu hatayı alıyorum.
Bazı aramalardan sonra hatayı sudo grep CRON /var/log/syslog
dosyasında açıklandığı gibi saptadım. buradan : /usr/lib/php5/maxlifetime
Ardından CRON hata günlüğünü sistemimde listeleme
sudo grep CRON /var/log/syslog
Feb 11 18:07:01 Marius-PC CRON[14067]: (root) CMD (root /usr/bin/tunlrupdate.sh)
Feb 11 18:07:01 Marius-PC CRON[14066]: (root) MAIL (mailed 1 byte of output; but got
status 0x00ff, #012)
Halen bash komut dosyasını çalıştırmıyorum. Bu sefer kayıtta hiçbir hata gösterilmiyor. Güvence almak için bu betiğin içeriği değildi. Komut dosyasını aşağıdaki 3 satıra indirdim:
#!/bin/bash
LOGFILE=/var/log/tunlr.log
echo $LOGFILE >> $LOGFILE
Hala cron işini yapamıyorum. Günlük dosyasına hiçbir şey yazılmaz. Yani boş bir betik bile cronda çalışmayacak mı? Anlamadım. Bu 2 satıra indirgenmiş bir senaryoyu denemeyi biliyorum:
#!/bin/bash
exit 0
Ve hala aynı hata kaydı. Cron betiği gitmiyor ...