Crontab mỗi giờ. Cron - khởi chạy chương trình người dùng tại một thời điểm nhất định

cron– một chương trình daemon được thiết kế để thực hiện các tác vụ tại một thời điểm nhất định hoặc trong những khoảng thời gian nhất định. Để chỉnh sửa công việc, hãy sử dụng tiện ích crontab.

Danh sách

Bạn không thể thay đổi tệp lịch trình bằng cách mở nó trong trình soạn thảo văn bản. Để chỉnh sửa nó, bạn phải sử dụng lệnh crontab -e.

Một ví dụ đơn giản về tệp lịch trình. Chụp ảnh màn hình mỗi giờ:

SHELL =/ bin/ bash MAILTO =tên người dùng 0 * * * * scrot

cài đặt cơ bản

Chọn môi trường cho các tác vụ thực thi:

VỎ=/bin/bash

Tên người dùng sẽ nhận được thông báo hoàn thành nhiệm vụ:

MAILTO =tên người dùng

Thay vì tên, bạn cũng có thể sử dụng địa chỉ email:

MAILTO =example@ example.org

Cài đặt tùy chọn

Đặt thư mục người dùng:

TRANG CHỦ =

Chúng tôi đặt thư mục của các tệp thực thi:

PATH =/ sbin:/ bin:/ usr/ sbin:/ usr/ bin

Chúng tôi đăng ký hiển thị nếu tập lệnh được khởi chạy qua cron phải sử dụng đồ họa:

HIỂN THỊ =:0,0

Lựa chọn thời điểm hoàn thành nhiệm vụ

Thời gian bắt đầu được trình bày như sau:

phút giờ ngày_of_tháng lệnh ngày_of_week

Ký hiệu "*" ngụ ý bất kỳ giá trị nào.

Thời gian tối thiểu 1 phút. Điều này là do cron xem qua danh sách nhiệm vụ mỗi phút và tìm kiếm những nhiệm vụ cần hoàn thành.

Các biến cron bổ sung

Quản lý bằng crontab

Thêm một tập tin lịch trình:

Lịch trình Crontab_file_name

In nội dung của tệp lịch trình hiện tại:

Crontab -l

Xóa tập tin lịch trình hiện tại:

Crontab -r

Chỉnh sửa tệp lịch trình hiện tại (lần đầu tiên bạn chạy nó, danh sách các trình soạn thảo văn bản được hỗ trợ sẽ được hiển thị):

Crontab -e

Phím này cho phép bạn thực hiện các hành động trên cho một người dùng cụ thể:

Crontab -u tên người dùng

Xin lưu ý rằng -u chỉ có thể được sử dụng khi chạy crontab với tư cách siêu người dùng.

Ví dụ

Mỗi phút:

* * * * *

Mỗi giờ, sử dụng biến cron:

@hourly ~/script.sh

Mỗi ngày vào lúc 03:15 chạy script:

15 3 * * * ~/script.sh

Mỗi thứ hai:

0 0 * * 1

Mỗi giờ chẵn:

* */ 2 * * *

Tương tự như trên nhưng được viết đầy đủ:

* 0 ,2 ,4 ,6 ,8 ,10 ,12 ,14 ,16 ,18 ,20 ,22 * * *

Mỗi 10 phút:

*/ 10 * * * *

Năm mới :

59 23 31 tháng 12 *

Vào lúc 22h00 các ngày trong tuần:

0 22 * * 1 -5

Khởi chạy chương trình có shell đồ họa (GUI); Mỗi phút sẽ có một thông báo hiển thị với nội dung “Nó hoạt động!”:

0 -59 * * * * DISPLAY =:0 gdialog --msgbox "Nó hoạt động\!" 25 20 > /dev/null

* trong đó DISPLAY=:0 - số màn hình

Phiên bản GUI

GTK+

Có một chương trình rất hữu ích: Nhiệm vụ theo lịch trình(lịch trình gnome). Đây là giao diện đồ họa dành cho cron và sẽ hữu ích cho người mới bắt đầu vì nó mô tả thời gian thực hiện một tác vụ bằng ngôn ngữ rõ ràng. Ví dụ:

15 * * * *

mỗi giờ 15 phút;

* 0 * * *

mỗi phút, từ 00:00 đến 00:59.

Cron (vương miện), Crontab (crontab), Quản lý công việc- tất cả những người tham gia vào việc “xây dựng địa điểm” đã nhiều lần nghe thấy những cái tên này. Vậy Cron là gì? Làm thế nào để làm việc với nó? Tại sao bạn cần Cron và cách cấu hình nó đúng cách? Chúng ta sẽ xem xét tất cả những câu hỏi này ngày hôm nay.

Điều đầu tiên tôi muốn lưu ý ngay: Cron, Crontab, Quản lý công việc- tất cả đều giống nhau, đừng nhầm lẫn với nhiều cái tên khác nhau.

Trong thực tế, bất kỳ quản trị viên web nào cũng luôn cần phải chạy một số tác vụ theo lịch trình. Những thứ kia. Bạn chỉ cần đăng ký lệnh bạn cần để thực hiện một tác vụ tại một thời điểm nhất định, thế là xong. Sau đó, mọi thứ sẽ diễn ra mà không cần sự tham gia của bạn - một cách tự động và tốt nhất là vào thời điểm bạn cần.

Ví dụ: bạn cần gửi thông báo định kỳ cho đối tác qua email. Hoặc bạn muốn đặt lời chào hoặc nhắc nhở tự động. Hoặc bạn có một thư mục các trang web và bạn muốn tập lệnh thư mục kiểm tra các liên kết ngược, v.v., theo tần suất được chỉ định. Tất cả các tác vụ này có thể được tự động hóa dễ dàng bằng cách giao phó nó cho Cron hoặc như họ cũng nói - Bảng kế hoạch. Và có những tập lệnh trong đó Cron đơn giản là cần thiết để hoạt động bình thường.

Hầu như tất cả các nhà cung cấp dịch vụ lưu trữ hiện đại đều cung cấp chức năng làm sẵn Bảng kế hoạch. Nếu trên Hosting không có chức năng như vậy thì tốt hơn hết bạn không nên liên hệ với công ty Hosting đó. Cron ngày nay không còn là thứ xa xỉ nữa, và nếu Hosting không cung cấp công cụ lập lịch tác vụ trong gói dịch vụ thì tốt hơn hết bạn nên tìm công ty khác, có thể họ sẽ không có những chức năng quan trọng khác.

Vì vậy, hãy xem tất cả các bước thực tế để thiết lập Cron bằng ví dụ về cPane l (bảng điều khiển trang) của Nga Công ty lưu trữ Hudson. Tại sao chính xác Hudson? Thật đơn giản - trang web của tôi hoạt động ở đây và tôi thực sự thích Dịch vụ lưu trữ này: một gói hoàn chỉnh của tất cả các dịch vụ có thể ở một mức giá rất hợp lý.

Mặc dù thiết lập Bảng kế hoạch xảy ra giống nhau ở mọi nơi.

Chúng ta đi tới bảng điều khiển của trang web, trong trường hợp này là cPanel (có những cái khác). Quyền truy cập được cung cấp cho bạn ngay sau khi mua Lưu trữ, hãy đi xuống bên dưới và tìm phần này, Công cụ bổ sung:

Chúng tôi tìm thấy trong phần này Quản lý công việc và bấm vào nó. Menu này đôi khi được gọi là Cron Panel. Đây là cách Cron được đặc trưng:

"Trình lập lịch tác vụ cho phép bạn chạy các lệnh vào một thời điểm nhất định mà không cần sự tham gia của bạn. Điều này cho phép bạn tự động hóa các tác vụ định kỳ thường xuyên. Trình lập lịch tác vụ rất linh hoạt và cho phép bạn tự động hóa việc thực thi bất kỳ lệnh nào bạn muốn chạy. Ví dụ: , bạn có thể yêu cầu bộ lập lịch xóa các tệp tạm thời hàng tuần để chúng không chiếm quá nhiều dung lượng trên ổ đĩa của bạn."

Có hai tùy chọn để quản lý Crohn's để bạn lựa chọn:

Tiêu chuẩn và Nâng cao (kiểu Unix), chúng ta hãy nhìn vào từng người trong số họ.

Lựa chọn đầu tiên. Nhấn vào nút Standard, cửa sổ cài đặt tác vụ sẽ mở ra:

Như bạn có thể thấy, mọi thứ ở đây rất đơn giản. Bạn chỉ cần đặt thời gian thực hiện lệnh bằng cách cho biết trong các trường thích hợp khi nào lệnh sẽ chạy và vào thời điểm nào: phút, Giờ, Ngày, Tháng, Ngày trong tuần. Và tất nhiên, hãy nhập chính lệnh khởi chạy vào trường: Lệnh chạy.

Các giá trị có thể được viết thủ công (ở trường bên trái) hoặc sử dụng danh sách thả xuống (mũi tên ở bên phải).

Hãy tìm hiểu những gì chúng tôi đã viết ở đây. Và chúng tôi đã viết tác vụ sau: chạy lệnh để thực thi:
/usr/bin/php /home/freeman/domains/public_html/cron/new_day.php
cứ sau 30 phút, cứ sau 6 giờ, mỗi ngày trong tháng Giêng nếu rơi vào thứ Hai.

Sau khi cài đặt công việc, nhấp vào nút Thêm công việc Cron mới.

Không rõ bạn viết gì? :) Hãy xem tùy chọn thứ hai và sau đó tôi sẽ giải thích chi tiết hơn. Chúng tôi quay lại trang trước.

Sự lựa chọn thứ hai. Nhấn nút Nâng cao (kiểu Unix), cửa sổ cài đặt tác vụ sẽ mở ra:

Tôi thích tùy chọn này để thiết lập nhiệm vụ cho Krohn tốt hơn. Và tuy gọi là Advanced nhưng theo mình nó đơn giản và tiện lợi hơn.

Ở đây, giống như trong trường hợp đầu tiên, bạn cần cho biết khi nào lệnh sẽ được khởi chạy, chúng tôi cũng cho biết: phút S, Giờ S, Ngày, Tháng, Ngày trong tuần và bản thân nhiệm vụ thực thi tại hiện trường Đội. Sau đó, nhấp vào nút Thêm Cronjob. Nhiệm vụ đã được thiết lập. Trang đang được cập nhật:

Và bạn có thể thêm một nhiệm vụ mới bằng cách lặp lại toàn bộ quy trình một lần nữa. Bạn có thể xóa một nhiệm vụ bằng cách nhấp vào dấu thập bên cạnh nhiệm vụ ở bên phải.

Có một tham số tùy chọn nữa nhưng tôi khuyên bạn nên chỉ định nó: tham số này địa chỉ email. Một báo cáo về việc thực hiện lệnh sẽ được gửi đến địa chỉ này. Trường này là tùy chọn, nhưng tốt hơn hết bạn nên nhập địa chỉ để biết vấn đề, nếu có sự cố xảy ra, Kron sẽ thông báo cho bạn về điều đó bằng một lá thư và nếu lá thư đến tay trống thì mọi thứ đều ổn!

Chúng ta đã viết gì ở đây? Chạy lệnh lúc 11 phút, cứ 2 giờ một lần, hàng ngày, hàng tháng, các ngày thứ 1, 3, 5, 7 trong tuần.

Trong trường lựa chọn: phút cho biết phút (hoặc số phút) mà nhiệm vụ sẽ được khởi chạy tại hiện trường Giờ cho biết giờ (hoặc giờ) mà tác vụ sẽ được thực hiện, cũng như (các) ngày và tháng, trong mỗi trường, bạn có thể chỉ định cả thời gian và khoảng thời gian cụ thể.

Ví dụ: bạn có thể chỉ định không chỉ 11 phút mà còn 11-15 (khoảng thời gian), điều này có nghĩa là tác vụ sẽ chạy sau mỗi 11, 12, 13, 14, 15 phút. Hoặc chỉ định số phút cụ thể, ví dụ: 11, 14, 18 - điều này có nghĩa là nhiệm vụ sẽ được khởi chạy vào lúc 11, 14 và 18 phút. Bạn cũng có thể sử dụng dấu hiệu * (dấu hoa thị)- biểu thị mỗi . Nếu bạn đặt * (dấu hoa thị) trong trường Phút, thì tác vụ sẽ được khởi chạy mỗi phút, tức là. 60 lần một giờ.

Trong mỗi trường, bạn có thể chỉ định cả thời gian và khoảng thời gian cụ thể, đồng thời sử dụng dấu hoa thị.

Ghi */2 có nghĩa: cứ sau 2 giờ. Tất cả các biến thể bản ghi này áp dụng cho tất cả các trường ( phút S, Giờ S, Ngày, Tháng, Ngày trong tuần) khi chỉ định nhiệm vụ cho Kron. Bạn hiểu rằng có thể có hàng triệu lựa chọn Chạy tác vụ để thực thi, thậm chí từng phút trong suốt cả năm. Tất nhiên, nhu cầu như vậy hầu như không bao giờ nảy sinh, nhưng về mặt lý thuyết là có khả năng như vậy.

Và cũng nên nhớ rằng một số trang web Lưu trữ áp đặt các hạn chế đối với việc chạy Crohn, chẳng hạn như không quá 3 - 10 lần mỗi giờ. Tại sao? Điều này tạo ra một tải khá đáng chú ý trên máy chủ. Nếu vi phạm, tài khoản của bạn có thể bị chặn.

Bây giờ hãy tìm hiểu cách điền vào trường Lệnh chạy(trong tùy chọn đầu tiên) hoặc Command (trong tùy chọn thứ hai).

Nhiệm vụ được chỉ định như sau.

Trước hết, bạn chỉ ra đường dẫn đến PHP trên máy chủ của bạn, trên máy chủ của tôi đường dẫn là /usr/bin/php, đường dẫn của bạn có thể khác, hãy kiểm tra với quản trị viên máy chủ của bạn, sau đường dẫn đến PHP đặt một khoảng trắng và ghi đường dẫn nội bộ đầy đủ vào tệp mà Cron sẽ chạy. Giả sử tôi cần Cron để chạy tệp mail.php, biết đường dẫn bên trong của tệp, tôi viết như sau:

public_html/cron/mail.php

những thứ kia. trong thư mục gốc public_html, có một thư mục cron chứa tệp mail.php và lệnh hoàn chỉnh để chạy tệp mail.php sẽ như sau:

/usr/bin/php /public_html/cron/mail.php

Trên các hosting khác nhau, đường dẫn đến PHP có thể khác nhau và được viết khác nhau, thư mục gốc của vị trí trang web cũng không phải lúc nào cũng giống nhau công khai_html, vì vậy nếu không có ví dụ cụ thể về việc ghi lại một nhiệm vụ Crohn, thì tốt hơn hết bạn nên hỏi quản trị viên về nó, mô tả những gì bạn muốn nhận được cuối cùng. Tốt

Cron là một công cụ lập lịch tác vụ chạy trên máy chủ Unix\Linux. Nó cho phép bạn tự động thực hiện một số hành động nhất định trên máy chủ (khởi chạy chương trình, tập lệnh, v.v.) với thời gian hoặc tần suất được chỉ định.

Cấu hình chính xác bộ lập lịch công việc Cron

Các công việc dành cho Cron có thể được mô tả như sau - đây là một số dòng (một dòng - một công việc), cho biết tần suất khởi chạy và lệnh (có nghĩa là những gì thực sự cần được khởi chạy):

30 3 * * 2 /yourdirectory/myscript.pl

Sơ đồ:

Phút Giờ Ngày Tháng Tháng Ngày Tuần Lệnh

phút- được đặt theo số từ 0 đến 59

Đồng hồ- được đặt theo số từ 0 đến 23

Ngày trong tháng- được đặt theo số từ 1 đến 31

Tháng- được đặt theo số từ 1 đến 12

Ngày trong tuần- 1 - Thứ Hai, 2 - Thứ Ba, 3 - Thứ Tư, 4 - Thứ Năm, 5 - Thứ Sáu, 6 - Thứ Bảy, 7 - Chủ Nhật

Do đó, trong ví dụ của chúng tôi (30 3 * * 2 /yourdirectory/myscript.pl) trở lại có nghĩa là bạn cần chạy tệp /yourdirectory/myscript.pl vào thứ Ba hàng tuần lúc 3:30 sáng

Ngoài ra trong mỗi lĩnh vực chúng ta có thể sử dụng:

Viết cách nhau bằng dấu phẩy: 2,5,16 - nếu bạn viết số này vào trường Giờ, tác vụ sẽ chạy lúc 2 giờ sáng, 5 giờ sáng và 4 giờ chiều.

Khoảng thời gian: 5-9 - nếu bạn viết phần này vào trường Phút, tác vụ sẽ chạy mỗi phút trong khoảng thời gian từ 5 đến 9 phút.

Tần số bổ sung: /4 - nếu bạn viết điều này vào trường giờ, điều đó có nghĩa là quá trình khởi chạy sẽ diễn ra sau mỗi 4 giờ.

Quan trọng! Dấu hoa thị (*) có nghĩa là tất cả các giá trị có thể có! Vì vậy, một quản trị viên web thiếu kinh nghiệm quyết định rằng để chạy một tác vụ vào ngày đầu tiên hàng tháng, chỉ cần viết * * 1 * * /yourdirectory/myscript.pl là đủ, tình cờ phát hiện ra rằng tác vụ sẽ được khởi chạy mỗi phút, mỗi giờ.

Làm thế nào và ở đâu để nhập công việc Cron?

Cách đầu tiên để làm việc với Cron là thông qua bảng điều khiển lưu trữ của bạn. Nhưng trong các bảng khác nhau, việc cấu hình và quản lý được thực hiện khác nhau:

cPanel: Bảng điều khiển -> Công việc định kỳ

Trình quản lý ISP: Bảng điều khiển -> Bộ lập lịch (Cron)

Parallels Plesk: Bảng điều khiển -> Nhiệm vụ theo lịch trình

Nếu nhà cung cấp dịch vụ lưu trữ của bạn không có khả năng xử lý các công việc thông qua bảng điều khiển thì mọi công việc với Cron thường được thực hiện thông qua giao thức SSH. Mọi thứ ở đây đều đơn giản - kết nối với máy chủ qua SSH và nhập lệnh. Để kết nối với máy chủ, hãy sử dụng chương trình PuTTY miễn phí (cách thiết lập) và nhập các lệnh trên dòng lệnh.

Để bắt đầu, hãy nhập lệnh

Sau đó, rất có thể bạn sẽ được chuyển sang trình soạn thảo văn bản vi (các nhà cung cấp khác nhau có thể có các trình soạn thảo khác nhau). vi là một trình soạn thảo khá phức tạp, vì vậy chúng tôi khuyên bạn nên thử nhập dòng

Nếu trình chỉnh sửa nhẹ hơn khởi động thì mọi thứ đều ổn, nhưng nếu nhà cung cấp dịch vụ lưu trữ của bạn không hỗ trợ thì Google sẽ giúp bạn tìm ra nó với vi. Chúng tôi sẽ chỉ phác thảo ngắn gọn những điểm chính:

Nhập văn bản- nhấn phím i và trình soạn thảo sẽ chuyển sang chế độ nhập văn bản;

thoát chế độ nhập văn bản- Thoát

Xóa ký tự- x (nếu bạn đang ở chế độ nhập thử, sau đó để xóa một ký tự, trước tiên hãy nhấn Esc rồi đến x);

Quan trọng! Khi nhập các công việc cho Cron, bạn phải nhấn Enter sau mỗi dòng, kể cả khi đây là dòng duy nhất.

Để xem các công việc Cron hiện có, hãy nhập crontab -l

Công việc định kỳ với các ví dụ hữu ích

Xem các quy tắc tạo công việc Cron. Chạy một tác vụ cứ sau 2 giờ với 0 phút (hàng ngày, hàng tháng)

0 */2 * * * /yourdirectory/myscript.pl

Chạy tác vụ mỗi lần sau khi khởi động lại máy chủ

@reboot/yourdirectory/myscript.pl

Chạy task vào thứ Tư lúc 3h20 sáng (hàng ngày, hàng tháng)

20 3 * * 3 /yourdirectory/myscript.pl
1 0 14 3 * /yourdirectory/myscript.pl

Chạy task hàng tháng vào ngày 1 lúc 3h15 sáng (hàng tháng)

15 3 1 * * /yourdirectory/myscript.pl

Chạy các tệp PHP theo lịch bằng Cron

Để chạy tập lệnh PHP qua Cron, bạn có thể sử dụng trình thông dịch đặc biệt. Thật không may, chúng tôi không thể cung cấp cho bạn hướng dẫn về cách sử dụng nó, bởi vì... Các nhà cung cấp khác nhau có thể sử dụng phần mềm khác nhau. Do đó, nhiều quản trị viên web khởi chạy tệp PHP bằng WGET, để làm được điều này, chúng tôi sử dụng mục crontab sau:

30 3 * * 2 root wget -O - -q -t 1 http://mysite.com/file.php

"-O -" có nghĩa là Cron sẽ không tạo các tệp không cần thiết mà sẽ hoạt động thông qua bảng điều khiển. Điều này cho phép bạn tránh làm lộn xộn máy chủ.

"-q" vô hiệu hóa thao tác in ra màn hình

"-t 1" chỉ cho phép một lần thử kết nối.

http://mysite.com/file.php - đường dẫn đến tệp PHP của bạn (không cần thiết phải chỉ định đường dẫn tuyệt đối).

Quan trọng! Nếu bạn truyền tham số bằng tệp PHP này, đôi khi WGET không xử lý chúng một cách chính xác. Trong trường hợp này, chúng tôi khuyên bạn nên đặt địa chỉ tệp PHP trong dấu ngoặc đơn:

30 3 * * 2 wget gốc -O - -q -t 1 "http://mysite.com/file.php"

Ngoài ra, còn có một cách khác để bắt đầu:

30 3 * * 2 /usr/bin/wget -O - -q -t 1 http://mysite.com/file.php

Nhưng trong trường hợp này, bạn cần biết đường dẫn đến thư mục wget trên máy chủ của mình (thường là /usr/bin/wget hoặc /usr/local/bin/wget).

Nhận báo cáo công việc Cron qua email

Cron có thể được cấu hình để gửi email kèm theo kết quả của các công việc đang chạy. Tính năng này cũng có thể hữu ích cho việc thông báo trong trường hợp có lỗi. Để nhận báo cáo qua e-mail, bạn cần chỉnh sửa crontab (trước tác vụ) và viết dòng sau:

Ở đâu [email được bảo vệ]- đây là e-mail mà thư sẽ được gửi đến. Bạn cũng có thể thêm nhiều địa chỉ, cách nhau bằng dấu phẩy.

Còn một điều nữa: bạn cũng sẽ nhận được kết quả của script qua email. ví dụ: nếu tập lệnh viết một số loại dòng chữ trên màn hình, thì dòng chữ tương tự sẽ được gửi đến email của bạn cùng với báo cáo. Nếu điều này làm bạn khó chịu, hãy thêm dòng > /dev/null 2>&1 vào cuối tác vụ

30 3 * * 2 /usr/bin/wget -O - -q -t 1 http://mysite.com/file.php > /dev/null 2>&1

(Tác vụ đã lên lịch) được sử dụng để định cấu hình việc thực hiện các lệnh theo lịch trình hoặc tại một thời điểm được chỉ định nghiêm ngặt. Bằng cách sử dụng CronTab Bạn có thể đặt thời gian cụ thể và lệnh bạn chỉ định sẽ được thực thi chính xác vào thời điểm đó. Cấu hình CronTab có thể theo cách đó nhiệm vụ sẽ được thực thi mỗi lần tháng, ngày, giờmỗi phút hoặc, ví dụ, mỗi 10 phút. Bạn cũng có thể kết hợp, ví dụ, bạn cần thực hiện nhiệm vụ mỗi giờ một lần trong 2 giờ đầu tiên, sau đó không thực hiện nó trong 2 giờ tiếp theo.

Ngoài ra, một trong những tiện ích là khả năng gửi kết quả hoàn thành nhiệm vụ qua email. Để thực hiện việc này, hãy nhấp vào dòng chữ tương ứng và nhập email của bạn.

Nhiệm vụ chính

Lần đầu làm quen với Cronđối với chúng tôi nó bắt đầu bằng việc khám phá Bậc thầy nhiệm vụ. Bằng cách sử dụng trình hướng dẫn, bạn có thể định cấu hình thời gian thực thi tập lệnh mà không cần bất kỳ kiến ​​thức quản trị nghiêm túc nào bằng cách chỉ cần chọn một kết hợp cụ thể từ danh sách thả xuống. Bạn cũng phải nhập đường dẫn đến tập lệnh hoặc lệnh sẽ được thực thi trong Cron.

Hãy xem một ví dụ về chạy tập lệnh được viết bằng ngôn ngữ PERL, cần được khởi chạy cứ sau 5 phút.

Sau khi nhấp vào nút, bên dưới cửa sổ chính Cron Một mục mới sẽ xuất hiện với cấu hình đầu tiên của bạn. Số lượng các mục như vậy là không giới hạn.

Bây giờ chúng ta có nhiệm vụ đầu tiên là chúng ta có thể bật/tắt, thay đổi hoặc xóa bỏ sử dụng các nút nằm ở bên phải đối diện với mỗi tác vụ:

Bật/tắt tác vụ;
- thay đổi nhiệm vụ;
- xóa nhiệm vụ.

Hướng dẫn cài đặt CronTab.

Ngoài ra còn có cài đặt thủ công trong phần cho phép bạn định cấu hình thời gian khởi chạy tập lệnh theo cách thông thường, dành cho những người đã quen với Cron.

Khoảng thời gian

Phút có thể từ 0 trước 59
Giờ có thể từ 0 trước 23
Ngày trong tháng có thể từ 1 trước 31
Có lẽ một tháng 1 trước 12
Ngày trong tuần có thể từ 0 trước 7 , trong đó 0 và 7 là Chủ nhật

Có thể được cấu hình CronTabđể thực hiện nhiệm vụ không chỉ tại một thời điểm nhất định
thời gian nhưng cũng mỗi phút, hàng giờ, hằng ngày, hàng tuần hoặc hàng tháng,
sử dụng kết hợp */x

Ví dụ

*/5 * * * * - chạy lệnh cứ năm phút một lần
0 */3 * * * - chạy ba giờ một lần
0 12-16 * * * - chạy lệnh mỗi giờ từ 12 đến 16 (lúc 12, 13, 14, 15 và 16)
0 12,16,18 * * * - chạy lệnh mỗi giờ vào lúc 12, 16 và 18 giờ

*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php- chạy tập lệnh php test.php mỗi phút
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl- chạy tập lệnh perl test.pl mỗi giờ

Đội

Bạn phải đặt đường dẫn đến tập lệnh từ thư mục chính của bạn
Ví dụ: public_html/cgi-bin/script.pl
Hệ thống sẽ tự thay thế ký hiệu ~/ (sự kết hợp này thay thế đường dẫn đầy đủ)
Nó sẽ bật ra: ~/public_html/cgi-bin/script.pl
Nếu bạn đặt biểu tượng ở cuối đường dẫn & (ký hiệu và), thì tập lệnh sẽ chạy ở chế độ nền.
Đặt biểu tượng này là tùy chọn.

, | |

Ngày nay, Cron là một trong những cách phổ biến nhất để tự động hóa việc khởi chạy các tiến trình trong Linux. Cron là một daemon chạy ở chế độ nền và cho phép bạn lên lịch cũng như tự động khởi chạy các tác vụ khác nhau (bao gồm cả những tác vụ liên quan đến hỗ trợ máy chủ). Để thực hiện việc này, hãy sử dụng tệp cấu hình crontab.

Cài đặt Cron

Ngày nay, hầu hết các bản phân phối đều được cài đặt sẵn cron daemon theo mặc định. Nếu cron không được cài đặt theo mặc định, bạn có thể nhanh chóng cài đặt nó bằng các lệnh sau:

Ubuntu/Debian:

cập nhật sudo apt-get
sudo apt-get cài đặt cron

Hệ điều hành Cent/Red Hat Linux:

cập nhật sudo yum
sudo yum cài đặt vixie-cron crontabs

Sau khi cài đặt hoàn tất, bạn cần đảm bảo rằng cron đang chạy ở chế độ nền:

bật sudo /sbin/chkconfig
sudo /sbin/service crond bắt đầu

Cú pháp cơ bản

Hãy xem xét ví dụ sau về một tác vụ cần được lên lịch để chạy:

5 * * * * cuộn tròn http://www.google.com

Cú pháp lập kế hoạch cho các nhiệm vụ khác nhau ban đầu có vẻ khó hiểu. Thực ra nó rất ngắn và đơn giản, bạn chỉ cần tìm cách đọc nó là được. Mỗi dòng được chia thành một biểu đồ và một lệnh. Hầu như bất kỳ lệnh nào cũng có thể được nhập vào dòng. Lịch trình được chia thành 5 lĩnh vực quy hoạch khác nhau theo thứ tự sau:

<Минуты> <Часы> <Дни_месяца> <Месяцы> <Дни_недели>

Ví dụ sử dụng cron

Phần này chứa các ví dụ về lập kế hoạch cho các nhiệm vụ phổ biến nhất.

Để lệnh chạy tự động mỗi phút:

Vì vậy, lệnh được thực thi cứ sau mười hai phút trong giờ (08.12, 09.12, v.v.):

Để chạy lệnh cứ sau 15 phút:

0,15,30,45 * * * *

Để lệnh chạy tự động hàng ngày vào lúc 4 giờ sáng:

Để chạy lệnh vào lúc 4 giờ sáng Thứ Ba hàng tuần:

Lịch trình có thể được chia. Nghĩa là, thay vì 0,15,30,45 bạn có thể sử dụng:

Xin lưu ý phạm vi 2-6. Cú pháp này sẽ chạy lệnh được chỉ định từ 2 giờ sáng đến 6 giờ sáng cứ sau 15 phút.

Như bạn có thể thấy, cú pháp cực kỳ mạnh mẽ và linh hoạt của cron cho phép bạn chỉ định hầu hết mọi khoảng thời gian.

Thiết lập cron

Khi bạn đã phát triển một lịch trình nhiệm vụ, bạn cần đặt nó vào đúng vị trí trong hệ thống để daemon có thể tìm và đọc nó. Nói chung, có một số điểm như vậy trong hệ thống, nhưng theo quy định, biểu đồ như vậy được đặt trong crontab của người dùng. Như đã đề cập, crontab là một tệp cấu hình cho cron daemon chứa lịch chạy các lệnh và chương trình nhất định. Tệp này nằm trong /var/spool/cron/crontab, nhưng thông thường không thể chỉnh sửa trực tiếp nó. Để thêm các chương trình cần thiết vào tệp, hãy sử dụng lệnh cùng tên - crontab. Tức là để chỉnh sửa file crontab, bạn chỉ cần nhập:

Lệnh này sẽ mở trình soạn thảo văn bản mà bạn có thể thực hiện tất cả các thay đổi cần thiết; Mỗi nhiệm vụ mới phải được nhập trên một dòng mới.

Để xem crontab mà không thực hiện bất kỳ thay đổi nào, hãy sử dụng lệnh:

Bạn có thể xóa crontab bằng lệnh sau:

Người dùng cấp cao có thể chỉnh sửa crontab của người dùng khác bằng cách sử dụng:

crontab -u<пользователь>-e

đầu ra cron

Sau khi tác vụ hoàn thành, cron sẽ gửi đầu ra đến địa chỉ email của người dùng (trừ khi đầu ra cần được gửi đến nhật ký hoặc /dev/null). Địa chỉ email có thể được chỉ định thủ công bằng cách thêm tham số MAILTO vào đầu crontab. Bạn cũng có thể chỉ định shell để chạy, đường dẫn đến tệp nhị phân cron và thư mục chính của bạn. Đối với điều này:

crontab mở đầu tiên:

sau đó chỉnh sửa nó như thế này:

VỎ=/bin/bash
TRANG CHỦ=/
MAILTO=”example@some_user.com”
#Đây là một bình luận
* * * * * echo 'Chạy lệnh này mỗi phút'

Dòng này sẽ trả về Chạy lệnh này mỗi phút. Trình nền cron sẽ gửi đầu ra này tới example@some_user.com. Tất nhiên, điều này không thuận tiện lắm. Như đã đề cập trước đó, kết quả đầu ra này có thể được gửi đến một tệp nhật ký để tránh những tình huống như vậy.

Để làm điều này bạn chỉ cần thêm:

* * * * * echo ‘Chạy lệnh này mỗi phút’ >> file.log

Lưu ý: >> ký hiệu sẽ hướng đầu ra vào nhật ký. Ngoài nhật ký, bạn cũng có thể sử dụng /dev/null bằng cách sử dụng tập lệnh PHP sau đang chạy trong nền.

* * * * * /usr/bin/php /var/www/domain.com/backup.php > /dev/null 2>&1

Hạn chế quyền truy cập vào cron

Để hạn chế quyền truy cập vào cron daemon, bạn cần sử dụng các tệp /etc/cron.allow và /etc/cron.deny. Để cho phép (cho phép) hoặc từ chối (từ chối) quyền truy cập vào một người dùng cụ thể, bạn chỉ cần nhập tên người dùng vào tệp thích hợp. Theo mặc định, cron daemon có sẵn cho tất cả người dùng. Để từ chối quyền truy cập cho tất cả người dùng và chỉ cấp quyền truy cập cho người dùng mẫu, bạn cần sử dụng chuỗi lệnh sau.