Yaygın hataların çoğunu ortadan kaldırmaya çalıştım,
PATH'lerin cron için hazır olmasını sağlamak
crontab dosyasının sonunda bir bitiş çizgisi var
saat dilimi şu şekilde ayarlanır:
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
Bash'da date
koşuyorum, anladım:
Tue Sep 17 15:14:30 SGT 2013
Cron'un aynı zamanı kullanıp kullanmadığını kontrol etmek için,
* * * * * date >> date.txt
date.txt dosyasında aynı tarih çıktısını veriyor.
Bu yürütmeye çalıştığım komut dosyası:
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
Kullanarak crontab -e
, aşağıdaki çizgi çalışır,
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
Ancak, ben diğer bazı argümanlar denedim, o 2.50 de çalışmasını umuyor:
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
veya
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
artık çalışmaz. Saat argümanımda bir sorun var gibi görünüyor. /tmp/debug.log
Dosyada da hiçbir şey bulunamadı .
ÇÖZÜM:
TZ'de değişiklik yaptıktan sonra cron servisini yeniden başlatmam gerektiği ortaya çıktı.
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
onaylayın date
. Not crontab içinden TZ ortam değişkeni kendisi Daemon cron tarafından kullanıldığı gibi saat dilimini etkilemez olabilir, ama o olacak ben bunu geçici dışında yorum önermek istiyorum size crontab TZ değişkenine eğer öyleyse, cron ile başlatılan süreçleri etkileyecek ve bunun yerine sistem saatinin saat dilimini (Linux'u tek önyükleme yapıyorsanız, ancak yerel saat olabilir , muhtemelen UTC) kullanarak saati ayarlama .
~/event.sh
ile denemede/home/username/event.sh