at
adalah utilitas baris perintah yang memungkinkan Anda menjadwalkan perintah yang akan dieksekusi pada waktu tertentu. Pekerjaan dibuat dengan at
dieksekusi hanya sekali.
Pada artikel ini, kami akan menjelaskan cara menggunakan at
dan utilitas pendampingnya batch
, atq
, atrm
untuk melihat, menghapus, dan membuat tugas yang akan dijalankan di lain waktu.
Memasang at
#
Tergantung pada distribusinya, at
mungkin ada atau tidak ada di sistem Linux Anda.
Jika at
tidak diinstal, Anda dapat menginstalnya dengan mudah menggunakan manajer paket distribusi Anda.
-
Pasang
at
di Ubuntu dan Debiansudo apt update
sudo apt install at
-
Pasang
at
di CentOS dan Fedorasudo yum install at
Setelah program terinstal pastikan atd
, daemon penjadwalan sedang berjalan dan diatur untuk memulai saat boot:
sudo systemctl enable --now atd
Cara Menggunakan at
Perintah #
Sintaks yang disederhanakan untuk at
perintahnya adalah sebagai berikut:
at [OPTION...] runtime
at
perintah mengambil tanggal dan waktu (runtime
) saat Anda ingin menjalankan tugas sebagai parameter baris perintah, dan perintah yang akan dijalankan dari input standar.
Mari kita buat pekerjaan yang akan dieksekusi pada pukul 9:00:
at 09:00
Setelah Anda menekan Enter
, Anda akan disajikan dengan at
command prompt yang paling sering dimulai dengan at>
. Anda juga melihat peringatan yang memberi tahu Anda shell tempat perintah akan dijalankan:
warning: commands will be executed using /bin/sh
at>
Masukkan satu atau lebih perintah yang ingin Anda jalankan:
tar -xf /home/linuxize/file.tar.gz
Setelah selesai memasukkan perintah, tekan Ctrl-D
untuk keluar dari prompt dan menyimpan pekerjaan:
at> <EOT>
job 4 at Tue May 5 09:00:00 2020
Perintah akan menampilkan nomor pekerjaan serta waktu dan tanggal pelaksanaan.
Ada juga cara lain untuk melewati perintah yang ingin Anda jalankan, selain memasukkan perintah di at
mengingatkan. Salah satu caranya adalah dengan menggunakan echo
dan kirimkan perintah ke at
:
echo "command_to_be_run" | at 09:00
Pilihan lainnya adalah menggunakan dokumen Here:
at 09:00 <<END
command_to_be_run
END
Untuk membaca perintah dari file alih-alih input standar, jalankan perintah dengan -f
opsi berikut dengan path ke file. Misalnya, untuk membuat pekerjaan yang akan menjalankan skrip /home/linuxize/script.sh
:
at 09:00 -f /home/linuxize/script.sh
Secara default jika perintah menghasilkan output, at
akan mengirim email termasuk output ke pengguna setelah pekerjaan selesai. Panggil at
dengan -M
opsi untuk menekan notifikasi email:
at 09:00 -M
Gunakan -m
untuk mengirim email meskipun tidak ada keluaran:
at 09:00 -m
batch
Perintah #
batch
atau aliasnya at -b
menjadwalkan pekerjaan dan menjalankannya dalam antrian batch ketika tingkat beban sistem mengizinkan. Secara default, pekerjaan dijalankan ketika rata-rata beban sistem di bawah 1,5. Nilai beban dapat ditentukan saat menjalankan atd
daemon. Jika rata-rata beban sistem lebih tinggi dari yang ditentukan, pekerjaan akan menunggu dalam antrian.
Untuk membuat pekerjaan dengan batch
, berikan perintah yang ingin Anda jalankan:
echo "command_to_be_run" | batch
Menentukan Waktu Eksekusi #
at
utilitas menerima berbagai spesifikasi waktu. Anda dapat menentukan waktu, tanggal, dan kenaikan dari waktu saat ini:
-
Waktu - Untuk menentukan waktu, gunakan
HH:MM
atauHHMM
membentuk. Untuk menunjukkan format waktu 12 jam, gunakanam
ataupm
setelah waktu. Anda juga dapat menggunakan string sepertinow
,midnight
,noon
, atauteatime
(16:00). Jika waktu yang ditentukan terlewati, pekerjaan akan dieksekusi pada hari berikutnya. -
Tanggal - Perintah ini memungkinkan Anda untuk menjadwalkan pelaksanaan pekerjaan pada tanggal tertentu. Tanggal dapat ditentukan menggunakan nama bulan diikuti dengan hari dan tahun opsional. Anda dapat menggunakan string, seperti
today
,tomorrow
, atau hari kerja. Tanggal juga dapat ditunjukkan menggunakanMMDD[CC]YY
,MM/DD/[CC]YY
,DD.MM.[CC]YY
atau[CC]YY-MM-DD
format. -
Peningkatan -
at
juga menerima penambahan dalamnow + count time-unit
format, di manacount
adalah angka dantime-unit
dapat berupa salah satu dari string berikut:minutes
,hours
,days
, atauweeks
.
Waktu, tanggal, dan kenaikan dapat digabungkan, berikut beberapa contohnya:
-
Jadwalkan pekerjaan untuk hari Minggu mendatang pada waktu sepuluh menit lebih lambat dari waktu saat ini:
at sunday +10 minutes
-
Jadwalkan pekerjaan untuk dijalankan pada jam 1 siang dua hari dari sekarang:
at 1pm + 2 days
-
Jadwalkan pekerjaan untuk dijalankan pada 12:30 21 Okt 2020:
at 12:30 102120
-
Jadwalkan pekerjaan untuk dijalankan satu jam dari sekarang:
at now +1 hours
Anda juga dapat menentukan waktu dan tanggal di [[CC]YY]MMDDhhmm[.ss]
menggunakan -t
pilihan. Ini contohnya:
at -t 202005111321.32
Menentukan Antrian #
Secara default, pekerjaan dibuat dengan at
dijadwalkan dalam antrian bernama a
dan pekerjaan dibuat dengan batch
dijadwalkan dalam b
antrian.
Kueri dapat memiliki nama dari a
ke z
dan A
ke Z
. Antrean dengan huruf yang lebih rendah dijalankan dengan tingkat kehalusan yang lebih rendah, yang berarti antrian tersebut memiliki prioritas di atas yang memiliki huruf yang lebih tinggi.
Anda dapat menentukan antrian dengan -q
pilihan. Misalnya, untuk mengatur pekerjaan di L
antrian, Anda akan menjalankan:
at monday +2 hours -q L
Mencantumkan Pekerjaan Tertunda #
Untuk membuat daftar pekerjaan pengguna yang tertunda, jalankan atq
atau at -l
perintah:
atq
Output akan mencantumkan semua pekerjaan, satu per baris. Setiap baris berisi nomor pekerjaan, tanggal, waktu, surat antrian, dan nama pengguna.
9 Tue May 5 12:22:00 2020 a linuxize
12 Wed Oct 21 12:30:00 2020 a linuxize
15 Tue May 5 09:00:00 2020 a linuxize
6 Tue May 5 09:00:00 2020 a linuxize
13 Mon May 4 23:08:00 2020 a linuxize
11 Wed Jul 1 10:00:00 2020 a linuxize
4 Tue May 5 09:00:00 2020 a linuxize
Ketika atq
dipanggil sebagai pengguna administratif, itu akan mencantumkan pekerjaan yang tertunda dari semua pengguna.
Menghapus Pekerjaan Tertunda #
Untuk menghapus pekerjaan yang tertunda, panggil atrm
atau at -r
perintah diikuti dengan nomor pekerjaan. Misalnya, untuk menghapus pekerjaan dengan nomor sembilan, Anda akan menjalankan:
atrm 9
Membatasi Pengguna #
/etc/at.deny
dan /etc/at.allow
file memungkinkan Anda mengontrol pengguna mana yang dapat membuat pekerjaan dengan at
atau batch
memerintah. File terdiri dari daftar nama pengguna, satu nama pengguna per baris.
Secara default, hanya /etc/at.deny
file ada dan kosong, yang berarti semua pengguna dapat menggunakan at
memerintah. Jika Anda ingin menolak izin untuk pengguna tertentu, tambahkan nama pengguna ke file ini.
Jika /etc/at.allow
file yang ada hanya pengguna yang terdaftar dalam file ini yang dapat menggunakan at
perintah.
Jika tidak ada file yang ada, hanya pengguna dengan hak administratif yang dapat menggunakan at
perintah.
Kesimpulan #
at
utilitas membaca perintah dari input standar dan mengeksekusinya di lain waktu. Tidak seperti crontab, pekerjaan dibuat dengan at
dieksekusi hanya sekali.
Untuk informasi lebih lanjut tentang semua opsi yang tersedia dari at
ketik perintah man at
di terminal Anda.
Jika Anda memiliki pertanyaan, silakan tinggalkan komentar.