Nếu bạn muốn lên lịch để thực hiện một tác vụ nào đó vào một thời điểm cụ thể trong tương lai, thì lệnh at trong Linux sẽ giúp bạn làm điều đó một cách dễ dàng. Lệnh này có thể hỗ trợ lên lịch chạy các script, backup dữ liệu, gửi email và nhiều hơn nữa. Trong bài viết này, Vietnix sẽ giới thiệu cho bạn chi tiết hơn về 7 ví dụ thực tế về cách sử dụng lệnh at trong Linux.
Lệnh at trong Linux là gì?
Lệnh at
trong Linux là một cách thay thế cho trình xây dựng lịch – cron, để lên lịch cho các tác vụ thực hiện một lần. Nghĩa là bạn có thể chỉ định thời gian tùy ý để thực hiện các nhiệm vụ cụ thể. Hơn nữa, bạn có thể liệt kê hoặc xóa các tác vụ đã được lưu cần thực hiện trong tương lai gần. Tuy nhiên, người dùng càn quyền quản lý hệ thống để sử dụng lệnh này. Các lệnh atq, atrm
và batch
cũng là một phần của lệnh at
, cho phép xếp hàng, kiểm tra hoặc xóa, hủy các tác vụ đã lên lịch.
Lệnh at được xem là một dòng lệnh hữu ích giúp bạn thực hiện các tác vụ lưu xóa trên hệ thống của mình. Bạn có thể bắt đầu sử dụng dòng lệnh trên Linux hoặc một số phiên bản tương tự như Ubuntu. Ngoài ra, nếu như bạn là một người mới bắt đầu sử dụng, bạn có thể tham khảo các câu lệnh trong Linux để hiểu rõ hơn chi tiết.
Cú pháp cơ bản của lệnh at
Cú pháp cơ bản của lệnh at như sau:
at [OPTION]... runtime
7 tùy chọn sử dụng của lệnh at
Bạn có thể dễ dàng tìm thấy thông tin chi tiết về những tùy chọn của lệnh at bằng cách nhập lệnh man vào terminal:
man at
Tùy chọn | Công dụng |
-b | Tùy chọn này sẽ thực hiện các lệnh đã được lên lịch khi hệ thống không quá tải, đây là một cách gọi khác của lệnh batch. |
-c | Hiển thị thông tin chi tiết của công việc đã được chỉ định trên thiết bị đầu cuối. |
-f | Đọc các công việc từ một file. |
-r, -d | Lệnh này sẽ xóa một công việc đã lên lịch trước đó, nhưng chưa được thực hiện. Bạn cần chỉ định số ID để xác định công việc muốn xóa. Đây là một cách gọi khác của lệnh atrm. |
-l | Hiển thị danh sách tất cả những công việc đã lên lịch trước đó nhưng chưa được thực hiện, tương tự như lệnh atq. |
-m | Gửi email cho người dùng sau khi hoàn thành công việc. |
-M | Không gửi thư cho người dùng sau khi hoàn thành công việc. |
2 bước cài đặt lệnh at trong Linux
Trường hợp lệnh at
chưa được cài đặt trên hệ thống,
- Bước 1: Sử dụng lệnh sudo với cú pháp sau để cài đặt:
sudo apt-get install at
- Bước 2: Bạn nhập lệnh sau để kích hoạt dịch vụ atd trên hệ thống:
sudo systemctl enable --now atd
7 ví dụ về cách sử dụng lệnh at trong Linux
- Thiết lập thời gian thực hiện công việc vào một thời điểm nhất định
- Chuyển hướng một công việc cần thực hiện đến một thời điểm khác
- Liệt kê các công việc chế độ đang xử lý bằng lệnh at
- Xem nội dung công việc được chỉ định bằng lệnh at
- Đọc nội dung công việc từ một file bằng lệnh at
- Lên lịch thực hiện công việc khi hệ thống không bị quá tải
- Xóa một công việc khỏi danh sách bằng lệnh at
Ví dụ 1: Thiết lập thời gian thực hiện công việc vào một thời điểm nhất định
Lệnh at
trong Linux thực hiện các tác vụ được chỉ định thời gian bằng cách đọc các lệnh bạn nhập vào từ đầu vào tiêu chuẩn. Ví dụ, bạn muốn lên lịch để thực hiện tác vụ touch file1.txt
(Tạo một file rỗng) được thực hiện vào lúc 5:00 sáng cùng ngày, hãy làm theo 2 bước sau:
Bước 1: Mở terminal và chạy lệnh bên dưới:
at 05:00
Bước 2: Bây giờ, bạn hãy đưa lệnh touch vào danh sách công việc cần thực hiện:
touch file1.txt
Bước 3: Cuối cùng, bạn nhấn phím CTRL+D để hoàn tất việc lên lịch.
Ví dụ 2: Chuyển hướng một công việc cần thực hiện vào một thời điểm nhất định
Bạn có thể chuyển hướng một lệnh cần thực thi với một công việc trong tương lai vào lệnh at trong Linux. Giả sử, bạn muốn hiển thị một văn bản vào một thời điểm cụ thể, hãy sử dụng lệnh echo sau:
echo "This is a Scheduled echo" | at 05:00 am
Ví dụ 3: Liệt kê các công việc chế độ đang xử lý bằng lệnh at
Để liệt kê tất cả các công việc đang chờ xử lý, bạn hãy sử dụng lệnh atq hoặc tùy chọn -l cùng với lệnh at. Ví dụ, hãy nhập bất kỳ lệnh nào sau đây vào command prompt:
atq
Hoặc là,
at -l
Bạn có thể thấy tất cả các công việc đang chờ xử lý đều được liệt kê bằng lệnh atq
hoặc at -l:
Ví dụ 4: Xem nội dung công việc được chỉ định bằng lệnh at
Để xem nội dung công việc cụ thể, bạn sử dụng tùy chọn -c
và ID công việc cụ thể. Ví dụ, để hiển thị nội dung của công việc có ID 2, bạn chạy lệnh sau:
at -c 2
Ví dụ 5: Đọc nội dung công việc từ một file bằng lệnh at
Để đọc nội dung công việc từ một file, bạn sử dụng tùy chọn -f
kết hợp với lệnh at
. Ví dụ, bạn có một file có tên là “jobs.txt
” để thực hiện các công việc trong file tại thời điểm này hãy sử dụng lệnh bên dưới:
at -f jobs.txt now
Ví dụ 6: Lên lịch thực hiện công việc khi hệ thống không bị quá tải
Theo mặc định, tùy chọn -b
cho phép thực thi các lệnh khi mức tải trung bình dưới 1.5. Điều này có nghĩa là có một tiến trình đang chạy đầy đủ và một tiến trình khác chỉ chạy một nửa thời gian. Tùy chọn này là một cách gọi khác của lệnh batch
. Giả sử, bạn muốn lên lịch công việc “touch file5
” (tạo file rỗng) khi mức tải trung bình dưới 1.5, hãy làm theo 3 bước sau:
Bước 1: Bạn mở terminal và nhập bất kỳ lệnh nào sau đây và nhấn Enter:
at -b
Hoặc là,
batch
Bước 2: Tiếp theo, bạn viết lệnh sau đây như một công việc:
touch file5
Bước 3: Cuối cùng, bạn nhấn phím CTRL+D để hoàn tất việc lên lịch.
Ví dụ 7: Xóa một công việc khỏi danh sách bằng lệnh at
Để xóa một công việc cụ thể khỏi danh sách đã lên lịch, bạn sử dụng ID công việc cùng với các tùy chọn -r
hoặc -d
. Ngoài ra, bạn có thể atrm
kèm với ID công việc cũng sẽ cho ra kết quả tương tự. Ví dụ, bạn muốn xóa công việc có ID 2 bằng lệnh
atrm
, hãy sử dụng bất kỳ lệnh nào sau đây:
atrm 2
Hoặc là,
at -r 2
Hoặc là,
at -d 2
13 thông số chỉ định thời gian cụ thể trong lệnh at
Thông số thời gian | Cách hiểu |
---|---|
now | Thực hiện một công việc ngay lập tức sau khi nhập lệnh. |
noon | Lên lịch cho một công việc được thực hiện vào đúng 12 giờ trưa. |
teatime | Lên lịch cho một công việc được thực hiện vào đúng 4 giờ chiều. |
midnight | Lên lịch một công việc để thực hiện vào lúc 12 giờ đêm của ngày hôm nay. |
Tomorrow Or, now + 1 day | Lên lịch công việc theo thời gian là ngày mai hoặc thời điểm bây giờ cộng thêm 1 ngày. |
Fri | Thực hiện công việc vào ngày thứ 6. Bạn có thể kết hợp “Fri” với các thông tin khác như giờ, phút để chỉ định một thời điểm cụ thể vào thứ 6. |
next week Or, now + 7days Or, next Tue | Công việc được thực hiện vào tuần sau hoặc thời điểm hiện tại + 7 ngày hoặc thứ 3 tuần sau. |
next month Or, now + 1 month | Công việc sẽ được thực hiện vào tháng tiếp theo trong cùng một năm hoặc thời điểm hiện tại cộng thêm 1 tháng (tháng sau). |
08:00 Or, 08:00 AM Or, now + 1hour | Thực hiện lệnh vào 8 giờ sáng của ngày hiện tại hoặc 1 giờ sau khi nhập lệnh. |
08:00 PM | Thời gian thực hiện lệnh là 8 giờ tối. |
2:30 PM Feb 23 Or, 2:30 PM 23.02.23 | Lên lịch một công việc để thực hiện vào lúc 2 giờ 30 phút chiều ngày 23 tháng 2 năm 2023. |
now + 30 minutes | Công việc được thực thi 30 phút sau khi nhập lệnh. |
now + 1 year | Lên lịch cho công việc được thực hiện chính xác 1 năm kể từ thời điểm nhập lệnh. |
Câu hỏi thường gặp
Có thể sử dụng lệnh at để lên lịch thực thi một lệnh định kỳ không?
Câu trả lời là không. Lệnh at
chủ yếu được sử dụng để lên lịch một lệnh thực thi một lần duy nhất tại một thời điểm cụ thể trong tương lai.
Có thể sử dụng lệnh at để gửi email tự động không?
Có thể. 2 cách mà bạn có thể thực hiện tác vụ dòng lệnh với email:
1. Viết một script (tập lệnh) để gửi email
2. Lên lịch thực thi script bằng lệnh at
Lời kết
Bài viết trên đã cung cấp các thông tin tổng quan nhất về lệnh at trong Linux. Bạn có thể thử nghiệm thực hiện với các tùy chọn khác nhau và khám phá thêm những khả năng khác mà lệnh at mang lại chắc chắn sẽ giúp ích rất nhiều cho quá trình thực hiện công việc. Nếu có bất kỳ thắc mắc nào hãy để lại bình luận ngay bên dưới, Vietnix sẽ giải đáp nhanh nhất!