Tamam, Senaryomu yazdım, onu /etc/cron.hourly
bıraktım chmod 777
, sonra dosyaya koydum ama çalışmaz (otomatik olarak). El ile çalıştırdıysam, iyi çalışıyor. Başka bir şey yapmam gerekir mi?
Tamam, Senaryomu yazdım, onu /etc/cron.hourly
bıraktım chmod 777
, sonra dosyaya koydum ama çalışmaz (otomatik olarak). El ile çalıştırdıysam, iyi çalışıyor. Başka bir şey yapmam gerekir mi?
Yanıtlar:
Neden crontab (/ etc / crontab) kullanmıyor ve saat alanında * / 1 kullanıyorsunuz. Bunu her 5 dakikada bir komut dosyası çalıştırmak için kullandım ve iyi çalışıyor:
# m h dom mon dow user command
* */1 * * * user command
cron.daily
makinesi her zaman çalışır durumda değilse anacron makine bütün gece değilse düz cron sadece onları yayınlanmaz oysa doğru zamanlamayı tahmin etmeye çalışır çünkü ve arkadaşları, biraz daha iyi çalışır. Saatlik işler için bu muhtemelen çok da önemli değil.
/etc/crontab
: cron.daily
, cron.weekly
ve cron.monthly
saatlik Anacron ile çalıştırın (varsa) ancak run-parts --report /etc/cron.hourly
.
Girişler cron.hourly
, çalışma parçaları mekanizması tarafından çalıştırılır ( man run-parts
daha fazla bilgi için). Ve run-parts
hangi dosya adlarının geçerli olduğu konusunda seçici.
Örneğin, betiğinize bir uzantı vermek geçersiz kılar ve işin yürütülmemesine neden olur. [a-zA-Z0-9_-]
geçerli karakterler, bu yüzden '.' geçersiz kılar.
Bir işe /etc/cron.hourly
(veya .daily
, .weekly
vb.) Eklerken, her zaman run-parts
komutu çalıştırarak gerçekten çalışacak olan daha sonra sınayın :
run-parts --test /etc/cron.hourly
Bu komutu çalıştırarak dosyanızı gösterirse çalıştığını gösterir. Aksi takdirde, hiçbir şey göstermiyorsa, dosya adınız geçerli değildir.
Senaryonun adı neydi?
giving your script an extension will make it invalid and result in the job not being run
--report
komut dosyalarını çalıştırmak için de kullanabilirsiniz .
DaithiF'in cevabı doğru cevap olmalı.
Ayrıca, senaryomun #!/bin/bash
ilk satırında yoktu . Komut dosyası komut satırıyla çalıştırılsa bile, run-parts
"Exec format error" (Yürütme biçimi hatası) diyerek reddetti.
Dosya adını 'dan' scriptname.sh
ye değiştirmek ve ilk satıra scriptname
eklemek, #!/bin/bash
betiğimin saatlik çalışmasını sağladı.
Kaçtığında
crontab -l
Bu görev listede mi?
değilse, ekleyin
crontab -e
bu satırı ekle
0 * * * * yourScript
bu listede varsa, programlama dilinin yolunu komut dosyanızın en üstüne eklemeyi deneyin.
Örnek:
bash: #!/bin/bash
Bu 2 şey her zaman sorunlarımı çözdü :)