Cron.hourly çalışmayacak


54

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?


Bu cevap, dosya adı ve içeriğin adı olmadan çok fazla oy almamalıydı.
kullanıcı bilinmeyen

Yanıtlar:


13

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

6
Kullanılması 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.
poolie,

9
Bir çözüm bulmak yerine cron.hourly ile ilgili sorunu çözdüğü için bir sonraki cevabı gerçekten takdir ediyorum.
tishma

4
Bu soruya bir cevap değil
josh123a123

@poolie olarak görülebilir/etc/crontab : cron.daily, cron.weeklyve cron.monthly saatlik Anacron ile çalıştırın (varsa) ancak run-parts --report /etc/cron.hourly.
Pablo A,

144

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?


İki tane var: cerebro_random_response.sh ve Cerebro Temperature.sh iyi değil mi?
Switchkick

21
doğru, iyi değil :) [a-zA-Z0-9_-] geçerli karakterler, yani '.' geçersiz kılar. Bu, 'betiğinize bir uzantı verilmesini geçersiz kılmak' derken demek istediğim
şeydi

11
oMG, Bu sadece büyük bir baş ağrısı kurtardı. TEŞEKKÜR EDERİM! giving your script an extension will make it invalid and result in the job not being run
Jonathan S. Fisher

Ayrıca --reportkomut dosyalarını çalıştırmak için de kullanabilirsiniz .
Pablo A,

5

Sorununuz muhtemelen herkesin dosyanızı düzenlemesine izin veren aşırı açık izinlere bağlıdır. 755Bunun yerine deneyin .

Sistem günlüğü çıktınızdaki cron girişlerine bakmanız bunu onaylamalıdır.


4

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


-1

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


Hepsini yaptım ve senaryo iyi, cazibeye benziyor. Crontab listesinde de var ama saatlik bir iş yok. Yine de teşekkürler :(
Switchkick 20:10
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.