Menjalankan pekerjaan cron di Linux setiap enam jam

139

Bagaimana saya bisa menjalankan perintah setiap enam jam setiap hari?

Saya mencoba yang berikut, tetapi tidak berhasil:

/6 * * * * *  mycommand
Gandalf StormCrow
sumber
7
kemungkinan rangkap dari Bagaimana menjalankan crontab untuk setiap 2 jam
Cas
2
bagaimana dengan * * / 6 * * *
madalinivascu

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
tidak
sumber
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.

Brian Agnew
sumber
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!

rkoots
sumber
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.

Andrea Bisello
sumber
0
0 */6 * * *

crontab setiap 6 jam adalah jadwal cron yang umum digunakan.

Nilesh Patil
sumber
4
Apa yang ditambahkan jawaban ini sehingga jawaban lain tidak? @rkoots telah menyebutkan perintah persis ini.
Selamat tinggal StackExchange
"Biasa digunakan" ? Mengapa? Bisakah Anda menguraikan?
Peter Mortensen
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 ...

rkoots
sumber
-2

Mencoba:

0 */6 * * * command

. * harus

rkoots
sumber
1
Baris terakhir di sini tidak masuk akal. Apakah Anda mempertimbangkan untuk mengembangkannya?
halfer
1
sepertinya jawabannya tidak lengkap
ajayramesh