Ok, Jadi saya sudah membuat skrip saya, saya menjatuhkannya /etc/cron.hourly
lalu saya chmod 777
file tetapi tidak akan berjalan (secara otomatis). Jika saya menjalankannya secara manual, itu berfungsi dengan baik. Apakah saya perlu melakukan hal lain?
cron-jobs
command-line
crontab
cron
Switchkick
sumber
sumber
Jawaban:
Mengapa tidak menggunakan crontab (/ etc / crontab) dan gunakan * / 1 di bidang jam. Saya telah menggunakan ini untuk menjalankan skrip setiap 5 menit dan berfungsi dengan baik:
sumber
cron.daily
dan teman berfungsi sedikit lebih baik jika mesin tidak berjalan sepanjang waktu, karena anacron mencoba memperkirakan jadwal yang tepat sedangkan plain cron tidak akan menjalankannya jika mesin tidak menyala sepanjang malam. Untuk pekerjaan per jam, ini mungkin tidak terlalu penting./etc/crontab
:cron.daily
,cron.weekly
dancron.monthly
dijalankan dengan anacron (jika tersedia) tapi per jamrun-parts --report /etc/cron.hourly
.Entri masuk
cron.hourly
dijalankan oleh mekanisme run-parts (man run-parts
untuk info lebih lanjut). Danrun-parts
pemilih tentang nama file yang dianggap valid.Misalnya, memberikan skrip Anda ekstensi akan membuatnya tidak valid dan mengakibatkan pekerjaan tidak berjalan.
[a-zA-Z0-9_-]
adalah karakter yang valid, jadi '.' membuatnya tidak valid.Saat menambahkan pekerjaan ke
/etc/cron.hourly
(atau.daily
,,.weekly
dll), selalu uji setelah itu yangrun-parts
benar-benar akan menjalankannya dengan mengeluarkan perintah:Jika dengan menjalankan perintah ini ia menunjukkan file Anda itu berarti berhasil. Kalau tidak, jika tidak menunjukkan apa-apa nama file Anda tidak valid.
Apa nama naskahmu?
sumber
giving your script an extension will make it invalid and result in the job not being run
--report
untuk benar-benar menjalankan skrip.Masalah Anda mungkin karena izin yang terlalu terbuka, yang memungkinkan siapa saja untuk mengedit file Anda. Coba
755
saja.Melihat entri cron dalam output syslog Anda harus mengonfirmasi hal ini.
sumber
Jawaban DaithiF harus menjadi jawaban yang tepat.
Juga, skrip saya tidak ada
#!/bin/bash
di baris pertama. Meskipun skrip dapat dieksekusi dengan baris perintah,run-parts
menolaknya dengan mengatakan "Exec format error".Mengubah nama file dari
scriptname.sh
menjadiscriptname
dan menambahkan#!/bin/bash
ke baris pertama memungkinkan skrip saya berjalan setiap jam.sumber
Ketika Anda berlari
Apakah tugas ini ada dalam daftar?
jika tidak, tambahkan
tambahkan baris ini
jika ada di daftar ini, cobalah untuk menambahkan jalur bahasa pemrograman ke bagian atas skrip Anda
Contoh:
2 hal ini selalu menyelesaikan masalah saya :)
sumber