Bagaimana saya bisa mendapatkan pekerjaan cron untuk dijalankan setiap 30 menit?

224

Saya ingin menambahkan crontabentri untuk menjalankan skrip setiap 30 menit, pada jam dan 30 menit melewati jam atau sesuatu yang dekat. Saya memiliki yang berikut ini, tetapi sepertinya tidak berjalan pada 0.

*/30 * * * *

String apa yang harus saya gunakan?

Cron berjalan pada OSX.

Darryl Hein
sumber
Sudahkah Anda berhasil membuat crontab Anda bekerja? Masalah Anda mungkin bukan crontab, tetapi membuatnya bisa digunakan.
Eddie
Ini menjalankan 2 skrip lain, satu setiap menit.
Darryl Hein
1
Saya menunggu untuk melihat apakah salah satu jawaban di bawah ini berfungsi, hanya harus menunggu sampai 30 menit berikutnya sudah habis ... dalam 3 menit.
Darryl Hein
2
... Tidak bisakah Anda hanya mengubah 0,30 menjadi 0,5? Jika 0,5 berfungsi, mengapa tidak 0,30?
George Stocker
1
Anda tidak pernah memberi tahu kami jika itu berhasil pada jam tersebut!
Eddie

Jawaban:

487

Melakukan:

0,30 * * * * your_command
vladr
sumber
1
Bagus sekali! Dalam CentOS crontab, saya harus melakukan sesuatu seperti di 0,30 * * * * root your_commandmana root akan menjadi pengguna yang saya gunakan.
Pemula
@prograhammer - Apakah ini bagian dari crontab root atau crontab pengguna lain?
Muhamed Huseinbašić
@ MuhamedHuseinbašić pertanyaan yang bagus, karena ada 2 crontab yang berbeda (yang global dan kemudian pengguna). Saya harus memeriksa dan melihat ...
pemilik program
100

crontab tidak mengerti "interval", itu hanya mengerti "jadwal"

jam berlaku: 0-23 - menit valid: 0-59

Contoh 1

30 * * * * your_command

ini berarti "lari ketika menit setiap jam adalah 30 " (akan berjalan pada: 1:30, 2:30, 3:30, dll)

contoh # 2

*/30 * * * * your_command

ini berarti "lari ketika menit setiap jam habis dibagi 30 " (akan berjalan pada: 1:30, 2:00, 2:30, 3:00, dll)

contoh # 3

0,30 * * * * your_command

ini berarti "lari ketika menit setiap jam adalah 0 atau 30 " (akan berjalan pada: 1:30, 2:00, 2:30, 3:00, dll)

itu cara lain untuk mencapai hasil yang sama seperti contoh # 2

contoh # 4

19 * * * * your_command

ini berarti "lari ketika menit setiap jam adalah 19 " (akan berjalan pada: 1:19, 2:19, 3:19, dll)

contoh # 5

*/19 * * * * your_command

ini berarti "lari ketika menit setiap jam habis dibagi 19 " (akan berjalan di: 1:19, 1:38, 1:57, 2:19, 2:38, 2:57 dll)

catatan: beberapa penyempurnaan telah dilakukan untuk posting ini oleh berbagai pengguna termasuk penulis

aequalsb
sumber
76

Coba ini:

0,30 * * * * your command goes here

Menurut halaman resmi Mac OS X crontab (5) , /sintaksinya didukung. Jadi, untuk mengetahui mengapa itu tidak berhasil untuk Anda, Anda harus melihat log untuk cron. Dalam log itu, Anda harus menemukan pesan kegagalan yang jelas.

Catatan: Mac OS X tampaknya menggunakan Vixie Cron, sama seperti Linux dan BSD.

Eddie
sumber
Saya selalu menggunakan * / 30 dengan sukses tetapi saya tidak ingat aplikasi saya di mana itu terlalu kritis jika hanya berjalan satu jam sekali jadi saya tidak berpikir saya pernah memeriksa.
Adam Hawes
2
@Adam Hawes: Saya juga menggunakan * / xx dengan sukses di masa lalu, tetapi di Linux dan UNIX lainnya. Saya belum mencoba Mac OSX secara pribadi. Pertanyaan aslinya tidak mengatakan OS mana. Beberapa UNIX yang lebih tua tidak mendukung * / xx
Eddie
Jawaban Anda juga berhasil, tetapi Vlad memiliki perwakilan lebih sedikit, jadi saya memberinya poin.
Darryl Hein
1
@DarrylHein lol, Hari ini Eddie memiliki perwakilan lebih sedikit :-p. Saya mendukung Eddie.
beginer
10

Jika pekerjaan cron Anda hanya berjalan di Mac OS X, Anda mungkin ingin menggunakan launchd sebagai gantinya.

Dari Menjadwalkan Pekerjaan Jangka Waktu (dokumen resmi Apple) :

Catatan: Meskipun masih didukung, cron bukanlah solusi yang disarankan. Itu telah ditinggalkan demi launchd.

Anda dapat menemukan informasi tambahan (seperti halaman Wikipedia launchd ) dengan pencarian web sederhana.

Ini
sumber
5

Anda menyebutkan Anda menggunakan OS X- Saya telah menggunakan cronnix di masa lalu. Ini tidak separah mengeditnya sendiri, tetapi itu membantu saya belajar apa kolom dalam sekejap. Hanya pemikiran saja.

Allyn
sumber
Ini bisa membantu sebaliknya.
Darryl Hein
3

Anda dapat menggunakan kedua simbol ' , ' ATAU dibagi ' / '.
Tapi, ' / ' lebih baik.
Misalkan kasus 'setiap 5 menit'. Jika Anda menggunakan ' , ', Anda harus menulis tugas cron sebagai berikut:

0,5,10,15,20,25,30,35,....    *      *     *   * your_command

Itu berarti menjalankan perintah_Anda dalam setiap jam dalam semua menit yang ditentukan: 0,5,10, ...

Namun, jika Anda menggunakan '/', Anda dapat menulis pekerjaan sederhana dan singkat berikut ini:

*/5  *  *  *  *  your_command

Ini berarti menjalankan perintah_anda dalam menit yang dapat dibagi 5 atau dengan kata-kata yang lebih sederhana, '0,5,10, ...'

Jadi, simbol yang dapat dibagi '/' adalah pilihan terbaik selalu;

Mohsen Abasi
sumber