Menjalankan pekerjaan cron di Linux setiap enam jam


Jawaban:


323

Anda lupa *, dan Anda memiliki terlalu banyak bidang. Ini adalah jam yang perlu Anda pedulikan

0 */6 * * * /path/to/mycommand

Ini berarti setiap jam keenam mulai dari 0, yaitu pada jam 0, 6, 12 dan 18 yang dapat Anda tulis sebagai

0 0,6,12,18 * * * /path/to/mycommand

terima kasih atas tanggapannya, ini setiap 6 jam mulai jam berapa? waktu ketika cron dibuat?
Gandalf StormCrow

terima kasih, jadi jika saya ingin menjalankannya mulai dari 15:00 setiap 6 jam itu akan 15 15,23,05,11 * * * /path/to/mycommand?
Gandalf StormCrow

5
Ya, meskipun bidang pertama adalah menit, yang Anda tetapkan ke 15, jadi itu berarti 15: 15,23: 15,05: 15 dan 11:15. (yang bukan setiap jam ke 6 btw, Anda mungkin bermaksud 0 15,21,3,9 * * *)
no

6

Anda harus memasukkan lintasan ke perintah Anda, karena cron berjalan dengan lingkungan yang sangat terbatas. Anda tidak akan memiliki semua variabel lingkungan yang Anda miliki di sesi shell interaktif Anda.

Sebaiknya tentukan path absolut ke skrip / biner Anda, atau tentukan PATH di crontab itu sendiri. Untuk membantu men-debug masalah apa pun saya juga akan mengarahkan stdout / err ke file log.


1
terima kasih atas tanggapannya, tetapi jika saya mendeklarasikan variabel lingkungan di dalam file sh saya seperti export variable=somethingsaya masih dapat menggunakannya di dalam skrip yang sama? dan saya menggunakan banyak perintah tanggal di dalam skrip
Gandalf StormCrow

@ Gandalf - Ya. Anda dapat mendefinisikan semua variabel env Anda di dalam skrip. Itu ide yang bagus karena artinya skrip Anda berdiri sendiri dan terisolasi dari hal-hal lain yang mungkin ingin Anda jalankan dalam cron
Brian Agnew

5
0 */6 * * * command

Ini akan menjadi cara yang sempurna untuk mengatakan 6 jam sehari.

Perintah Anda diberikan selama enam menit!


2
@ArsenArsen Saya cukup yakin itu karena itu tidak benar-benar menambahkan apa pun ke jawaban yang diterima yang ada, tulis 4 tahun sebelumnya.
Adinia

2

Harap perhatikan sintaks ini :

* */6 * * *

Ini berarti 60 kali (setiap menit) setiap 6 jam,

tidak

satu kali setiap 6 jam.



0

Anda perlu menggunakan *

0 */6 * * * /path/to/mycommand

Anda juga dapat merujuk ke https://crontab.guru/ yang akan membantu Anda dalam penjadwalan yang lebih baik ...


-2

Mencoba:

0 */6 * * * command

. * harus


1
Baris terakhir di sini tidak masuk akal. Apakah Anda mempertimbangkan untuk mengembangkannya?
halfer

1
sepertinya jawabannya tidak lengkap
ajayramesh
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.