Dưới dạng một lựa chọn thay thế cho trình lập lịch cron, at
command cho phép bạn lập lịch cho một lệnh chạy một lần vào một thời gian cụ thể mà không cần chỉnh sửa tệp cấu hình.
Cài đặt tiện ích
Yêu cầu duy nhất là cài đặt tiện ích này, bắt đầu và cho phép thực thi của nó:
# yum install at [on CentOS based systems]
$ sudo apt-get install at [on Debian and derivatives]
Cho phép dịch vụ at khi khởi động system
Tiếp theo, bắt đầu và cho phép dịch vụ at khi khởi động hệ thống.
--------- On SystemD ---------
# systemctl start atd
# systemctl enable atd
--------- On SysVinit ---------
# service atd start
# chkconfig --level 35 atd on
Khi atd
đang chạy, bạn có thể lên lịch bất kỳ lệnh hoặc tác vụ nào theo cách sau. Chúng tôi muốn gửi 4 lệnh ping đến www.google.com
khi phút tiếp theo bắt đầu (tức là: nếu hiện tại là 22:20:13, lệnh sẽ được thực thi vào 22:21:00) và báo cáo kết quả qua email (-m
, yêu cầu Postfix hoặc tương đương) cho người dùng gọi lệnh:
# echo "ping -c 4 www.google.com" | at -m now + 1 minute
Nếu bạn không sử dụng tùy chọn -m
, lệnh sẽ được thực thi nhưng không có gì được in ra đầu ra chuẩn. Tuy nhiên, bạn có thể chọn chuyển hướng đầu ra sang một tệp thay vào đó.
Thêm vào đó, hãy lưu ý rằng at
không chỉ cho phép các thời gian cố định sau: now, noon (12:00), và midnight (00:00), mà còn thời gian tùy chỉnh 2 chữ số (biểu thị giờ) và 4 chữ số (giờ và phút).
Ví dụ,
Để chạy updatedb
lúc 23:00 hôm nay (hoặc ngày mai nếu tăng ngày hiện tại lớn hơn 23:00), hãy thực hiện:
# echo "updatedb" | at -m 23
Để tắt hệ thống lúc 23:55 hôm nay (điều kiện tương tự như ví dụ trước áp dụng):
# echo "shutdown -h now" | at -m 23:55
Bạn cũng có thể trì hoãn việc thực thi bằng phút, giờ, ngày, tuần, tháng hoặc năm bằng cách sử dụng dấu +
và đặc điểm thời gian mong muốn như trong ví dụ đầu tiên.
Các đặc điểm thời gian tuân theo tiêu chuẩn POSIX.
Như một nguyên tắc cơ bản, hãy sử dụng at command thay vì trình lập lịch cron khi bạn chỉ muốn chạy một lệnh hoặc thực hiện một tác vụ cụ thể vào một thời gian xác định duy nhất. Đối với những tình huống khác, hãy sử dụng cron.