Menjalankan skrip setiap hari menggunakan cronjob

9

Saya memerlukan kode persis yang akan saya gunakan karena saya tidak dapat mengetahuinya. Saya menggunakan crontab -euntuk mengatur pekerjaan cron tetapi ketika saya menyimpannya, itu tidak pernah berhasil. Saya juga hanya mencoba menjalankan file yang dipanggil newmail.shdari pengguna root.

pengguna219706
sumber
Sudahkah Anda menemukan jawaban untuk pertanyaan Anda?
bendaf

Jawaban:

10

Jika Anda ingin tugas dijalankan setiap hari pada pukul 3:17, Anda akan menggunakan:

17 15 * * * root newmail.sh

Ini mengatakan "jalankan newmail.sh sebagai root setiap hari dalam seminggu, setiap hari dalam sebulan, setiap bulan pada pukul 3:17 sore."

menit jam dom bulan dow pengguna cmd

menit - Ini mengontrol pada menit berapa jam perintah akan berjalan, dan berada di antara '0' dan '59'

hour - Ini mengontrol jam berapa perintah akan dijalankan, dan ditentukan dalam jam 24 jam, nilainya harus antara 0 dan 23 (0 adalah tengah malam)

dom - Ini adalah Hari Bulan, di mana Anda ingin menjalankan perintah, misalnya untuk menjalankan perintah pada tanggal 19 setiap bulan, dom akan menjadi 19.

bulan Ini adalah bulan di mana perintah tertentu akan dijalankan, mungkin ditentukan secara numerik (0-12), atau sebagai nama bulan (mis. Mei)

dow - Ini adalah Hari Minggu di mana Anda ingin menjalankan perintah, bisa juga berupa angka (0-7) atau sebagai nama hari (mis. matahari).

pengguna - Ini adalah pengguna yang menjalankan perintah.

cmd - Ini adalah perintah yang ingin Anda jalankan. Bidang ini dapat berisi beberapa kata atau spasi.

dari: http://www.unixgeeks.org/security/newbie/unix/cron-1.html

dm78
sumber
di ubuntu 16 dan kemudian format baru adalah: "mh dom mon dow command"
bendaf
di Ubuntu 19 menit pertama adalah. Juga, ini memperingatkan Anda tentang waktu yang salah.
kelalaka
5
sudo crontab -e

Tambahkan baris ini di akhir file

*/1 * * * * wget -O /dev/null  project_crone_URL

(Jalankan cron per sekali dalam 1 menit)

0 0 * * * wget -O /dev/null  project_crone_URL

(Jalankan cron per sekali dalam 24 jam)

menyimpan file

Mulai crontab dengan perintah ini

sudo /etc/init.d/cron start

Hentikan crontab dengan perintah ini

sudo /etc/init.d/cron stop

Mulai ulang crontab dengan perintah ini

sudo /etc/init.d/cron restart
Raman Singh
sumber
1

Jika Anda menggunakan crontab -ekarena Ubuntu 16.0+ tidak akan memiliki bidang pengguna, maka format yang benar adalah:

17 15 * * * newmail.sh

Ini mengatakan "jalankan newmail.sh setiap hari dalam seminggu, setiap hari dalam sebulan, setiap bulan pada pukul 3:17 sore."

Cara lain jawaban dm78 benar dan berisi deskripsi format yang tepat.

Juga jika terjadi kesalahan dan Anda memiliki sistem email yang diinstal, ia akan mengirimkan Anda pesan. Untuk info lebih lanjut lihat jawaban ini

Jika Anda tertarik untuk mencatat cronjobs, Anda dapat menggunakan jawaban ini .

bendaf
sumber
1
Itu tergantung pada yang crontab Anda edit. Yang crontab -ethingy tidak memiliki bidang pengguna (seperti yang Anda katakan dengan benar) tetapi file /etc/crontab( sistem yang disebut crontab) dan file di bawah /etc/cron.d ini memiliki bidang pengguna.
PerlDuck