Tamam, Senaryomu yazdım, onu /etc/cron.hourlybı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.hourlybı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.dailymakinesi 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.weeklyve 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-partsdaha fazla bilgi için). Ve run-partshangi 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, .weeklyvb.) Eklerken, her zaman run-partskomutu ç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
--reportkomut dosyalarını çalıştırmak için de kullanabilirsiniz .
DaithiF'in cevabı doğru cevap olmalı.
Ayrıca, senaryomun #!/bin/bashilk 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.shye değiştirmek ve ilk satıra scriptnameeklemek, #!/bin/bashbetiğ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ü :)