Saya ingin menjadwalkan tugas untuk dijalankan secara teratur dan telah mendengar bahwa Cron adalah cara untuk melakukan ini.
Bagaimana cara menambahkan pekerjaan Cron di Ubuntu?
Masukan script shell di salah satu folder tersebut: /etc/cron.daily
, /etc/cron.hourly
, /etc/cron.monthly
atau /etc/cron.weekly
.
Jika ini tidak cukup untuk Anda, Anda dapat menambahkan tugas yang lebih spesifik misalnya dua kali sebulan atau setiap 5 menit. Pergi ke terminal dan ketik:
crontab -e
Ini akan membuka crontab pribadi Anda (file konfigurasi cron). Baris pertama dalam file itu menjelaskan semuanya! Di setiap baris Anda dapat menentukan satu perintah untuk dijalankan dan jadwalnya, dan formatnya cukup sederhana ketika Anda terbiasa. Strukturnya adalah:
minute hour day-of-month month day-of-week command
Untuk semua angka Anda dapat menggunakan daftar, misalnya 5,34,55
dalam bidang menit berarti berjalan pada 5 lewat, 34 lewat, dan melewati 55 jam berapa pun yang didefinisikan.
Anda juga dapat menggunakan interval. Mereka didefinisikan seperti ini: */20
. Contoh ini berarti setiap tanggal 20, jadi di kolom menit itu sama dengan 0,20,40
.
Jadi, jalankan perintah setiap hari Senin jam 5.30 sore:
30 17 * * 1 /path/to/command
atau setiap 15 menit
*/15 * * * * /path/to/command
Perhatikan bahwa hari-hari dari 0-6 di mana 0 adalah hari Minggu.
Anda dapat membaca lebih lanjut di sini .
*/15 * * * * /path/to/command
, Anda dapat melakukannya@reboot /path/to/command
untuk menjalankan sesuatu saat startup.Jika pekerjaan yang ingin Anda jalankan dapat dijalankan dengan hak yang sama dengan pengguna Anda, saya sarankan menggunakan crontab pengguna yang dapat Anda edit dengan menjalankan
EDITOR="gedit" crontab -e
(yang akan menggunakan gedit untuk mengedit file crontab) atau secara sederhanacrontab -e
(yang akan menggunakan editor default) di terminal.Jika Anda ingin menjalankan sesuatu setiap 10 menit, misalnya, Anda menambahkan baris seperti ini
dan simpan file tersebut.
Anda dapat melihat isi crontab pengguna dengan
crontab -l
.Untuk menambahkan pekerjaan cron yang dijalankan sebagai root, Anda dapat mengedit crontab root dengan menjalankan
sudo crontab -e
.Cara paling fleksibel adalah dengan menggunakan crontab sistem
/etc/crontab
yang hanya dapat Anda edit dengan hak akses root. Dalam file ini, setiap perintah pengguna harus dijalankan seperti yang ditentukan, sehingga Anda dapat menjalankan perintah Anda sebagai root (jika Anda memerlukan tingkat hak istimewa itu) atau pengguna lain pada sistem.Misalnya, jika Anda ingin menjalankan sesuatu setiap 10 menit sebagai root, Anda akan menambahkan baris seperti ini
(perhatikan penambahan pengguna ke saluran)
Anda dapat melihat isi dari file sistem crontab dengan
cat /etc/crontab
.Lebih detail di: https://help.ubuntu.com/community/CronHowto
sumber
Jika Anda lebih suka melakukannya menggunakan GUI, Anda dapat pergi ke Pusat Perangkat Lunak dan menginstal tugas yang Dijadwalkan (atau menjalankan
sudo apt-get install gnome-schedule
). Ini akan memberikan GUI yang kuat untuk menambahkan tugas cron.Perhatikan bahwa jika Anda menggunakan metode ini, tugas-tugas secara default akan dieksekusi sebagai pengguna Anda sendiri, bukan sebagai root. Ini biasanya hal yang baik.
sumber
Saya merekomendasikan Penjadwal Tugas KDE (
kde-config-cron
) . Akses dari Pengaturan Sistem di modul Penjadwal Tugas di sana.Ia mengelola Crontab pribadi dan sistem, dan kemudahan membuat batas waktu sangat mengejutkan saya (lihat tangkapan layar di bawah). Saya pikir bagian ini sangat diremehkan.
sumber
Penjadwal Tugas KDE tidak akan berfungsi di Ubuntu biasa. Ini hanya berfungsi di Sistem KDE seperti KUbuntu. Untuk sistem non KDE Anda lebih suka menggunakan gnome-schedule
Aplikasi ini adalah tugas Terjadwal di Dash.
sumber
I can't install gnome schedule on Ubuntu 16.04
@ askubuntu.com/questions/785657/… . Ada paket untuk mengunduh @ bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060/… . Lakukan saja$ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb
Saya ingin mengatur pekerjaan Cron untuk dijalankan melalui skrip bash, jadi mengeksekusi skrip akan menambah pekerjaan cron.
Saya menyadari bahwa ketika Anda menggunakan:
Kemudian ia menciptakan file:
/var/spool/cron/crontabs/root
Di mana root adalah nama pengguna yang menjalankan menjalankan perintah crontab. Jadi berdasarkan ini dan setidaknya pada 14,04, kita dapat menjalankan perintah bash berikut untuk membuat pekerjaan Cron baru:
Kami juga perlu mengatur kepemilikan yang benar untuk file:
Dan atur izin yang benar:
Jika ketika Anda menjalankan
crontab -e
sudah ada pekerjaan Cron dalam daftar, maka Anda dapat menambahkan ke daftar menggunakan perintah berikut:sumber
Contoh menjalankan skrip
test_cron.sh
oleh cron setiap menit di Ubuntu 18.04 menggunakan tautan simbolik:test_cron.sh
mengajukan:Jika Anda ingin menggunakan variabel lingkungan di skrip Anda seperti
$USER
di jalur, lebih baik mengetikkan jalur yang tepat, bash tidak akan tahu variabel Anda pada waktu eksekusi.myname
adalah nama pengguna (bagian dari grup root, saya tidak yakin bahwa hak akses root diperlukan).Bolehkan pengguna untuk mengatur tugas cron, file akan dibuat jika perlu:
Jalan menuju skrip adalah
/home/myname/shell/test_cron.sh
Saya mengubah pemilik dan membuatnya dapat dieksekusi:
Saya menambahkan tautan simbolis:
Dicatat saat
myname
saya menambahkan tugas baru untuk dijalankantest_cron
setiap menit.Untuk memeriksa apakah perintah dalam daftar:
Untuk memeriksa eksekusi
sumber