it-swarm-tr.com

Cron.hourly çalışmaz

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?

57
Switchkick

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
13
oli206

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?

150
DaithiF

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ı.

5
Ben Lin

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.

5
Cry Havok

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ü :)

0
Wolfy