Trang chủ > Direct Admin, Linux, Server & Security, SSH, WHM & Cpanel > Sử dụng cron job trên website

Sử dụng cron job trên website

Cron job(LINUX) cũng giống như schedul

ed task trên hệ điều hành Window, nó dùng để thực thi định kì một hành động nào đó của người quản trị hệ thống trong một khoảng thời gian được xác định trước bởi người quản trị hệ thống hoặc website.

Cron là hệ thống chạy nền của hệ điều hành LINUX, do đó bạn không cần cài đặt nó, tùy theo quyền hạn sử dụng của bạn mà bạn có thể sử dụng nó hay không mà thôi. Hiện nay hầu hết các hosting đều có hỗ trợ cron job (kể cả sharing host) , do đó nếu biết tận dụng các ưu điểm của cron job cho website. Bạn có thể làm cho website của mình tốt hơn và bổ sung nhiều tính năng hữu hiệu cho website cả mình.

Sử dụng cron job trên hệ điều hành LINUX:

Trong thư mục /ect bạn sẽ dễ dàng tìm thấy các thư mục con chứa các lệnh cron như cron.hourly, cron.daily, cron.weekly và cron.monthly . Nếu bạn đặt script của mình trong chúng, tương ứng chúng sẽ chạy trong các khoảng thời gian được mặc định trước.

Code:
root@pingu # cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

Một số đối số sử dụng trong Cron thường gặp:

  • minute: Thời điểm tính bằng phút cron job sẽ được thực thi. Giá trị đầu vào là dạng số học và có giá trị từ 0-59 (tương ứng với các thời điểm tính bằng phút của 1 giờ).
  • hour: Thời điểm thực thi cron job tính bằng giờ có giá trị từ 0-23.
  • dom: Day of Month – thời điểm thực thi cron job định kì của ngày trong tháng.
  • month: Tháng bạn sẽ sử dụng cron job, sử dụng khi bạn thấy rằng không nhất thiết phải chạy cron job thường xuyên mà chỉ cần thực thi trong một số tháng nhất định trong năm. Giá trị tương ứng của nó dạng số (0-12) hoặc bạn có thể sử dụng tên tiếng Anh (ví dụ May cho tháng 5 )
  • dow: Day of Week: thời điểm sẽ chạt cron trong tuần. Bạn có 2 cách sử dụng: dạng số (0-7) hoặc dạng tên rút gọn (ví dụ Sun cho ngày chủ nhật).
  • user: User có quyền sử dụng cron này
  • cmd: đoạn lệnh sẽ thực thi khi cron được sử dụng.
  • * : bất kì. Sử dụng nó khi bạn muốn cron job thực hiện trong bất kỳ thời điểm này.

Ví dụ:

Code:
01 * * * * root echo “This command is run at one min past every hour”
17 8 * * * root echo “This command is run daily at 8:17 am”
17 20 * * * root echo “This command is run daily at 8:17 pm”
00 4 * * 0 root echo “This command is run at 4 am every Sunday”
* 4 * * Sun root echo “So is this”
42 4 1 * * root echo “This command is run 4:42 am every 1st of the month”
01 * 19 07 * root echo “This command is run hourly on the 19th of July”

Ứng dụng cho website:
Sử dụng cron job cho website có nhiều việc. Một trong các ví dụ thường gặp nhất là gửi email định kì cho khách hàng, gửi báo giá hay thông báo các bản tin mới theo thời điểm do khách hàng của bạn tùy chọn. Ngoài ra còn có các ứng dụng khác nữa mà bạn có thể sử dụng nó tùy theo ứng dụng bạn sử dụng trên website như cập nhật số liệu, quét chỉ mục, cache dữ liệu hệ thống, backup hệ thống định kì ….

Trong khuôn khổ bài viết, babyinternet không thể đề cập đến tất cả các công việc đã nói ở trên. Ở đây, babyinternet hướng dẫn bạn cách sử dụng cron job để thực thi một file nào đó trong hệ thống (ví dụ gửi email cho khách hàng, backup hệ thống…). Về việc thiết kế file để làm việc gì thì baby không đề cập nhé :lick: .

Tiếp tục bài viết về sử dụng cron job cho công việc định kì. Ở phần trên babyinternet đã giải thích về cơ chế hoạt động cũng như các đối số, ứng dụng cho website. ở phần này baby sẽ cùng mọi người setup 1 vài cron job thực hiện công việc của mình.

Đối với hệ thống sử dụng CPanel

Bạn đăng nhập vào hosting của mình, tìm mục Cron Jobs như hình bên dưới

Image

Cpanel cho phép ta lựa chọn 2 giao diện sử dụng: Standard và Advanced. Đối với Advanced, bạn sử dụng command như sử dụng command với các lệnh Shell đã được mô tả ở bài viết trên. Ở đây, để đơn giản chúng ta chọn giao diện sử dụng Standard để thao tác.

Image

Ở đây công việc tương đối dễ thở hơn :punk: , bạn chỉ việc chọn các giá trị bạn muốn command của mình chạy bằng các chọn các giá trị từ các selectbox để xác định thời điểm bạn muốn cron chạy command của mình.

Phần command bạn sử dụng 1 câu lệnh shell. Ở đây babyinternet ví dụ 2 cách sử dụng command để chạy 1 file.

Cách 1: chạy trực tiếp từ đường dẫn web

Code:

Cách này bạn có thể chạy 1 file bất kì từ một hệ thống website khác chứ ko chỉ là website mình. Ở đây sẽ phát sinh vấn đề bảo mật khi có người khác phát hiện ra site mình chứa 1 script chạy ứng dụng cron job và tiến hành tấn công (ví dụ gọi liên tục để cron job của mình gửi email cho khách hàng chẳng hạn). Bạn có thể fix nó bằng cách sử dụng 1 file .htaccess chỉ cho phép username(hoặc IP) trong hệ thống của mình chạy file này, ngoài ra các hệ thống khác không thể chạy file.

Cách 2: Sử dụng đường dẫn tương đối

Code:
/usr/local/bin/php /home/username/path/to/script.php >/dev/null

Đối với hosting sử dụng DirectAdmin

Bạn tìm cron job trong Advanced Features

Image

Hãy xem

Image

Nếu như ở hosting sử dụng Cpanel ta chọn các giá trị bằng selectbox thì ở đây ta thiết lập bằng các giá trị điền. * như đã nói ở trên nghĩa là tất cả. Bạn cũng chỉ việc gõ số nếu muốn chọn 1 thời điểm xác định.

Câu command cũng tương tự như trên hệ thống Cpanel đã được ví dụ ở trên.

Chúc các bạn thành công

Advertisements
  1. Không có bình luận
  1. No trackbacks yet.

Trả lờ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 Đăng xuất / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất / Thay đổi )

Connecting to %s

%d bloggers like this: