waktu kerja cron

8

Saya ingin memulai pekerjaan cron pada jam 9:30 dan kemudian bekerja setiap 5 menit dan kemudian berhenti pada 16:30 setiap hari. Apakah penjadwalan semacam ini dimungkinkan dalam satu atau apakah saya memerlukan dua pekerjaan cron?

mustafa
sumber

Jawaban:

10

Saya memikirkan sesuatu seperti:

30/5 9-16 * * *  /usr/bin/script_to_run.sh

Lihat halaman wiki untuk rincian sintaks pengaturan waktu. Saya sarankan menguji ini dengan skrip yang mencatat waktu berjalan ke file.

#!/bin/bash

echo "Cron ran at: " `date` >> /var/log/crontimetest.log
webtoe
sumber
2
saya terkejut melihat "30/5" digunakan, jadi saya melihat kode sumber cron, khususnya entry.c, yang mem-parsing setiap baris crontab. dalam fungsi get_range (), ia memeriksa untuk melihat apakah karakter setelah angka pertama (30 dalam contoh ini) adalah '-' atau tidak. jika tidak, tanda '/' tidak pernah terlihat. ini adalah bug; seharusnya mencetak peringatan (atau pesan kesalahan) dari formulir, "'/' hanya bermakna setelah kisaran * atau nm". teman-teman maaf!
Paul Vixie
7

Anda membutuhkan tiga entri crontab:

30-55/5 9 * * * /usr/bin/script-to-run.sh
*/5 10-15 * * * /usr/bin/script-to-run.sh
0-30/5 16 * * * /usr/bin/script-to-run.sh

tolong jangan salahkan linux, atau bsd, atau saya, untuk sintaks entri crontab yang aneh dan tidak berguna. ini ditemukan di AT&T Bell Labs, dan kemudian distandarisasi sebagai bagian dari POSIX.

Paul Vixie
sumber
4

Saya pikir Anda membutuhkan tiga pekerjaan:

 */5 10-15 * * * yourjob
 0,5,10,15,20,25,30 16 * * * yourjob
 30,35,40,45,50,55 9 * * * yourjob
Sven
sumber