Bagaimana menjalankan pekerjaan crontab setiap minggu pada hari Minggu

263

Saya mencoba mencari cara menjalankan pekerjaan crontab setiap minggu pada hari Minggu. Saya pikir yang berikut ini harus bekerja, tetapi saya tidak yakin apakah saya mengerti dengan benar. Apakah yang berikut ini benar?

5 8 * * 6
dev_fight
sumber
7
Pertanyaannya adalah tentang 'minggu' tetapi jawaban yang diterima adalah tentang 'hari Sabtu'. ¿?
inigomedina
11
Gunakan https://crontab.guru/ situs untuk membuat ekspresi cron.
nbi

Jawaban:

481

Berikut ini penjelasan tentang format crontab.

# 1. Entry: Minute when the process will be started [0-60]
# 2. Entry: Hour when the process will be started [0-23]
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31]
# 4. Entry: Month of the year when the process will be started [1-12]
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday]
#
# all x min = */x

Jadi menurut ini Anda 5 8 * * 0akan menjalankan 8:05 setiap hari Minggu.

Bjoern Rennhak
sumber
148
Agar lebih mudah dibaca, Anda dapat menggunakan salah satunya sun, mon, tue, wed, thu, fri, or satuntuk hari itu. Ini juga menyelamatkan Anda dari keharusan memilih antara menggunakan 0atau 7untuk hari Minggu.
Flu
193

Untuk menjalankan cron pada hari Minggu, Anda dapat menggunakan salah satu dari ini:

5 8 * * 0
5 8 * * 7
5 8 * * Sun

Di mana 5 8berdiri untuk waktu hari ketika ini akan terjadi: 8:05.

Secara umum, jika Anda ingin mengeksekusi sesuatu pada hari Minggu, pastikan kolom ke-5 berisi 0, 7atau Sun. Anda punya 6, jadi itu berjalan pada hari Sabtu.

Format untuk cronjobs adalah:

 +---------------- minute (0 - 59)
 |  +------------- hour (0 - 23)
 |  |  +---------- day of month (1 - 31)
 |  |  |  +------- month (1 - 12)
 |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
 |  |  |  |  |
 *  *  *  *  *  command to be executed

Anda selalu dapat menggunakan crontab.guru sebagai editor untuk memeriksa ekspresi cron Anda.

fedorqui 'SO berhenti merugikan'
sumber
14
Hanya untuk membantu orang lain menghindari kesalahan konyol yang baru saja saya buat, dan pastikan Anda menetapkan menit ke sesuatu selain * atau itu akan dieksekusi pada setiap menit dari jam itu!
user2924019
40

Berikut ini adalah format file crontab.

{menit} {jam} {hari-bulan} {bulan} {hari-dalam-minggu} {pengguna} {path-to-shell-script}

Jadi, untuk menjalankan setiap minggu pada tengah malam (Minggu adalah 0 biasanya, 7 dalam beberapa kasus yang jarang terjadi):

0 0 * * 0 root /path_to_command
xShirase
sumber
1
Memilih untuk menyebutkan cara menentukan perintah untuk dijalankan setiap kali. (Namun demikian, kolom pengguna harus dihilangkan ketika mengedit melalui perintah "crontab".)
Joachim Wagner
1
Minggu tengah malam adalah jam 0 Senin, yaitu 0 0 * * 1.
Fred Loney
5

Saat menentukan nilai cron Anda, Anda harus memastikan bahwa nilai Anda berada dalam rentang. Misalnya, beberapa cron menggunakan rentang 0-7 untuk hari dalam seminggu di mana 0 dan 7 mewakili hari Minggu. Kami tidak (periksa di bawah).

Seconds: 0-59
Minutes: 0-59
Hours: 0-23
Day of Month: 1-31
Months: 0-11
Day of Week: 0-6

referensi: https://github.com/ncb000gt/node-cron

Mendon Ashwini
sumber
3
"kami" ... siapa? program dan versi yang mana?
Massimo
Langsung dari tautan: D
Mendon Ashwini
2

Ekspresi pekerjaan Cron dengan cara yang mudah dibaca pembangun manusia crontab

Vytautas
sumber
1
Imho, ini bukan jawaban karena tidak menambahkan apa pun di sini, juga tidak menjawab pertanyaan di sini dengan cara apa pun.
Pankaj
2

Saya pikir Anda akan menyukai situs web interaktif ini, yang sering membantu saya membangun arahan Crontab yang kompleks: https://crontab.guru/

jasper
sumber
0

10 * * * Matahari

Position 1 for minutes, allowed values are 1-60
position 2 for hours, allowed values are 1-24
position 3 for day of month ,allowed values are 1-31
position 4 for month ,allowed values are 1-12 
position 5 for day of week ,allowed values are 1-7 or and the day starts at Monday. 
Bachan Joseph
sumber
2
Selamat atas jawaban pertama Anda di StackOverflow! Pastikan untuk memeriksa Panduan Menjawab . Misalnya, jawaban biasanya memiliki beberapa informasi baru yang hilang dalam jawaban yang ada.
doz10us
7
ini akan berjalan 24 kali pada hari Minggu, 10 menit melewati jam setiap jam.
Jens Timmerman
0

@ setiap minggu bekerja lebih baik untuk saya! example,add the fellowing crontab -e ,it will work in every sunday 0:00 AM @weekly /root/fd/databasebackup/week.sh >> ~/test.txt

未来 陆家嘴 顶尖 的 投资 人
sumber
0
* * * * 0 

you can use above cron job to run on every week on sunday, but in addition on what time you want to run this job for that you can follow below concept :

* * * * *  Command_to_execute
- � � � -
| | | | |
| | | | +�� Day of week (0�6) (Sunday=0) or Sun, Mon, Tue,...
| | | +���- Month (1�12) or Jan, Feb,...
| | +����-� Day of month (1�31)
| +������� Hour (0�23)
+��������- Minute (0�59)
Siddharth Bhandari
sumber