Saatlik cron işimin işe yarayıp yaramadığını nasıl anlarım?


26

Ben adlı bir dosya oluşturduk ntpdateiçinde/etc/cron.hourly

#!/bin/sh
/usr/sbin/ntpdate-debian
date > /tmp/william_tmp
date > /william_tmp
date > ~/william_tmp
echo test

Chmod 755 de bu dosyaya yaptım.

Ancak, dosyanın çalışıp çalışmadığını söyleyemem!

Dosya, herhangi bir 3 dizinde oluşturulmaz.

El ile çalıştırırsam cd / && run-parts --report /etc/cron.hourly, dosyalar oluşturulur ve yankıyı alırım.

Çalışıp çalışmadığını test etmek için herhangi biri tavsiye edebilir (ideal olarak adım adım!) Talimat verebilir mi?

Yanıtlar:


25

Cron'a büyük bir çöküş, cron son derece sınırlı bir kabuk ortamında çalışmaktadır, bunun sonucu olarak birçok değişken çevreye ihraç edilmemektedir, özellikle de PATH. Emin, çalıştırılabilir tüm mutlak yolları kullanmak gibi ortak fonksiyonları da dahil olun echo, uptime, datetam yollarını kullanmak için tüm ihtiyaç vb ( /bin/echo, /bin/date, /usr/bin/uptime). Yürütülebilir dosyanın yolunu belirlemek için aşağıdaki whichgibi komutu kullanabilirsiniz : which echo- bu size o aracın tam yolunu gösterecektir.


Sohbette tartışıldığı gibi, bunun için teşekkürler ve gerçekten başka birine yardım edeceğini umuyorum ... ntpdate'e düşme yolunu yaparken, Windows'a çok alışkınım ve sadece "yerleşik" olmak için yankı duydum. tam yola ihtiyacım olacağını düşünmüyorum ... Linux hakkında daha fazla şey öğrenmek ve bu mantıklı geliyor!
wilhil

36

/var/log/syslogGünlük dosyasına bakmalısın . Bir cron kaçmış olsaydı şöyle bir çizgi olurdu:

Jun 11 19:09:01 penguin CRON[17376]: (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/php5/maxlifetime) ! -execdir fuser -s {} 2>/dev/null \; -delete)
Jun 11 19:17:01 penguin CRON[17799]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Sorun giderme ipuçları için bkz. Https://help.ubuntu.com/community/CronHowto#Troublesho_and_Common_Problems



1
Eğer syslog ( grep -i cron /var/log/syslog /var/log/syslog.1) 'da girdi yoksa, cron daemon'un çalışıp çalışmadığını kontrol etmeye başlayın: ps uww -C cronbir süreç içeren bir satır içermelidir.
Lekensteyn

Yanıltıcı olduğum için üzgünüm, syslog'da Cron için girişler var, bu komutla ilgili hiçbir şey yok ... Bazı işlerin her saatte bir çalıştırıldığını biliyorum, yeni bir posta uyarısı alıyorum ... AFAIK, çalışanlar ... crontab'dan, cron'da hiçbir şey yok. Saatlerce çalıştığım budur
wilhil

2

Komut dosyanızın (tercüman) ilk satırını şu şekilde değiştirmeyi deneyin:

#!/bin/bash

Ayrıca geçmişte çevre değişkenleri ve PATH sorunları ile ilgili sorunlar yaşadım. Tercüman değiştirdikten sonra sorunuma bashgitmişti.


1

Verilen clearme.shbetiği içine ekledim/etc/cron.hourly/

Terminalde CRON görevlerini güçlü egrep ve awk ile filtreleyin :

$ cat /var/log/syslog | egrep clearme | awk "{ print $1 }" > ~/Desktop/cronlog.txt

Çıktı şöyle görünecek:

Jan 14 15:20:01 markets-dev CRON[10089]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 15:40:01 markets-dev CRON[18042]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:00:01 markets-dev CRON[22817]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:20:01 markets-dev CRON[28183]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 16:40:01 markets-dev CRON[411]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 17:00:01 markets-dev CRON[5442]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)
Jan 14 17:20:01 markets-dev CRON[11935]: (dminca) CMD (root /etc/cron.hourly/clearme.sh)

Her şeyi adım adım açıklamak için:

  1. cat / var / log / syslog - sistem günlüğünü yazdır
  2. egrep clearme - ancak yalnızca clearme metnini içeren satırları seçin
  3. awk "{print $ 1}" - bana clearme metnini içeren satırı yazdır
  4. > ~ / Desktop / cronlog.txt - Desktop dizininde bulunan cronlog.txt dosyasındaki sonuçları gösterir .

4. adım isteğe bağlıdır. Sadece dosya yerine terminalde sonuçları yazdıracak.

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.