OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Bạn nên chọn những thời điểm thực thi kỳ lạ vì các công việc hệ thống thường được chạy theo giờ "tròn", như bạn có thể thấy trong Phần 4.4.4 của phần tiếp theo. Ví dụ: các công việc thường được chạy vào đúng 1 giờ sáng (ví dụ: lập chỉ mục hệ thống để cập nhật cơ sở dữ liệu định vị tiêu chuẩn), do đó, việc nhập thời gian 0100:XNUMX có thể dễ dàng làm chậm hệ thống của bạn thay vì khởi động nó. Để ngăn tất cả các công việc chạy cùng lúc, bạn cũng có thể sử dụng hàng loạt lệnh, xếp hàng các quy trình và cung cấp công việc trong hàng đợi vào hệ thống theo cách cân bằng đồng đều, ngăn chặn việc sử dụng tài nguyên hệ thống quá mức. Xem các trang Thông tin để biết thêm thông tin.


hình ảnh

4.4.4. Cron và crontab


Hệ thống cron được quản lý bởi cron daemon. Nó lấy thông tin về những chương trình nào và khi nào chúng sẽ chạy từ các mục crontab của hệ thống và người dùng. Chỉ người dùng root mới có quyền truy cập vào crontabs hệ thống, trong khi mỗi người dùng chỉ có quyền truy cập vào crontabs của riêng mình. Trên một số hệ thống (một số) người dùng có thể không có quyền truy cập vào tiện ích cron.


Khi khởi động hệ thống, cron daemon sẽ tìm kiếm / var / spool / cron / cho các mục crontab được đặt tên theo tài khoản trong / etc / passwd, nó tìm kiếm /etc/cron.d/ và nó tìm kiếm / etc / crontab, sau đó sử dụng thông tin này mỗi phút để kiểm tra xem có việc gì cần phải làm không. Nó thực thi các lệnh với tư cách là người dùng sở hữu tệp crontab và gửi bất kỳ đầu ra lệnh nào đến chủ sở hữu.


Trên các hệ thống sử dụng Vixie cron, các công việc diễn ra hàng giờ, hàng ngày, hàng tuần và hàng tháng được lưu giữ trong các thư mục riêng biệt trong / Etc để giữ một cái nhìn tổng quan, trái ngược với chức năng cron UNIX tiêu chuẩn, trong đó tất cả các tác vụ được nhập vào một tệp lớn.


Ví dụ về tệp crontab Vixie:


[root@blob /etc]# thêm crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

TRANG CHỦ = /


# bộ phận chạy

# lệnh thực thi mỗi giờ

01 * * * * root run-parts /etc/cron.hourly

# lệnh thực thi hàng ngày

02 4 * * * phần chạy gốc /etc/cron.daily

# lệnh thực thi hàng tuần

22 4 * * 0 root run-parts /etc/cron.weekly lệnh thực thi hàng tháng

42 4 1 * * root run-parts /etc/cron.monthly

[root@blob /etc]# thêm crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

TRANG CHỦ = /


# bộ phận chạy

# lệnh thực thi mỗi giờ

01 * * * * root run-parts /etc/cron.hourly

# lệnh thực thi hàng ngày

02 4 * * * phần chạy gốc /etc/cron.daily

# lệnh thực thi hàng tuần

22 4 * * 0 root run-parts /etc/cron.weekly lệnh thực thi hàng tháng

42 4 1 * * root run-parts /etc/cron.monthly


hình ảnhThay thế

Bạn cũng có thể sử dụng crontab -l lệnh hiển thị crontabs.

Một số biến được đặt và sau đó có lịch trình thực tế, một dòng cho mỗi công việc, bắt đầu với 5 trường ngày và giờ. Trường đầu tiên chứa số phút (từ 0 đến 59), trường thứ hai xác định giờ thực hiện (0-23), trường thứ ba là ngày trong tháng (1-31), sau đó là số tháng (1-12) , cuối cùng là ngày trong tuần (0-7, cả 0 và 7 đều là Chủ Nhật). Dấu hoa thị trong các trường này biểu thị tổng phạm vi có thể chấp nhận được cho trường đó. Danh sách được cho phép; để thực hiện công việc từ Thứ Hai đến Thứ Sáu, hãy nhập 1-5 vào trường cuối cùng, để thực hiện công việc vào Thứ Hai, Thứ Tư và Thứ Sáu, nhập 1,3,5.


Sau đó, người dùng sẽ chạy các quy trình được liệt kê ở cột cuối cùng. Ví dụ trên là từ cấu hình cron Vixie trong đó root chạy chương trình bộ phận chạy định kỳ, với các thư mục thích hợp làm tùy chọn. Trong các thư mục này, các công việc thực tế được thực thi vào thời gian đã lên lịch sẽ được lưu trữ dưới dạng các tập lệnh shell, giống như tập lệnh nhỏ này được chạy hàng ngày để cập nhật cơ sở dữ liệu được sử dụng bởi xác định vị trí chỉ huy:


billy@ahost cron.daily]$ mèo slocate.cron

# / Bin / sh

gia hạn +19 -p $$ >/dev/null 2>&1

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \ "/tmp,/var/tmp, /usr/tmp,/afs,/net"

billy@ahost cron.daily]$ mèo slocate.cron

# / Bin / sh

gia hạn +19 -p $$ >/dev/null 2>&1

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \ "/tmp,/var/tmp, /usr/tmp,/afs,/net"

Người dùng phải chỉnh sửa crontab của mình một cách an toàn bằng cách sử dụng crontab -e yêu cầu. Điều này sẽ ngăn người dùng vô tình mở nhiều bản sao của tệp crontab của họ. Trình chỉnh sửa mặc định là vi (xem Chương 6, nhưng bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào, chẳng hạn như gwim or gedit nếu bạn cảm thấy thoải mái hơn với trình soạn thảo GUI.


Khi bạn thoát, hệ thống sẽ thông báo rằng crontab mới đã được cài đặt.


Mục crontab này nhắc nhở billy đến câu lạc bộ thể thao của anh ấy vào mỗi tối thứ năm:


billy: ~> crontab -l

# KHÔNG CHỈNH SỬA TẬP TIN NÀY - chỉnh sửa bản gốc và cài đặt lại.

# (/tmp/crontab.20264 được cài đặt vào Chủ nhật ngày 20 tháng 22 35:14:2003 XNUMX)

billy: ~> crontab -l

# KHÔNG CHỈNH SỬA TẬP TIN NÀY - chỉnh sửa bản gốc và cài đặt lại.

# (/tmp/crontab.20264 được cài đặt vào Chủ nhật ngày 20 tháng 22 35:14:2003 XNUMX)


# (Phiên bản Cron -- $Id: chap4.xml,v 1.28 2007/09/19 12:22:26 cho đến hết Exp $)

38 16 * * 3 mail -s "buổi tối thể thao" Billy

# (Phiên bản Cron -- $Id: chap4.xml,v 1.28 2007/09/19 12:22:26 cho đến hết Exp $)

38 16 * * 3 mail -s "buổi tối thể thao" Billy

Sau khi thêm tác vụ theo lịch trình mới, hệ thống sẽ thông báo cho bạn biết rằng crontab mới đã được cài đặt. Bạn không cần phải khởi động lại cron daemon để những thay đổi có hiệu lực. Trong ví dụ, billy đã thêm một dòng mới trỏ đến tập lệnh sao lưu:


billy: ~> -e crontab

45 15 * * 3 mail -s "buổi tối thể thao" Billy

4 4 * * 4,7 /home/billy/bin/backup.sh


<-viết và thoát-->

crontab: cài đặt crontab mới Billy:~>

billy: ~> -e crontab

45 15 * * 3 mail -s "buổi tối thể thao" Billy

4 4 * * 4,7 /home/billy/bin/backup.sh


<-viết và thoát-->

crontab: cài đặt crontab mới Billy:~>

Sản phẩm backup.sh script được thực thi vào thứ năm và chủ nhật hàng tuần. Xem Phần 7.2.5 để biết phần giới thiệu về tập lệnh shell. Hãy nhớ rằng đầu ra của lệnh, nếu có, sẽ được gửi đến chủ sở hữu tệp crontab. Nếu không có dịch vụ thư nào được định cấu hình, bạn có thể tìm thấy đầu ra của các lệnh trong hộp thư cục bộ của mình,

/var/spool/mail/ , một tập tin văn bản đơn giản.


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: