Sử dụng chương trình lệnh at, atq, atrm, batch trên Linux

817
26-03-2018
Sử dụng chương trình lệnh at, atq, atrm, batch trên Linux

Bạn có thể thực hiện các công việc hàng loạt trong UNIX/ Linux bằng cách sử dụng bất kỳ một trong ba lệnh at, batch hoặc cron.

Trong bài viết này, cùng Bizfly Cloud tìm hiểu cách lên lịch một công việc, xem một công việc và xóa một công việc bằng cách sử dụng lệnh.

Bạn có thể lên lịch một công việc theo hai cách khác nhau:

- Lên lịch công việc được thực thi tại một thời điểm cụ thể. Ví dụ: ngày 3 tháng 7, 10 giờ sáng.

- Lên lịch công việc được thực hiện trong thời gian tương đối từ bây giờ. Ví dụ, 5 giờ kể từ bây giờ.

1. Lên lịch bằng cách sử dụng ngày giờ cụ thể

Cú pháp:

$ at time date

Ví dụ: để lên lịch công việc vào lúc 11 giờ sáng ngày 20 tháng 5, hãy sử dụng lệnh sau.

$ at 11 am may 20

2. Lên lịch một công việc bằng cách sử dụng thời gian tương đối

Bạn có thể lên lịch một công việc bằng cách sử dụng thời gian tương đối từ bây giờ.

Cú pháp:

$ at now COUNT UNIT

Ví dụ, công việc sau đây sẽ được thực hiện 1 phút kể từ bây giờ.

$ at now 1 min

Ví dụ trên sẽ đọc các lệnh từ stdin, và nó sẽ thực hiện công việc sau một phút. Khi bạn gặp lỗi sai trong định dạng thời gian, bạn sẽ nhận được lỗi Garbled time.

Bạn có thể lên lịch background job trong 1 giờ kể từ bây giờ, (hoặc) 1 ngày kể từ bây giờ bằng cách sử dụng lệnh sau:

$ at now 1 hour 

$ at now 1 day

3. Xem tất cả lịch biểu tại các công việc bằng cách sử dụng atq

Bạn có thể sử dụng lệnh atq (hoặc at -l), để hiển thị tất cả các lệnh tại công việc được lập lịch hoặc hiện đang chạy.

Lệnh atq sau sẽ liệt kê tất cả các lệnh đang chờ xử lý. Số đầu tiên được hiển thị là Số công việc, sau đó là thời gian thực hiện quy trình và tên người dùng.

$ atq 

4    2010-04-20    11:00    a sathiya

4. Xóa lịch biểu bằng cách sử dụng atrm

Bạn có thể sử dụng lệnh atrm (hoặc at -d) để xóa một công việc cụ thể. Ví dụ, để xóa công việc số 4, sử dụng lệnh atrm sau đây.

$ atrm 4

5. Chỉ thực hiện công việc khi system load average <1.5 sử dụng lệnh batch

Bạn có thể lên lịch một việc bằng cách sử dụng lệnh batch, lệnh này sẽ nhắc command input, lệnh này sẽ được thực thi khi system load average nhỏ hơn 1.5.

$ batch

Khi hoàn tất thành công input, bạn sẽ nhận được số công việc. Để liệt kê và xóa các batch jobs, bạn có thể sử dụng các lệnh được giải thích ở trên.

6. Lên lịch công việc từ tệp bằng tùy chọn -f

Đầu tiên hãy tạo một tệp văn bản chứa tất cả các lệnh hoặc các shell-scripts mà bạn muốn thực thi trong background sử dụng lệnh at.

$ cat myjobs.txt 

/home/sathiya/calculate-space.sh 

/path/to/a/shell-script 

/path/to/any/command/or/script

Sử dụng tùy chọn -f, bạn có thể thực hiện lệnh at để lấy đầu vào từ tệp thay vì stdin.

Lệnh at sau đây sẽ thực thi tất cả các công việc từ myjobs.txt 1 giờ kể từ bây giờ.

$ at -f myjobs.txt now 1 hour

7. Cho phép và từ chối một số người dùng nhất định sử dụng công việc

Quản trị viên hệ thống có thể kiểm soát ai có thể lên lịch một công việc và ai không thể sử dụng tệp at.allow at.deny.

Đầu tiên, kiểm tra hệ thống cho tập tin at.allow. Nếu at.allow tồn tại, chỉ có tên người dùng được chỉ định trong tệp at.allow được phép sử dụng lệnh at.

Tiếp theo, (nếu at.allow không tồn tại), hệ thống sẽ kiểm tra tệp at.deny. Nếu at.deny tồn tại, tên người dùng được chỉ định trong tệp at.deny không được phép sử dụng lệnh at.

Theo mặc định, hầu hết các hệ thống sử dụng tệp at.deny để ngăn người dùng sử dụng lệnh at, chẳng hạn như www-data, guest, backup, man user.

8. Thực hiện lệnh at như nohup

Tương tự như lệnh nohup mà chúng ta đã thảo luận ở trên, bạn có thể thực hiện một lệnh (hoặc shell script) trên máy chủ từ xa bằng cách sử dụng lệnh at và logout từ máy chủ.

$ at -f myjob now 1 min 

$ exit

Lưu ý: myjob sẽ vẫn chạy ngay cả sau khi bạn thoát khỏi máy chủ.

9. Bổ sung ở các định dạng command time

Bạn có thể sử dụng bất kỳ các định dạng ngày giờ lệnh:

$ at 10 am tomorrow 

$ at 11:00 next month 

$ at 22:00 today 

$ at now 1 week 

$ at noon

Dịch từ: thegeekstuff.com/2010/06/at-atq-atrm-batch-command-examples/

Theo Bizfly Cloud tìm hiểu 

>> Có thể bạn quan tâm: 10 ví dụ sử dụng chương trình lệnh "lsof" trên Linux

TAGS: linux
SHARE