Nếu phải quản lý một máy chủ “bận rộn”, phải chờ một thời điểm thích hợp để khởi động lại server (tức là khi mọi người không sử dụng nó). Thời điểm thích hợp này có lẽ là vào lúc rạng sáng. Nhưng điều này thật bất tiện! Quản trị viên phải thức dậy thật sớm chỉ để khởi động lại máy chủ của mình ư? Với Linux, việc tự động hóa một nhiệm vụ đơn giản như vậy rất dễ dàng với tiện ích “at”.
Tiện ích này rất dễ sử dụng. Người dùng chỉ cần đưa thời gian và ngày tháng dưới dạng tham số dòng lệnh, sau đó nhập một hoặc nhiều lệnh muốn at thực thi.
Trên một máy chủ, rất hữu ích khi có một chương trình như vậy bởi vì người dùng thường muốn máy chủ thực hiện các hành động, không cần giám sát. Nhưng ngay cả trên máy tính để bàn, at cũng có thể là một công cụ rất thuận tiện. Ví dụ, giả sử bạn tải xuống một file rất lớn. Bạn có thể lên lịch cho PC của mình tắt vào đêm khuya. Ngoài ra, người dùng còn có thể yêu cầu at nhắc nhở mình về những điều cần làm. Khá nhiều hành động có thể được lên lịch với các công cụ và tùy chọn dòng lệnh phù hợp.
Lên lịch các tác vụ với tiện ích at trong Linux
Cách cài đặt at trên các bản phân phối Linux khác nhau
Trên Debian hoặc các bản phân phối dựa trên Debian, hãy chạy:
sudo apt install at
Trên Fedora, hãy chạy:
sudo dnf install at
Để cài đặt at trên Arch Linux, hãy nhập lệnh:
sudo pacman -S at
Và, trên openSUSE, hãy nhập lệnh:
sudo zypper install at
Kích hoạt tính năng tự động khởi động của daemon at
Một số bản phân phối sẽ tự động kích hoạt tính năng khởi động của daemon at khi boot. Nhưng một số bản phân phối khác thì không. Hãy kiểm tra với:
systemctl is-enabled atd.service
Nếu kết quả là “disabled”, thì hãy kích hoạt nó với:
sudo systemctl enable atd.service
Và bắt đầu daemon:
sudo systemctl start atd.service
Cách chỉ định ngày và thời gian để lên lịch cho các lệnh at
Người dùng có thể sử dụng một trong các hình thức sau đây.
1. Chạy lệnh sau số phút, giờ, ngày hoặc tuần được chỉ định.
at now + 10 minutes
at now + 10 hours
at now + 10 days
at now + 10 weeks
2. Chạy vào một thời điểm chính xác:
at 23:10
Nếu bây giờ là 12:00, và bạn chạy:
at 11:00
Thì lệnh sẽ chạy vào ngày mai, tại thời điểm được chỉ định.
3. Chạy vào thời gian và ngày được chỉ định chính xác:
at 12:00 December 31
Các cách khác để xác định thời gian và ngày tháng có thể được tìm thấy trong hướng dẫn sử dụng tiện ích at trực tuyến. (link tham khảo: https://linux.die.net/man/1/at)
Cách sử dụng lệnh at
Như bạn đọc có thể thấy, sau khi chỉ định thời gian được lên lịch, một dấu nhắc lệnh giống như hình ảnh sau sẽ xuất hiện:
Tại đây, người dùng chỉ cần nhập các lệnh muốn chạy. Chúng sẽ được thực thi dưới tên user hiện tại. Nhập lệnh muốn chạy tại một thời điểm được chỉ định và nhấn Enter. Nếu muốn chạy một lệnh tiếp theo, lặp lại quy trình tương tự. Khi thực hiện xong, nhấn Ctrl + D. <EOT> sẽ được hiển thị khi nhấn các phím đó, theo sau là thời gian (các) lệnh sẽ được thực thi.
Nếu muốn chạy các lệnh yêu cầu quyền root, đừng sử dụng sudo. Hãy nhớ rằng, lệnh sẽ chạy mà không cần giám sát, vì vậy sudo sẽ không hoạt động bởi vì không có ai nhập mật khẩu. Thay vào đó, trước tiên hãy đăng nhập với tư cách user root:
sudo -i
Và sau đó sử dụng lệnh at như bình thường. Bây giờ, tất cả các lệnh sẽ được thực thi với quyền root, thay vì user thông thường.
Sau khi lên lịch lệnh, hãy nhập:
exit
Lệnh này sẽ đăng xuất bạn từ tài khoản user root.
Ở ví dụ trong ảnh chụp màn hình này, việc tắt máy đã được lên lịch trong hai phút. Người dùng có thể điều chỉnh sao cho phù hợp với nhu cầu riêng của mình.
Nếu máy tính bị tắt trước khi một công việc được lên lịch có cơ hội chạy, nhiệm vụ đó sẽ chạy ở lần khởi động tiếp theo (nếu thời gian được đặt cho nó đã qua). Ví dụ, nếu lên lịch công việc vào lúc 3 giờ chiều, tắt máy lúc 2 giờ chiều và bật nguồn lúc 4 giờ chiều, công việc sẽ chạy vào lúc 4 giờ chiều.
Xem và/hoặc xóa các công việc theo lịch trình
Người dùng có thể xem các công việc được xếp theo thứ tự với lệnh:
atq
Hoặc lệnh:
at -l
Để xem những lệnh nào được lên lịch trong một công việc, hãy sử dụng số tiền tố của công việc đó.
at -c 22
Các dòng đầu ra cuối cùng sẽ hiển thị cho người dùng các lệnh đã lên lịch.
Để xóa một công việc, sử dụng số tiền tố của nó như sau:
atrm 22
Lên lịch at để chạy các ứng dụng đồ họa
Đầu tiên, tìm ra giá trị biến hiển thị hiện tại:
echo $DISPLAY
Thông thường, nó sẽ là :0.
Hãy lên lịch để chạy at. Trong dấu nhắc của at, hãy đặt biến DISPLAY thành giá trị trước đó (export DISPLAY=:0) và chạy ứng dụng đồ họa mong muốn.
Các lệnh được sử dụng trong ảnh chụp màn hình trước đó sẽ dẫn đến kết quả như sau.
Bây giờ, ứng dụng đồ họa sẽ nhắc nhở người dùng về một công việc quan trọng tốt hơn báo thức điện thoại.
Sử dụng at rất dễ dàng. Phần khó hơn là tìm ra một cách sáng tạo để thực hiện một hành động mà bạn mong muốn. Nhưng bạn có thể làm bất cứ điều gì mình muốn, như bắt đầu tải xuống, đóng chương trình, đặt máy tính ở chế độ chờ, v.v…
Chúc bạn thực hiện thành công!