Tamam, senaryomu hazırladım, /etc/cron.hourly
sonra ben chmod 777
dosya ancak çalışmaz (otomatik olarak). Elle çalıştırırsam iyi çalışır. Başka bir şey yapmam gerekiyor mu?
Neden crontab (/ etc/crontab) kullanmıyor ve saat alanında */1 kullanmıyorsunuz. Ben 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.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ğunu düşündüğü konusunda seçicidir.
Örneğin, komut dosyanıza bir uzantı vermek onu geçersiz kılar ve işin çalışmamasına neden olur. [a-zA-Z0-9_-]
geçerli karakterler, yani '.' geçersiz kılar.
/etc/cron.hourly
(veya .daily
, .weekly
, vb.), daha sonra her zaman run-parts
aslında komutu vererek çalıştıracaktır:
run-parts --test /etc/cron.hourly
Bu komutu çalıştırarak dosyanızı gösterirse, çalıştığı anlamına gelir. Aksi takdirde, hiçbir şey gösterilmezse dosya adınız geçerli değildir.
Senaryonuzun adı neydi?
DaithiF'in cevabı doğru cevap olmalı.
Ayrıca, senaryomda #!/bin/bash
ilk satırda. Komut dosyası komut satırıyla yürütülebilir olsa da, run-parts
"Yürütme biçimi hatası" diyerek reddetti.
Dosya adını scriptname.sh
- scriptname
ve #!/bin/bash
, ilk satıra komut dosyamın saatlik çalışmasını sağladı.
Sorununuz muhtemelen herkesin dosyanızı düzenlemesine izin veren aşırı açık izinlere bağlıdır. Deneyin 755
yerine.
Syslog çıktınızdaki cron girişlerine bakarak bunu doğrulamanız gerekir.
Koştuğunda
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 üstüne eklemeye çalışın
Misal:
bash: #!/bin/bash
Bu 2 şey her zaman sorunlarımı çözdü :)