Cron Jobs là gì? Hướng dẫn xây dựng CronJob trên hosting

18 Nov, 2021 admin

Cron Jobs là gì mà lại có thể giúp ta thực hiện những công việc nhàm chán lặp đi lặp lại hằng ngày, hằng giờ hay hằng năm? Để tìm hiểu sâu hơn về khái niệm và cách hoạt động của Cron Jobs, TinoHost sẽ cùng đồng hành với bạn trong bài viết này!

Cron Jobs là gì?

Cron Jobs là chức năng dùng để thực thi định kì lệnh nào đó trong một khoảng thời gian được xác định trước bởi quản trị viên hosting.

Hiểu đơn giản, Cron Jobs là một chức năng giúp lên lịch tự động thực hiện một số công việc nào đó. 

cron-jobs-la-gi

Tự động hoá các tác vụ cơ bản của máy chủ – tính năng nổi bật của Cron Jobs 

  • Tự động Backup dữ liệu hệ thống định kì
  • Tự động gửi email: 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, …
  • Tự động thực hiện một lệnh nào đó trong Linux do người dùng tạo ra: cập nhật số liệu, quét chỉ mục, cache dữ liệu hệ thống, …

Ưu điểm khi sử dụng Cron Jobs

Nhờ Cron Jobs, bạn sẽ tiết kiệm được lượng lớn thời gian, không phải quản lý máy chủ lưu trữ và các tác vụ liên quan. Nếu là nhân viên văn phòng, bây giờ bạn hoàn toàn có thể  về nhà, thư giãn sau một ngày miệt mài 8 tiếng trong văn phòng thay vì dành buổi tối của họ sao lưu các tập tin và quản lý địa chỉ liên lạc.

Song song đó, bạn cũng không cần phải cố gắng ghi nhớ và tạo đi tạo lại những công việc định kì. 

Hạn chế: 

Cron Jobs chỉ có thể thực hiện câu lệnh theo chu kỳ 1 phút trở lên, trong trường hợp muốn thực hiện các công việc lặp lại theo chu kỳ 1s, 5s, 10s, … CronTab sẽ không làm được.

Để CronJob có thể thực hiện theo chu kỳ 1s, 2s, 3s, …. , bạn hãy yêu cầu nhà cung cấp dịch vụ hỗ trợ nhé. 

Nguyên lí hoạt động của Cron Jobs: 

Thông thường, Cron Jobs có ba thành phần cố định như sau:

1. Script (kịch bản lệnh) được gọi hoặc được thực hiện.

2. Command (Câu lệnh) thực thi script trên cơ sở reoccurring. Thao tác này thường được thiết lập trong cPanel.

3. Các hoạt động hoặc đầu ra/output của script, phụ thuộc vào những gì script được gọi ra và thực thi. Thông thường, các script được gọi là Cron jobs sẽ sửa đổi các tệp hoặc các cơ sở dữ liệu.

Hướng dẫn xây dựng Cron Jobs trên hosting

Cron là hệ thống chạy nền của hệ điều hành LINUX. Vì vậy, bạn không cần cài đặt ứng dụng, chỉ tùy theo phân quyền sử dụng của quản trị viên bạn có thể sử dụng được hay không. Hiện nay hầu hết các hosting đều có hỗ trợ Cron jobs (kể cả sharing host), do đó nếu biết tận dụng các ưu điểm của Cron jobs 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ủa mình.

Bạn có thể cài đặt các lệnh này thông qua mục Cron Jobs ở phần Quản lý tài khoản hosting.

cron-jobs-la-gi

Sơ lược thao tác làm việc với Cron Jobs

Cron Jobs chỉ định mỗi công việc cụ thể cần được thực hiện  nằm trong một tệp lớn hơn được gọi là tab Cron. Một số máy chủ có nhiều tab Cron cho nhiều loại ứng dụng và đầu vào tự động.

Những người chỉ có một tệp tab Cron có thể sử dụng các lệnh bên dưới để chỉnh sửa, xóa hoặc xem toàn bộ tệp, với mỗi tác vụ tự động cụ thể được liệt kê để xem trong tệp.

  • crontab -r: lệnh này dùng để  loại bỏ (do đó “r”) hoặc xóa toàn bộ tập tin tab Cron.
  • crontab -e: lệnh này dùng để chỉnh sửa các chức năng được mô tả trong tab Cron thay vì xóa tệp hoàn toàn.
  • crontab -l: lệnh này cho phép quản trị viên máy chủ chỉ xem toàn bộ nội dung của tệp tab Cron (không được phép xoá hay chỉnh sửa).

Tạo Cron Jobs:

Đây là mục thêm công việc tự động chính gồm:

+ Common setting: Lựa chọn tần suất cho công việc. Có các lựa chọn từ mỗi phút cho đến mỗi năm.

+ Minute, Hour, Day, Month, Weekday: Chọn tần suất cho công việc theo phút, giờ, ngày, tháng, ngày trong tuần.

+ Comment: Câu lệnh Linux khi đến giờ hẹn sẽ thực hiện.

cron-jobs-la-gi

Lưu ý: 

Cú pháp đặt thông số thời gian: Đây là phần đầu tiên trong chuỗi Cron jobs trong lệnh Cron jobs phía trên. Phần này xác định tần suất và thời điểm Cron jobs sẽ chạy.

cron-jobs-la-gi

Ứng dụng Cron Job trong tự động backup

Ví dụ: Cần sao lưu cơ sở dữ liệu với tần suất hàng ngày. Bạn cấu hình giống như dưới đây:

cron-jobs-la-gi
  • Câu lệnh: mysqldump -u cpanelzcom_user –123456 cpanelzcom_name > backup.sql
  • Giải thích:

+ Phần in đậmthông tin user, password và tên cơ sở dữ liệu của bạn.

+ Phần in nghiêngtên file sao lưu.

Chúc bạn vận dụng Cron Jobs vào công việc thật hiệu quả nhé!

Tôi cần hiểu thêm về các giá trị thời gian trong cron jobs?

Tại đây ta có các giá trị về thời gian:

  • Minute phút của lệnh, giới hạn từ 0 – 59.
  • Hour giờ của lệnh, giới hạn từ 1 – 23.
  • Day of month là giờ của tháng bạn muốn chạy dao động từ 1 – 31.
  • Month tháng cụ thể bạn chạy từ 1 – 12.
  • Day of the week là ngày trong tuần từ 0 – 7 (tương ứng thứ 2 đến chủ nhật).

Trong mỗi câu lệnh tôi có cần chú ý đến những gì?

Bạn cần sử dụng đúng kí tự với mỗi file Crontab, nếu không, câu lệnh sẽ báo lỗi không thực thi được hoặc chạy nhưng không hiển thị gì hết. Các kí tự có ý nghĩa trong crontab như sau:

  • (*) Dấu hoa thị để xác định các tham số
  • (,) Dấu phẩy để để duy trì những lần thực hiện lệnh
  • (-) Dấu gạch nối để xác định thời gian thiết lập thực thi lệnh
  • (/) Dấu gạch chéo tạo thời gian nghỉ cụ thể
  • (L) Viết tắt của Last Cuối cùng là chỉ định đến ngày cuối cùng của tuần trong tháng.
  • (W) viết tắt của Week Tuần là ngày trong tuần để xác định ngày gần nhất trong tuần gần nhất.
  • (#) Hash hay dấu Thăng để xác định ngày của tuần 
  • (?) Dấu chấm hỏi dùng để tạo một khoản trống

Một số lệnh cơ bản nhất trong Cron jobs?

Đây là vài lệnh cơ bản:

  • $ crontab e tạo và chỉnh sửa file crontab
  • $ crontab -u username -e chỉnh sửa file crontab của người dùng khác với quyền truy cập của superuser
  • $ crontab -l xem danh sách file crontab của người dùng hiện tại.
  • $ crontab -u username -l xem danh sách files crontab của người dùng khác.

Là một quản trị website, tôi có thể sử dụng Cron jobs vào việc gì?

Nếu là một quản trị viên hệ thống bạn sẽ sử dụng Cron Jobs để backup hệ thống định kì, giám sát dung lượng ổ đĩa và bảo trì định kì mà không phải tốn quá nhiều công sức. 

Đối với web, bạn có thể sử dụng Cron Jobs để kiểm tra các link đã hỏng, xoá bỏ các tài khoản hết hạn hoặc quá lâu không sử dụng (clone) và gửi thông báo đến các người dùng đã đăng kí.

Mọi thắc mắc và góp ý liên quan, xin vui lòng liên hệ ngay TinoHost để được tư vấn chi tiết hoặc Fanpage để cập nhật những thông tin mới nhất nhé!

Với bề dày kinh nghiệm hơn 5 năm cung cấp hosting, dịch vụ cho thuê máy chủ, các dịch vụ liên quan đến tên miền và bảo mật website, hãy để TinoHost đồng hành cùng bạn trên con đường khẳng định thương hiệu trên bản đồ công nghệ toàn cầu!

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh
    Văn phòng đại diện: 42 Trần Phú, Phường 4, Quận 5, Thành phố Hồ Chí Minh
  • Điện thoại: 0364 333 333
    Tổng đài miễn phí: 1800 6734
  • Email: [email protected]
  • Website: www.tino.org
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments