HMH's Blog

Cron & at: quản lý công việc.

Posted by hmha on Tháng Mười Một 11, 2008

Cronat là những tiện ích để quản lý công việc, nói một cách đơn giản là nếu bạn muốn thực thi một tác vụ nào đó một cách tự động hãy sử dụng cron hoặc at.
atcrontab đều dùng để thiết lập lịch trình thực thi công việc. Tuy nhiên nếu crontab thường được dùng để thực thi một công việc theo chu kỳ nhất định thì at dùng để thực hiện công việc tại một thời điểm xác định.

At:

Dạng sử dụng:
at [-V] [-q queue] [-f file] [-mldbv] TIME
at -c job [job...]

để biết chi tiết các tuỳ chọn hãy: man at

Hãy xem một vài ví dụ

$ at 21:00 tomorrow
at> ls > output
at> mail debian < output
at> <EOT>
job 1 at Tue Nov 11 21:14:00 2008

với cách sử dụng như trên công việc được thực thi lúc 21h ngày mai (so với khi thực hiện at).
$ at 6:00 am tomorrow < scriptfile
những lệnh trong file scriptfile sẽ được thực thi lúc 6h ngày mai.
-Thêm một vài ví dụ về cách đặt thời gian.
$ at 2122 December 9
$ at 9:22pm Dec 9
$ at 5 am Saturday
$ at now + 2 hours

trong những trường hợp trên thì 2 trường hợp đầu là như nhau.
-Ngoài ra có thể sử dụng file /etc/at.allow/etc/at.deny để thiết lập danh sách người dùng có thể hay không thể sử dụng at.
-Để liệt kê các công việc tạo ra bởi at chúng ta dùng at -l hoặc atq.
-Để xoá một công việc nào đó sử dụng: atrm jobs_number

Cron:

Cú pháp crontab:
* * * * * lệnh muốn thực thi
- - - - -
| | | | |
| | | | +----- ngày trong tuần (0 - 6) (Chủ nhật=0)
| | | +------- tháng (1 - 12)
| | +--------- ngày của tháng (1 - 31)
| +----------- giờ (0 - 23)
+------------- phút (0 - 59)

Tạo tập tin thực thi tác vụ (ví dụ với wget):
$ vim runload
0 1 * * * /usr/bin/wget -c --directory-prefix=$HOME --input-file=$HOME/links

Với câu lệnh trên, wget sẽ thực hiện lúc 1h00 hàng ngày. Tuỳ chọn -c để tiếp tục download những file chưa download xong, –directory-prefix=$HOME: nơi để những files download được, –input-file=$HOME/links: files chứa địa chỉ cần download.
Chạy crontab:
$ crontab runload
Để biết hiện thời có jobs nào được thiết đặt hay không hãy sử dụng:
$ crontab -l
Một vài cách thiết lập thời gian cho crontab:
-Thực thi tác vụ vào lúc 8h30′ ngày 1 tháng 1:
30 08 1 1 * /path/cau_lenh
-Thực thi tác vụ vào lúc 10h đúng và 19h đúng tất cả các ngày:
00 10,19 * * * /path/cau_lenh
-Thực thi tác vụ vào lúc 9h, 10h, 11h, 12h, 13h đúng tất cả các ngày:
00 09-13 * * * /path/cau_lenh
-Thực thi tác vụ vào lúc 9h, 10h, 11h, 12h, 13h từ ngày thứ hai đến ngày thứ sáu trong tuần:
00 09-13 * * 1-5 /path/cau_lenh
-Thực thi tác vụ theo chu kỳ 15 phút:
*/15 * * * * /path/cau_lenh
-Thực thi tác vụ vào lúc 00:00 ngày đầu tiên hàng năm:
@yearly /path/cau_lenh

http://comnetsolution.vn/

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s

 
%d bloggers like this: