GNU/Linux >> Belajar Linux >  >> Linux

Penjadwalan dengan cron &At

Pengantar

Salah satu tantangan (di antara banyak keuntungan) menjadi sysadmin adalah menjalankan tugas saat Anda lebih suka tidur. Misalnya, beberapa tugas (termasuk tugas yang berulang secara rutin) perlu dijalankan semalaman atau di akhir pekan, saat tidak ada yang mengira akan menggunakan sumber daya komputer. Saya tidak punya waktu luang di malam hari untuk menjalankan perintah dan skrip yang harus beroperasi di luar jam kerja. Dan saya tidak ingin harus bangun di oh-dark-ratus untuk memulai pencadangan atau pembaruan besar.

Sebagai gantinya, saya menggunakan dua utilitas layanan yang memungkinkan saya menjalankan perintah, program, dan tugas pada waktu yang telah ditentukan. cron dan di layanan memungkinkan sysadmin untuk menjadwalkan tugas untuk dijalankan pada waktu tertentu di masa mendatang. Layanan di menentukan tugas satu kali yang berjalan pada waktu tertentu. Layanan cron dapat menjadwalkan tugas secara berulang, seperti harian, mingguan, atau bulanan.

1. Krona

cron adalah utilitas perangkat lunak, yang ditawarkan oleh sistem operasi mirip Linux yang mengotomatiskan tugas terjadwal pada waktu yang telah ditentukan. Ini adalah proses daemon , yang berjalan sebagai proses latar belakang dan melakukan operasi yang ditentukan pada waktu yang telah ditentukan saat peristiwa atau kondisi tertentu dipicu tanpa campur tangan pengguna. Berurusan dengan tugas yang berulang sering merupakan tugas yang menakutkan bagi administrator sistem dan dengan demikian ia dapat menjadwalkan proses tersebut untuk berjalan secara otomatis di latar belakang pada interval waktu yang teratur dengan membuat daftar perintah tersebut menggunakan cron .

Ini memungkinkan pengguna untuk menjalankan tugas terjadwal secara teratur seperti melakukan pencadangan setiap hari di tengah malam, menjadwalkan pembaruan setiap minggu, menyinkronkan file pada beberapa interval reguler. Cron memeriksa pekerjaan terjadwal secara berulang dan ketika bidang waktu terjadwal cocok dengan bidang waktu saat ini, perintah terjadwal dijalankan. Ini dimulai secara otomatis dari /etc/init.d saat memasuki level run multi-pengguna.

Penggunaan cron yang umum (dan tidak umum)

Saya menggunakan cron layanan untuk menjadwalkan hal-hal yang jelas, seperti pencadangan rutin yang terjadi setiap hari pada pukul 2 pagi. Saya juga menggunakannya untuk hal-hal yang kurang jelas.

  • Waktu sistem (yaitu, waktu sistem operasi) di banyak komputer saya disetel menggunakan Network Time Protocol (NTP). Sementara NTP mengatur waktu sistem, itu tidak mengatur waktu perangkat keras, yang dapat melayang. Saya menggunakan cron untuk mengatur waktu perangkat keras berdasarkan waktu sistem.
  • Saya juga memiliki program Bash yang saya jalankan setiap pagi yang membuat "pesan hari ini" (MOTD) baru di setiap komputer. Ini berisi informasi, seperti penggunaan disk, yang harus terkini agar berguna.
  • Banyak proses dan layanan sistem, seperti Logwatch, logrotate, dan Rootkit Hunter, menggunakan layanan cron untuk menjadwalkan tugas dan menjalankan program setiap hari.

crond daemon adalah layanan latar belakang yang mengaktifkan fungsionalitas cron.

Layanan cron memeriksa file di /var/spool/cron dan /etc/cron.d direktori dan /etc/anacrontab mengajukan. Isi file-file ini menentukan pekerjaan cron yang akan dijalankan pada berbagai interval. File cron pengguna individu berada di /var/spool/cron , dan layanan sistem dan aplikasi umumnya menambahkan file pekerjaan cron di /etc/cron.d direktori. /etc/anacrontab adalah kasus khusus yang akan dibahas nanti dalam artikel ini.

Cara menggunakan cron di Linux

Tidak ada waktu untuk perintah? Menjadwalkan tugas dengan cron berarti program dapat berjalan tetapi Anda tidak perlu begadang.

Menggunakan crontab

Utilitas cron berjalan berdasarkan perintah yang ditentukan dalam tabel cron (crontab ). Setiap pengguna, termasuk root, dapat memiliki file cron. File-file ini tidak ada secara default, tetapi dapat dibuat di /var/spool/cron direktori menggunakan crontab -e perintah yang juga digunakan untuk mengedit file cron (lihat skrip di bawah). Saya sangat menyarankan Anda tidak gunakan editor standar (seperti Vi, Vim, Emacs, Nano, atau salah satu dari banyak editor lain yang tersedia).

Crontab

Menggunakan crontab perintah tidak hanya memungkinkan Anda untuk mengedit perintah, tetapi juga memulai ulang crond daemon saat Anda menyimpan dan keluar dari editor. crontab perintah menggunakan Vi sebagai editor dasarnya, karena Vi selalu ada (bahkan pada instalasi paling dasar sekalipun).

File cron baru kosong, jadi perintah harus ditambahkan dari awal. Saya menambahkan contoh definisi pekerjaan di bawah ini ke file cron saya sendiri, hanya sebagai referensi cepat, jadi saya tahu apa arti berbagai bagian dari suatu perintah. Jangan ragu untuk menyalinnya untuk Anda gunakan sendiri.

crontab -e

Yang

tiga baris pertama dalam kode di atas mengatur lingkungan default. Lingkungan harus diatur ke apa pun yang diperlukan untuk pengguna tertentu karena cron tidak menyediakan lingkungan apa pun. SHELL variabel menentukan shell untuk digunakan ketika perintah dijalankan. Contoh ini menentukan shell Bash. MAILTO variabel menetapkan alamat email tempat hasil pekerjaan cron akan dikirim. Email ini dapat memberikan status pekerjaan cron (cadangan, pembaruan, dll.) dan terdiri dari output yang akan Anda lihat jika Anda menjalankan program secara manual dari baris perintah. Baris ketiga menyiapkan PATH untuk lingkungan. Meskipun jalurnya diatur di sini, saya selalu menambahkan jalur yang sepenuhnya memenuhi syarat ke setiap yang dapat dieksekusi.

Ada beberapa baris komentar dalam contoh di atas yang merinci sintaks yang diperlukan untuk mendefinisikan tugas cron. Saya akan memecah perintah tersebut, lalu menambahkan beberapa lagi untuk menunjukkan kepada Anda beberapa kemampuan file crontab yang lebih canggih.

01 01 * * * /usr/local/bin/rsbu -vbd1 ; /usr/local/bin/rsbu -vbd2

Ini

baris menjalankan skrip shell Bash yang saya tulis sendiri, rsbu , yang mencadangkan semua sistem saya. Pekerjaan ini dimulai pada pukul 01:01 (01 01) setiap hari. Tanda bintang (*) di posisi tiga, empat, dan lima dari spesifikasi waktu seperti gumpalan file, atau wildcard, untuk pembagian waktu lainnya; mereka menentukan "setiap hari dalam sebulan," "setiap bulan," dan "setiap hari dalam seminggu." Baris ini menjalankan cadangan saya dua kali; satu mencadangkan ke hard drive cadangan khusus internal, dan yang lainnya mencadangkan ke drive USB eksternal yang dapat saya bawa ke brankas.

Baris berikut mengatur jam perangkat keras pada komputer menggunakan jam sistem sebagai sumber waktu yang akurat. Jalur ini disetel untuk beroperasi pada pukul 5:03 pagi (03 05) setiap hari.

03 05 * * * /sbin/hwclock --systohc

Saya menggunakan tugas cron ketiga dan terakhir (dikomentari) untuk melakukan dnf atau yum perbarui pada 04:25 pada hari pertama setiap bulan, tetapi saya mengomentarinya sehingga tidak lagi berjalan.

25 04 1 * * /usr/bin/dnf -y update

Trik penjadwalan lainnya

Sekarang mari kita lakukan beberapa hal yang sedikit lebih menarik daripada dasar-dasar ini. Misalkan Anda ingin menjalankan pekerjaan tertentu setiap hari Kamis jam 3 sore:

00 15 * * Thu /usr/local/bin/mycronjob.sh

Atau, mungkin Anda perlu menjalankan laporan triwulanan setelah akhir setiap triwulan. Layanan cron tidak memiliki opsi untuk "Hari terakhir dalam sebulan", jadi Anda dapat menggunakan hari pertama bulan berikutnya, seperti yang ditunjukkan di bawah ini. (Ini mengasumsikan bahwa data yang diperlukan untuk laporan akan siap ketika pekerjaan diatur untuk dijalankan.)

02 03 1 1,4,7,10 * /usr/local/bin/reports.sh

Berikut ini menunjukkan pekerjaan yang berjalan satu menit lewat setiap jam antara 09:01 dan 17:01

01 09-17 * * * /usr/local/bin/hourlyreminder.sh

Saya

telah menghadapi situasi di mana saya harus menjalankan pekerjaan setiap dua, tiga, atau empat jam. Itu dapat dicapai dengan membagi jam dengan interval yang diinginkan, seperti */3 untuk setiap tiga jam, atau 6-18/3 untuk berlari setiap tiga jam antara jam 6 pagi dan 6 sore. Interval lain dapat dibagi dengan cara yang sama; misalnya, ekspresi */15 dalam posisi menit berarti “jalankan pekerjaan setiap 15 menit”.

*/5 08-18/* * * /usr/local/bin/mycronjob.sh

Satu hal yang perlu diperhatikan :Ekspresi pembagian harus menghasilkan sisa nol agar pekerjaan dapat dijalankan. Itulah sebabnya, dalam contoh ini, pekerjaan diatur untuk berjalan setiap lima menit (08:05, 08:10, 08:15, dll.) selama jam genap dari jam 8 pagi hingga 6 sore, tetapi tidak selama jam ganjil. jam bernomor. Misalnya, pekerjaan tidak akan berjalan sama sekali dari jam 9 malam. sampai 09:59

Saya yakin Anda dapat menemukan banyak kemungkinan lain berdasarkan contoh-contoh ini.

Membatasi akses cron

Pengguna biasa dengan akses cron dapat membuat kesalahan yang, misalnya, dapat menyebabkan sumber daya sistem (seperti memori dan waktu CPU) dibanjiri. Untuk mencegah kemungkinan penyalahgunaan, sysadmin dapat membatasi akses pengguna dengan membuat /etc/cron.allow file yang berisi daftar semua pengguna dengan izin untuk membuat tugas cron. Pengguna root tidak dapat dicegah menggunakan cron.

Dengan mencegah pengguna non-root membuat tugas cron mereka sendiri, root mungkin perlu menambahkan tugas cron mereka ke crontab root. "Tapi tunggu!" kamu bilang. "Bukankah itu menjalankan pekerjaan itu sebagai root?" Belum tentu. Pada contoh pertama dalam artikel ini, bidang nama pengguna yang ditampilkan di komentar dapat digunakan untuk menentukan ID pengguna yang harus dimiliki suatu pekerjaan saat dijalankan. Ini mencegah pekerjaan pengguna non-root yang ditentukan agar tidak berjalan sebagai root. Contoh berikut menunjukkan definisi pekerjaan yang menjalankan pekerjaan sebagai "siswa" pengguna:

04 07 * * * student /usr/local/bin/mycronjob.sh

Jika tidak ada pengguna yang ditentukan, pekerjaan dijalankan sebagai pengguna yang memiliki file crontab, dalam hal ini root.

cron.d

Direktori /etc/cron.d adalah tempat beberapa aplikasi, seperti spamAssassin dan sysstat, menginstal file cron. Karena tidak ada pengguna spamassassin atau sysstat, program ini membutuhkan tempat untuk mencari file cron, sehingga ditempatkan di /etc/cron.d .

/etc/cron.d/sysstat file di bawah ini berisi pekerjaan cron yang berhubungan dengan pelaporan aktivitas sistem (SAR). File cron ini memiliki format yang sama dengan file cron pengguna.

# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

File cron sysstat memiliki dua baris yang melakukan tugas. Baris pertama menjalankan sa1 program setiap 10 menit untuk mengumpulkan data yang disimpan dalam file biner khusus di /var/log/sa direktori. Lalu, setiap malam pukul 23:53, sa2 program berjalan untuk membuat ringkasan harian.

Kiat penjadwalan

Beberapa kali saya mengatur file crontab tampak agak acak—dan sampai batas tertentu memang begitu. Mencoba menjadwalkan pekerjaan cron dapat menjadi tantangan, terutama karena jumlah pekerjaan meningkat. Saya biasanya hanya memiliki beberapa tugas untuk dijadwalkan di setiap komputer saya, yang lebih sederhana daripada di beberapa lingkungan produksi dan lab tempat saya bekerja.

Satu sistem yang saya kelola memiliki sekitar selusin pekerjaan cron yang berjalan setiap malam dan tiga atau empat tambahan yang berjalan pada akhir pekan atau awal bulan. Itu merupakan tantangan, karena jika terlalu banyak pekerjaan yang dijalankan pada saat yang sama—terutama pencadangan dan kompilasi—sistem akan kehabisan RAM dan hampir mengisi file swap, yang mengakibatkan sistem meronta-ronta saat kinerja menurun, jadi tidak ada yang dilakukan. Kami menambahkan lebih banyak memori dan meningkatkan cara kami menjadwalkan tugas. Kami juga menghapus tugas yang penulisannya sangat buruk dan menggunakan memori dalam jumlah besar.

Koran

service mengasumsikan bahwa komputer host berjalan sepanjang waktu. Itu berarti bahwa jika komputer dimatikan selama periode ketika pekerjaan cron dijadwalkan untuk dijalankan, mereka tidak akan berjalan sampai waktu berikutnya dijadwalkan. Ini dapat menyebabkan masalah jika itu adalah pekerjaan cron yang kritis. Untungnya, ada opsi lain untuk menjalankan tugas secara berkala:anacron .

anakron

Program anacron melakukan fungsi yang sama seperti crond, tetapi menambahkan kemampuan untuk menjalankan pekerjaan yang dilewati, seperti jika komputer mati atau tidak dapat menjalankan pekerjaan untuk satu siklus atau lebih. Ini sangat berguna untuk laptop dan komputer lain yang dimatikan atau dalam mode tidur.

Segera setelah

komputer dihidupkan dan di-boot, anacron memeriksa untuk melihat apakah pekerjaan yang dikonfigurasi melewatkan jadwal terakhirnya. Jika ya, pekerjaan itu segera dijalankan, tetapi hanya sekali (tidak peduli berapa banyak siklus yang terlewatkan). Misalnya, jika pekerjaan mingguan tidak dijalankan selama tiga minggu karena sistem dimatikan saat Anda sedang berlibur, pekerjaan itu akan segera dijalankan setelah Anda menyalakan komputer, tetapi hanya sekali, bukan tiga kali.

Program anacron menyediakan beberapa opsi mudah untuk menjalankan tugas yang dijadwalkan secara rutin. Cukup instal skrip Anda di /etc/cron.[hourly|daily|weekly|monthly] direktori, tergantung seberapa sering mereka perlu dijalankan.

Bagaimana cara kerjanya? Urutannya lebih sederhana daripada yang pertama kali muncul.

  1. Layanan cron menjalankan tugas cron yang ditentukan dalam /etc/cron.d/0hourly .
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly

  1. Tugas cron ditentukan dalam /etc/cron.d/0hourly menjalankan run-parts program sekali per jam.
  2. run-parts program menjalankan semua skrip yang terletak di /etc/cron.hourly direktori.
  3. /etc/cron.hourly direktori berisi 0anacron skrip, yang menjalankan program anacron menggunakan /etdc/anacrontab file konfigurasi ditampilkan di sini.
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
                                                               
#period in days   delay in minutes   job-identifier   command
1       5       cron.daily              nice run-parts /etc/cron.daily
7       25      cron.weekly             nice run-parts /etc/cron.weekly
@monthly 45     cron.monthly            nice run-parts /etc/cron.monthly

  1. Program anakron menjalankan program yang terletak di /etc/cron.daily sekali sehari; itu menjalankan pekerjaan yang terletak di /etc/cron.weekly sekali seminggu, dan pekerjaan di cron.monthly sekali per bulan. Catat waktu tunda yang ditentukan di setiap baris yang membantu mencegah tugas ini tumpang tindih dengan tugas cron lainnya.

Alih-alih menempatkan program Bash lengkap di cron.X direktori, saya menginstalnya di /usr/local/bin direktori, yang memungkinkan saya menjalankannya dengan mudah dari baris perintah. Kemudian saya menambahkan symlink di direktori cron yang sesuai, seperti /etc/cron.daily .

Program anakron

tidak dirancang untuk menjalankan program pada waktu tertentu. Sebaliknya, ini dimaksudkan untuk menjalankan program pada interval yang dimulai pada waktu yang ditentukan, seperti jam 3 pagi (lihat START_HOURS_RANGE baris dalam skrip tepat di atas) setiap hari, pada hari Minggu (untuk memulai minggu), dan pada hari pertama bulan itu. Jika ada satu atau lebih siklus yang terlewatkan, anacron akan menjalankan tugas yang terlewat satu kali, sesegera mungkin.

Pintasan

/etc/anacrontab file yang ditunjukkan di atas menunjukkan kepada kita petunjuk tentang bagaimana kita dapat menggunakan pintasan untuk beberapa waktu tertentu dan umum. Pintasan waktu satu kata ini dapat digunakan untuk menggantikan lima bidang yang biasanya digunakan untuk menentukan waktu. @ karakter digunakan untuk mengidentifikasi pintasan ke cron. Daftar di bawah, diambil dari halaman manual crontab(5), menunjukkan pintasan dengan arti yang setara.

  • @reboot :Jalankan sekali setelah reboot.
  • @yearly :Jalankan setahun sekali, mis. 0 0 1 1 *
  • @annually :Jalankan setahun sekali, mis. 0 0 1 1 *
  • @monthly :Jalankan sebulan sekali, mis. 0 0 1 * *
  • @weekly :Jalankan seminggu sekali, mis. 0 0 * * 0
  • @daily :Jalankan sekali sehari, mis. 0 0 * * *
  • @hourly :Jalankan satu jam sekali, mis. 0 * * * *

Pintasan ini dapat digunakan di file crontab mana pun, seperti yang ada di /etc/cron.d .

Selengkapnya tentang menyetel batas

Saya menggunakan sebagian besar metode ini untuk menjadwalkan tugas agar berjalan di komputer saya. Semua tugas itu adalah tugas yang perlu dijalankan dengan hak akses root. Jarang dalam pengalaman saya bahwa pengguna biasa benar-benar membutuhkan pekerjaan cron. Satu kasus adalah pengguna pengembang yang membutuhkan pekerjaan cron untuk memulai kompilasi harian di lab pengembangan.

Penting untuk membatasi akses ke fungsi cron oleh pengguna non-root. Namun, ada keadaan ketika pengguna perlu mengatur tugas untuk dijalankan pada waktu yang ditentukan sebelumnya, dan cron dapat mengizinkan mereka melakukannya. Banyak pengguna tidak mengerti cara mengkonfigurasi tugas-tugas ini dengan benar menggunakan cron dan mereka membuat kesalahan. Kesalahan tersebut mungkin tidak berbahaya, tetapi, lebih sering daripada tidak, mereka dapat menyebabkan masalah. Dengan menetapkan kebijakan fungsional yang menyebabkan pengguna berinteraksi dengan sysadmin, tugas cron individu jauh lebih kecil kemungkinannya untuk mengganggu pengguna lain dan fungsi sistem lainnya.

Dimungkinkan untuk menetapkan batasan total sumber daya yang dapat dialokasikan untuk pengguna individu atau grup, tetapi itu adalah artikel untuk lain waktu.

Poin Penting

Sintaks cron:

cron [-f] [-l] [-L loglevel]

Opsi:

  • -f : Digunakan untuk tetap dalam mode latar depan, dan tidak melakukan daemonisasi.
  • -l : Ini akan mengaktifkan nama yang sesuai dengan LSB untuk file /etc/cron.d.
  • -n : Digunakan untuk menambahkan FQDN pada subjek saat mengirim email.
  • -L tingkat log : Opsi ini akan memberi tahu cron apa yang harus dicatat tentang pekerjaan dengan nilai berikut:
    • 1 : Ini akan mencatat awal dari semua tugas cron.
    • 2 : Ini akan mencatat akhir dari semua tugas cron.
    • 4 : Ini akan mencatat semua pekerjaan yang gagal. Di sini status keluar tidak akan sama dengan nol.
    • 8 : Ini akan mencatat nomor proses dari semua tugas cron.

Crontab (singkatan untuk "cron table") adalah daftar perintah untuk menjalankan tugas terjadwal pada waktu tertentu. Ini memungkinkan pengguna untuk menambah, menghapus, atau memodifikasi tugas yang dijadwalkan. Sintaks perintah crontab memiliki enam bidang yang dipisahkan oleh spasi di mana lima yang pertama mewakili waktu untuk menjalankan tugas dan yang terakhir adalah untuk perintah.

  • Menit (memiliki nilai antara 0-59)
  • Jam (memiliki nilai antara 0-23)
  • Hari dalam Bulan (memiliki nilai antara 1-31)
  • Bulan dalam setahun (memiliki nilai antara 1-12 atau Jan-Des, tiga huruf pertama dari nama bulan akan digunakan)
  • Hari dalam seminggu (memiliki nilai antara 0-6 atau Minggu-Sabtu, di sini juga tiga huruf pertama hari itu harus digunakan)
  • Perintah
Aturan yang mengatur format field tanggal dan waktu sebagai berikut:
  • Bila salah satu dari lima bidang pertama disetel ke tanda bintang (*), itu berarti semua nilai bidang. Misalnya, untuk menjalankan perintah setiap hari, kita dapat menempatkan tanda bintang (*) di bidang minggu.
  • Seseorang juga dapat menggunakan rentang angka, dipisahkan dengan tanda hubung (-) di bidang waktu dan tanggal untuk menyertakan lebih dari satu nilai yang berdekatan tetapi tidak semua nilai bidang. Misalnya, kita dapat menggunakan 7-10 untuk menjalankan perintah dari Juli hingga Oktober.
  • Operator koma (, ) digunakan untuk memasukkan daftar angka yang boleh berurutan atau tidak. Misalnya, “1, 3, 5” di bidang minggu menandakan pelaksanaan perintah setiap hari Senin, Rabu, dan Jumat.
  • Karakter garis miring(/) disertakan untuk melewati sejumlah nilai tertentu. Misalnya, "*/4" di bidang jam menentukan 'setiap 4 jam' yang setara dengan 0, 4, 8, 12, 16, 20.
Mengizinkan pengguna menjalankan tugas cron:
  • Pengguna harus terdaftar dalam file ini untuk dapat menjalankan tugas cron jika file tersebut ada.
/etc/cron.allow
  • Jika file cron.allow tidak ada tetapi file cron.deny ada, maka pengguna tidak boleh terdaftar dalam file ini untuk dapat menjalankan tugas cron.
/etc/cron.deny

Catatan: Jika tidak satu pun dari file-file ini ada maka hanya pengguna super (administrator sistem) yang akan diizinkan untuk menggunakan perintah yang diberikan.
Contoh perintah:

  • /home/folder/gfg-code.sh setiap jam, mulai pukul 09.00 hingga 18.00, setiap hari.
00 09-18 * * * /home/folder/gfg-code.sh
  • /usr/local/bin/backup pada pukul 23.30, setiap hari kerja.
30 23 * * Mon, Tue, Wed, Thu, Fri /usr/local/bin/backup
  • Jalankan sample-command.sh pada 07:30, 09:30, 13:30, dan 15:30.
30 07, 09, 13, 15 * * * sample-command.sh

Hal-hal berikut harus diingat saat bekerja dengan cron:

  • Memiliki kontrol versi sumber untuk melacak dan memelihara perubahan pada ekspresi cron.
  • Atur tugas terjadwal berdasarkan kepentingannya atau frekuensinya dan kelompokkan berdasarkan tindakan atau rentang waktunya.
  • Uji pekerjaan terjadwal dengan memiliki frekuensi tinggi pada awalnya.
  • Jangan menulis kode kompleks atau beberapa perpipaan dan pengalihan dalam ekspresi cron secara langsung. Sebagai gantinya, tuliskan ke skrip dan jadwalkan skrip ke tab cron.
  • Gunakan alias ketika kumpulan perintah yang sama sering diulang.
  • Hindari menjalankan perintah atau skrip melalui cron sebagai pengguna root.

2. Pada

atas perintah adalah utilitas baris perintah yang digunakan untuk menjadwalkan perintah yang akan dieksekusi pada waktu tertentu di masa mendatang. Pekerjaan dibuat dengan atas perintah dieksekusi hanya sekali. di perintah dapat digunakan untuk menjalankan program atau surat apa pun kapan saja di masa mendatang. Ini mengeksekusi perintah pada waktu tertentu dan menerima waktu dalam bentuk HH:MM untuk menjalankan pekerjaan pada waktu tertentu dalam sehari. Ekspresi berikut seperti siang, tengah malam, waktu minum teh, besok, minggu depan, Senin depan, dll. dapat digunakan dengan at command untuk menjadwalkan pekerjaan.

Sintaks:

at [OPTION...] runtime

Instalasi atas perintah

Untuk Ubuntu/Debian :

sudo apt-get update
sudo apt-get install at

Untuk CentOS/Fedora :

sudo yum install at

Bekerja dengan perintah

1. Perintah untuk mencantumkan pekerjaan pengguna yang tertunda:

at -l

atau

atq

2. Jadwalkan pekerjaan untuk Senin mendatang pada waktu dua puluh menit lebih lambat dari waktu sekarang:

at Monday +20 minutes

3. Jadwalkan pekerjaan untuk dijalankan pada 1:45 12 Agustus 2020:

at 1:45 081220

4. Jadwalkan pekerjaan untuk dijalankan pada jam 3 sore empat hari dari sekarang:

at 3pm + 4 days

5. Jadwalkan tugas untuk mematikan sistem pada pukul 4:30 hari ini:

# echo "shutdown -h now" | at -m 4:30

6. Jadwalkan pekerjaan untuk dijalankan lima jam dari sekarang:

at now +5 hours

7. at -r atau perintah atrm digunakan untuk menghapus job , disini digunakan untuk menghapus job 11.

 at -r 11

atau

atrm 11

Linux
  1. Menjadwalkan tugas dengan perintah cron Linux

  2. Jadwalkan tugas dengan Linux pada perintah

  3. Kelola NTP dengan Chrony

  1. Pertama kali dengan Linux:30 kisah instalasi

  2. Sinkronkan Waktu Server Linux dengan Server Waktu Jaringan

  3. Menggunakan Notify-send Dengan Cron?

  1. Menjadwalkan tugas sistem dengan Cron di Linux

  2. Bagaimana Cara Kerja Bagian Dalam Cron Daemon?

  3. Proses Waktu Mulai Dengan Zona Waktu?