Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách lên lịch lệnh trong Linux với tiện ích "at"

Cách lên lịch lệnh trong Linux với tiện ích  at

Lần đầu tiên tôi quản lý một máy chủ bận rộn, tôi phải chờ thời điểm thích hợp để khởi động lại khi không ai dùng. Tôi nhận ra điều này xảy ra quanh 3 giờ sáng. Sau đó tôi nghĩ: "Thật bất tiện, tôi phải thức dậy vào giờ không hợp lý chỉ để reboot server." Năm giây sau tôi nhận ra đó là suy nghĩ ngốc nghịch. "Đây là Linux, chắc chắn dễ dàng tự động hóa tác vụ đơn giản này." Và thế là at được khám phá.

Tiện ích này rất dễ dùng. Bạn chỉ cần truyền thời gian và ngày tháng làm tham số dòng lệnh, sau đó nhập một hoặc nhiều lệnh bạn muốn nó thực thi.

Trên máy chủ, có chương trình như vậy rất hữu ích vì bạn thường muốn nó thực hiện hành động mà không cần can thiệp. Nhưng ngay cả trên desktop, at cũng là công cụ rất tiện lợi. Ví dụ, bạn tải một file rất lớn. Bạn có thể lên lịch tắt máy vào đêm muộn. Cũng có thể bảo at nhắc bạn về việc cần làm. Gần như mọi hành động bạn nghĩ ra đều có thể lên lịch với đúng công cụ và tùy chọn dòng lệnh.

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, chạy:

sudo apt install at

Cách lên lịch lệnh trong Linux với tiện ích  at

Trên Fedora, chạy:

sudo dnf install at

Để cài "at" trên Arch Linux:

sudo pacman -S at

Và trên openSUSE:

sudo zypper install at

Kích hoạt khởi động tự động của daemon "at" và chạy dịch vụ

Một số bản phân phối sẽ tự động kích hoạt khởi động daemon "at" khi boot. Những cái khác thì không. Kiểm tra bằng:

systemctl is-enabled atd.service

Cách lên lịch lệnh trong Linux với tiện ích  at

Nếu nó báo "disabled", hãy kích hoạt với:

sudo systemctl enable atd.service

Và khởi động daemon:

sudo systemctl start atd.service

Cách chỉ định ngày giờ để lên lịch lệnh "at"

Bạn có thể dùng bất kỳ dạng nào sau đây.

1. Chạy lệnh sau số phút, giờ, ngày hoặc tuần chỉ định.

at now + 10 minutes at now + 10 hours at now + 10 days at now + 10 weeks

Cách lên lịch lệnh trong Linux với tiện ích  at

2. Chạy tại giờ chính xác:

at 23:10

Nếu đã 12:00 và bạn chạy:

at 11:00

Thì lệnh sẽ chạy ngày mai, tại giờ chỉ định.

3. Chạy tại giờ và ngày chính xác:

at 12:00 December 31

Các cách chỉ định thời gian và ngày khác có thể tìm thấy trong trang man trực tuyến của "at".

Cách sử dụng lệnh "at"

Như bạn có thể nhận ra, sau khi chỉ định thời gian lên lịch, bạn được đưa đến dấu nhắc trông như hình sau:

Cách lên lịch lệnh trong Linux với tiện ích  at

Ở đây, bạn đơn giản nhập các lệnh bạn muốn chạy. Chúng sẽ thực thi dưới tên người dùng hiện tại của bạn. Gõ lệnh bạn muốn chạy tại thời điểm chỉ định và nhấn Enter. Nếu muốn chạy lệnh tiếp theo, lặp lại quy trình. Khi xong, nhấn Ctrl + D. <EOT> sẽ hiển thị khi bạn nhấn phím đó, theo sau là thời điểm lệnh sẽ được thực thi.

Nếu bạn muốn chạy lệnh cần đặc quyền root, đừng dùng sudo. Nhớ rằng lệnh sẽ chạy không người can thiệp, nên sudo sẽ không hoạt động vì không ai nhập mật khẩu. Thay vào đó, trước tiên đăng nhập sebagai root:

sudo -i

Sau đó dùng lệnh "at" bình thường. Bây giờ tất cả lệnh sẽ thực thi với quyền root, thay vì user thông thường.

Sau khi lên lịch lệnh, gõ:

exit

Điều này sẽ đăng xuất khỏi tài khoản root.

Cách lên lịch lệnh trong Linux với tiện ích  at

Trong ví dụ trong ảnh chụp màn hình này, một lần shutdown được lên lịch sau hai phút. Bạn có thể điều chỉnh cho mục đích riêng.

Nếu máy tính tắt nguồn trước khi công việc lên lịch kịp chạy, nó sẽ đơn giản chạy ở lần boot tiếp theo (nếu thời gian đã qua). Ví dụ, bạn lên lịch công việc lúc 3PM, tắt máy lúc 2PM, và bật lại lúc 4PM, công việc sẽ chạy lúc 4PM.

Xem và/hoặc xóa công việc đã lên lịch

Bạn có thể xem hàng đợi công việc với:

atq

hoặc

at -l

Cách lên lịch lệnh trong Linux với tiện ích  at

Để xem lệnh nào được lên lịch trong một công việc, dùng số tiền tố của công việc đó.

at -c 22

Cách lên lịch lệnh trong Linux với tiện ích  at

Các dòng cuối cùng của đầu ra sẽ cho bạn thấy các lệnh bạn đã lên lịch.

Để xóa một công việc, dùng số tiền tố như sau:

atrm 22

Lên lịch "at" chạy ứng dụng đồ họa

Trước tiên, tìm giá trị biến hiển thị hiện tại:

echo $DISPLAY

Thường sẽ là :0.

Lên lịch at chạy. Ở dấu nhắc "at", đặ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ách lên lịch lệnh trong Linux với tiện ích  at

Các lệnh dùng trong ảnh chụp màn hình trước sẽ cho kết quả sau.

Cách lên lịch lệnh trong Linux với tiện ích  at

Bây giờ ứng dụng đồ họa sẽ "hiện ra ngay mặt bạn" và nhắc nhở công việc quan trọng tốt hơn báo thức điện thoại.

Kết luận

Dùng "at" rất dễ. Phần khó là tìm cách sáng tạo để thực hiện hành động mong muốn. Nhưng bạn có thể làm gần như mọi thứ, như bắt đầu tải xuống, đóng chương trình, cho máy vào chế độ chờ, v.v.