Pertanyaan Bagaimana cara saya mengatur pekerjaan Cron?


Saya ingin menjadwalkan tugas untuk berjalan secara teratur dan telah mendengar bahwa Cron adalah cara untuk melakukan ini.

Bagaimana cara menambah Cron jobs di Ubuntu?


486
2017-08-16 08:25


asal




Jawaban:


Masukkan skrip shell di salah satu folder ini: /etc/cron.daily, /etc/cron.hourly, /etc/cron.monthly atau /etc/cron.weekly.

Jika ini tidak cukup untuk Anda, Anda dapat menambahkan lebih banyak tugas spesifik, mis. 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 menguasainya. Strukturnya adalah:

minute hour day-of-month month day-of-week command

Untuk semua nomor, Anda dapat menggunakan daftar, mis. 5,34,55 di bidang menit berarti berjalan pada 5 melewati, 34 melewati, dan 55 melewati jam apa pun didefinisikan.

Anda juga dapat menggunakan interval. Mereka didefinisikan seperti ini: */20. Contoh ini berarti setiap tanggal 20, jadi di kolom menit sama dengan 0,20,40.

Jadi untuk menjalankan 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-minggu berlalu dari 0-6 di mana 0 adalah hari Minggu.

Anda dapat membaca lebih lanjut sini.


600
2017-08-16 08:58



Ini adalah sistem-lebar dan dijalankan dengan hak istimewa yang tinggi. Saya tidak akan meletakkan apa pun di sana kecuali ada kebutuhan mendesak untuk akses atau izin. Sebagai aturan praktis, cobalah untuk melakukan hal-hal tanpa kemampuan. Oleh karena itu, saya suka jawaban ini lebih baik: ubuntu.stackexchange.com/questions/2368/how-do-i-setup-cron-job/… - H Marcelo Morales
@Marcelo Morales, yang juga akan menjalankan perintah yang diberikan sebagai root! jika Anda tidak menggunakan sudo maka Anda akan membuat crontab pengguna dan ini akan dijalankan sebagai pengguna yang membuatnya! - LassePoulsen
* / 15 * * * * / path / to / command sangat berguna untuk saya! Terima kasih! - Andrew Odendaal
Patut diperhatikan bahwa perubahan ini diterapkan secara otomatis, Anda tidak perlu memulai ulang / memuat ulang apa pun. - Molomby
Tip lain yang berguna adalah alih-alih */15 * * * * /path/to/command, Anda dapat melakukan @reboot /path/to/command untuk melakukan sesuatu saat startup. - Kenneth Worden


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 digunakan gedit untuk mengedit file crontab) atau secara sederhana crontab -e(yang akan menggunakan editor default) di terminal.

Jika Anda ingin menjalankan sesuatu setiap 10 menit, misalnya, Anda menambahkan baris seperti ini

*/10 * * * * /usr/bin/somedirectory/somecommand

dan simpan file.

Anda dapat melihat isi crontab pengguna dengan crontab -l.

Cara yang paling fleksibel adalah menggunakan crontab sistem yang dapat Anda edit dengan menjalankan sudo crontab -e di terminal. Ini akan memungkinkan Anda untuk menjalankan perintah Anda sebagai root (jika Anda membutuhkan tingkat hak istimewa itu) atau pengguna lain pada sistem.

Kemudian jika Anda ingin menjalankan sesuatu setiap 10 menit sebagai akar, misalnya, Anda menambahkan garis seperti ini

*/10 * * * * root /usr/bin/somedirectory/somecommand

dan simpan file.(perhatikan penambahan pengguna ke baris)

Anda dapat melihat isi dari file sistem crontab dengan sudo crontab -l.

Detail lebih lanjut di: https://help.ubuntu.com/community/CronHowto


93
2017-08-16 09:21



Berikut adalah manipulator cron interaktif manis yang akan memberi Anda bahasa Inggris ke waktu cron crontab.guru - CTS_AE


Jika Anda lebih suka melakukannya menggunakan GUI, Anda dapat pergi ke Pusat Perangkat Lunak dan menginstal Tugas yang dijadwalkan (atau jalankan sudo apt-get install gnome-schedule). Ini akan memberikan GUI yang kuat untuk menambah tugas cron.

Perhatikan bahwa jika Anda menggunakan metode ini, tugas secara default akan dijalankan sebagai pengguna Anda sendiri, bukan sebagai root. Ini biasanya hal yang baik.


51
2018-01-31 23:59



tidak tersedia untuk 16.04 rupanya bugs.launchpad.net/ubuntu/+source/gnome-schedule/+bug/1576060 - TankorSmash
@TankorSmash Anda bisa mendapatkannya sini - M. Becerra
Persyaratan paket tidak dapat dipenuhi pada 16.04 - Odysseus Ithaca


saya merekomendasi Penjadwal Tugas KDE (kde-config-cron)  Install kde-config-cron. Akses dari Pengaturan sistem dalam Penjadwal Tugas modul di sana.

Ini mengelola Crontab pribadi dan sistem, dan kemudahan menciptakan batas waktu sangat mengejutkan saya (lihat gambar di bawah). Saya pikir bagian ini benar-benar diremehkan.

enter image description here


24
2018-02-11 14:35





Penjadwal Tugas KDE tidak akan berfungsi di Ubuntu reguler. Ini hanya berfungsi di Sistem KDE seperti KUbuntu. Untuk sistem non KDE Anda akan lebih suka menggunakan gnome-schedule

$ sudo apt-get install gnome-schedule

Aplikasi ini tugas Terjadwal di Dash.


11
2017-09-27 20:25



Itu tidak ditemukan untuk Ubuntu 16.04 - SaidbakR
PLease sudah melihat 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/…. Baru saja tampil $ sudo dpkg -i gnome-schedule_2.3.0-0ubuntu16.04_amd64.deb - Antonio


Saya ingin mengatur tugas Cron untuk dijalankan melalui skrip bash, sehingga mengeksekusi skrip akan menambahkan tugas cron.

Saya menyadari bahwa ketika Anda menggunakan:

crontab -e 

Kemudian ia menciptakan file:

/var/spool/cron/crontabs/root 

Di mana root adalah nama pengguna yang menjalankan perintah crontab. Jadi berdasarkan ini dan dalam 14.04 setidaknya, kita dapat menjalankan perintah bash berikut untuk membuat tugas Cron baru:

echo "30 17 * * 1 /path/to/command" > /var/spool/cron/crontabs/root

Kami juga perlu mengatur kepemilikan yang benar untuk file:

chown root:root /var/spool/cron/crontabs/root

Dan atur izin yang benar:

chmod 600 /var/spool/cron/crontabs/root

Jika saat Anda berlari crontab -e sudah ada tugas Cron dalam daftar, maka Anda dapat menambahkan daftar menggunakan perintah berikut:

echo "30 17 * * 1 /path/to/command" >> /var/spool/cron/crontabs/root

8