Pendahuluan
at
command adalah utilitas baris perintah Linux yang digunakan untuk menjadwalkan pekerjaan untuk eksekusi nanti. Utilitas membaca perintah dari input standar dan mengelompokkannya ke dalam at
pekerjaan, yang dijalankan hanya sekali.
Alternatif untuk at
adalah pekerjaan cron. Namun, saat at
tugas dijalankan hanya sekali, tugas cron adalah peristiwa yang berulang.
Dalam tutorial ini, Anda akan belajar menggunakan at
perintah dan lihat contoh berguna untuk penjadwalan perintah.
Prasyarat
- Sistem yang menjalankan Linux.
- Akun pengguna dengan hak istimewa sudo.
Instal di Command
Bergantung pada distribusi Linux yang Anda gunakan, at
perintah mungkin tidak diinstal sebelumnya.
Periksa apakah at
diinstal dengan memasukkan nama perintah di terminal:
Jika utilitas belum diinstal sebelumnya, pesan keluaran menyatakan Perintah 'at' tidak ditemukan .
Instal di Ubuntu dan Debian
Ikuti langkah-langkah di bawah ini untuk memasang at
di Ubuntu atau Debian:
1. Perbarui repositori paket:
sudo apt update
2. Pasang at
perintah dengan menjalankan:
sudo apt install at
Instal di CentOS dan Fedora
Ikuti langkah-langkah di bawah ini untuk memasang at
di CentOS atau Fedora:
1. Perbarui repositori paket:
sudo yum -y update
2. Jalankan perintah berikut untuk menginstal at
:
sudo yum install at
Aktifkan Daemon Penjadwalan
Daemon penjadwalan berjalan di latar belakang dan menjalankan tugas terjadwal tepat waktu.
Jalankan perintah berikut setelah menginstal at
paket untuk mengaktifkan atd
menjadwalkan daemon dan mengaturnya untuk memulai pada sistem boot.
sudo systemctl enable --now atd
Linux pada Sintaks dan Opsi Perintah
Sintaks untuk at
perintahnya adalah:
at [option] runtime
Opsi ini memungkinkan Anda melihat atau menghapus tugas terjadwal dan menyesuaikan at
penjadwalan tugas komando. Opsi yang tersedia adalah:
Opsi | Deskripsi |
---|---|
-V | Mencetak nomor versi program ke keluaran standar. |
-q [queue] | Menggunakan [queue] yang ditentukan terdiri dari satu huruf, mulai dari a -z dan A -Z . a antrian adalah default untuk at dan b antrian adalah default untuk batch . Antrian dengan huruf yang lebih tinggi berjalan dengan lebih baik. Mengirimkan pekerjaan ke antrian dengan huruf besar memperlakukan pekerjaan seperti yang dikirimkan ke batch . batch aturan rata-rata beban berlaku setelah tiba waktunya untuk menjalankan pekerjaan. Menunjuk antrian ke atq menyebabkannya hanya menampilkan pekerjaan yang tertunda dalam antrean itu. |
-m | Mengirim email kepada pengguna setelah pekerjaan selesai, meskipun tidak ada output. Memerlukan alamat email yang dikonfigurasi untuk pengguna yang menjadwalkan pekerjaan. |
-f [file] | Membaca pekerjaan dari [file] yang ditentukan bukan dari input standar. |
-b | Alias untuk batch . Menjadwalkan tugas dan menjalankannya dalam batch antrian ketika rata-rata tingkat beban sistem di bawah 1,5. |
-l | Alias untuk atq . Mencantumkan pekerjaan pengguna yang tertunda. Jika pengguna adalah pengguna super, daftarkan semua pekerjaan pengguna yang tertunda. |
-d | Alias untuk atrm . Menghapus pekerjaan terjadwal, yang diidentifikasi dengan nomor pekerjaan mereka. |
-v | Menampilkan waktu eksekusi pekerjaan sebelum membaca pekerjaan. Format waktunya adalah Thu Feb 20 14:50:00 1997 . |
-c | Melakukan pekerjaan yang ditentukan, menampilkan isinya dalam output baris perintah standar. |
-t [time_arg] | Menjadwalkan pekerjaan untuk waktu yang ditentukan oleh [time_arg] argumen. Format waktu yang diterima adalah [[CC]YY]MMDDhhmm . |
[runtime]
Ekspresi Waktu
Jadwalkan pekerjaan menggunakan ekspresi waktu absolut atau ekspresi waktu relatif terhadap waktu pengaturan pekerjaan.
ekspresi waktu absolut . yang tersedia adalah:
YYMMDDhhmm[.ss]
. Tentukan singkatan tahun, bulan, hari, jam, menit, dan opsional detik.CCYYMMDDhhmm[.ss]
. Tentukan tahun penuh, bulan, hari, jam, menit, dan opsional detik.now
. Menunjukkan hari dan waktu saat ini dan eksekusi segera.midnight
. Menunjukkan pukul 00:00.noon
. Menunjukkan pukul 12:00.teatime
. Diartikan sebagai jam 4 sore.AM
. Menunjukkan waktu sebelum pukul 12:00.PM
. Menunjukkan waktu setelah pukul 12:00.today
. Hari ini.tomorrow
. Sehari setelah hari ini.
Misalnya, perintah berikut menjadwalkan pemanggilan perintah gema pada jam 5 sore:
echo "hello" | at 5PM
Tentukan ekspresi waktu relatif dengan menambahkan tanda plus (+
), jumlahnya, dan salah satu dari berikut ini:
minutes
hours
days
weeks
months
years
Menggunakan ekspresi waktu seperti tomorrow
atau tuesday
, menjadwalkan pekerjaan pada hari-hari tersebut pada waktu saat ini. Tentukan lebih lanjut waktu menggunakan +
karakter.
Misalnya, perintah berikut menjadwalkan echo
pemanggilan perintah lima menit setelah menjadwalkan pekerjaan:
echo "hello" | at now +5 minutes
Lingkungan
SHELL
nilai variabel lingkungan menentukan shell mana (bash, zsh, dll.) at
perintah yang digunakan untuk menjalankan pekerjaan. Saat menjadwalkan pekerjaan, perintah memperingatkan pengguna shell mana yang akan digunakan selama eksekusi.
Linux di Contoh Perintah
Bagian berikut menunjukkan at
useful yang berguna contoh perintah.
Jadwalkan Pekerjaan Secara Interaktif
at
perintah memungkinkan Anda menjadwalkan pekerjaan menggunakan at
interactive interaktif mengingatkan. Buka prompt interaktif menggunakan sintaks berikut:
at [runtime]
Prompt interaktif memungkinkan Anda memasukkan perintah mana yang akan dijalankan pada waktu yang ditentukan. Perintah tersebut juga mencetak peringatan yang menyatakan shell mana yang akan digunakan oleh perintah.
Keluar dari perintah interaktif dan simpan pekerjaan terjadwal dengan menekan Ctrl + D . Batalkan pekerjaan dengan Ctrl + C .
Misalnya:
Dalam contoh di atas, kami menjadwalkan pekerjaan untuk jam 5 sore, yang membuka prompt interaktif. Pekerjaan yang dijadwalkan adalah menjalankan echo
perintah, dan utilitas menggunakan shell bash standar.
Pipakan Pekerjaan ke di
Jadwalkan pekerjaan tanpa at
interactive interaktif prompt dengan menyalurkan perintah ke at
dan menentukan waktu proses. Gunakan echo
atau printf untuk meneruskan perintah ke at
.
Misalnya:
echo "command_to_run" | at [runtime]
Untuk menjadwalkan at
pekerjaan yang mengirimkan echo
perintah output ke file, gunakan:
echo "hello" >> example.txt | at now
Gunakan perintah cat untuk memeriksa apakah file tersebut ada untuk memastikan pekerjaan telah dijalankan:
cat example.txt
Melihat Pekerjaan Terjadwal
-c
opsi menampilkan konten pekerjaan yang dijadwalkan sebelumnya. Opsi ini berguna jika Anda lupa pekerjaan apa atau ingin memeriksa waktu yang dijadwalkan.
Lihat isi jadwal at
pekerjaan menggunakan sintaks berikut:
at -c [job_number]
Dapatkan nomor pekerjaan dengan menjalankan atq
perintah pertama untuk mendaftar semua pekerjaan yang tertunda.
Misalnya:
Pada contoh di atas, pertama-tama kami meminta daftar semua pekerjaan yang tertunda untuk mendapatkan nomor pekerjaan dan kemudian menampilkan konten pekerjaan 14 dalam output standar.
Mencantumkan Pekerjaan Terjadwal
at
utilitas memungkinkan Anda untuk meninjau pekerjaan mana yang masih dalam antrian dan eksekusi yang tertunda. Ada dua cara untuk melihat tugas yang tertunda:
- Jalankan
atq
perintah. - Gunakan
-l
pilihan.
Misalnya:
at -l
Output menunjukkan nomor pekerjaan yang tertunda, tanggal, waktu, tahun, dan antrian untuk pengguna saat ini. Untuk membuat daftar pekerjaan yang tertunda dari semua pengguna, jalankan perintah dengan sudo
.
sudo atq
Pada contoh di atas, menjalankan atq
menunjukkan pekerjaan yang tertunda hanya untuk pengguna saat ini. Menjalankan atq
dengan sudo
menunjukkan pekerjaan yang tertunda untuk semua pengguna.
Kirim Email Notifikasi saat Eksekusi
at
utilitas mengirimkan pemberitahuan email tentang pekerjaan yang diselesaikan secara default. Notifikasi email memerlukan alamat email yang berfungsi yang dikonfigurasi untuk akun pengguna Anda, dan sistem harus dapat mengirim email.
Untuk menginstruksikan at
untuk mengirim pemberitahuan email tentang penyelesaian pekerjaan, meskipun tidak ada keluaran, tentukan -m
pilihan.
Misalnya:
rm example.txt | at -m tomorrow
Perintah di atas menjadwalkan pekerjaan untuk waktu saat ini besok. Setelah selesai, at
utilitas memberi tahu pengguna menggunakan alamat email yang dikonfigurasi untuk pengguna bosko .
Jalankan Pekerjaan Tanpa Memberitahu
Untuk menghindari pemberitahuan email tentang pekerjaan yang telah selesai, tentukan -M
opsi saat menjadwalkan at
pekerjaan.
Misalnya:
echo "shutdown -h now" | at -M 00:00
Pada contoh di atas, kami menjadwalkan penonaktifan sistem untuk tengah malam dan menggunakan -M
opsi untuk mencegah utilitas mengirim pemberitahuan email.
Hapus Pekerjaan Terjadwal
Untuk menghapus at
scheduled yang dijadwalkan pekerjaan, tentukan -r
opsi, atau jalankan atrm
perintah bersama dengan ID pekerjaan. Dapatkan ID pekerjaan dengan menjalankan atq
atau menggunakan -l
pilihan.
Dalam contoh berikut, kami menghapus tugas 12:
Batasi Pengguna
at
package menggunakan dua file untuk membatasi at
dan batch
akses perintah:
/etc/at.allow
/etc/at.deny
Edit file untuk mengizinkan hanya pengguna tertentu untuk membuat, menghapus, atau menampilkan at
. yang tertunda pekerjaan. File adalah daftar nama pengguna yang dapat atau tidak dapat mengakses at
perintah. Karakter baris baru memisahkan nama pengguna, dan spasi tidak diizinkan.
Penting :Jika /etc/at.allow
file ada, hanya pengguna yang terdaftar di dalamnya yang diizinkan untuk menggunakan at
atau batch
, dan /etc/at.deny
berkas diabaikan. Jika /etc/at.allow
file tidak ada, pengguna terdaftar di /etc/at.deny
tidak diperbolehkan menggunakan at
atau batch
. Pengguna root selalu dapat mengeksekusi at
perintah, terlepas dari file kontrol akses.
Edit /etc/at.deny
file dengan hak sudo untuk menolak akses pengguna ke at
perintah. Pada contoh berikut, kami mengedit file menggunakan editor vi:
sudo vi /etc/at.deny
Setelah menambahkan nama pengguna ke daftar, jalankan at
perintah menggunakan akun pengguna yang dibatasi menghasilkan pesan berikut:
Jalankan Pekerjaan Saat Memuat Sistem Mengizinkan
batch
perintah (-b
option) menjadwalkan at
pekerjaan untuk dieksekusi ketika rata-rata beban sistem turun di bawah 1,5. Menjalankan tugas saat beban sistem rendah mencegah konsumsi semua sumber daya sistem dan memastikan pengoperasian sistem yang optimal.
Misalnya, tugas berikut dijalankan segera setelah beban sistem turun di bawah 1,5:
batch
echo "Hello world!" >> hello.txt