Hướng dẫn toàn diện về Cron Job năm 2023 cho người mới bắt đầu (Phần 1)

Hướng dẫn toàn diện về Cron Job cho người mới bắt đầu (Phần 1)

Chia sẻ kiến thức 03/03/2022

Trong bài Hướng dẫn toàn diện về Cron Job cho người mới bắt đầu 2023 dưới đây của FUNiX, các bạn sẽ được tìm hiểu những kiến ​​thức cơ bản về cron job bao gồm khái niệm, phân loại, cú pháp, các quyền (permissions) và các chuỗi (strings) đặc biệt của chúng. 

>> Khóa học Software Tester

>> Khóa học Lập trình Web Front-End với React 

Khi làm việc với hệ thống Linux hoặc Unix, một trong những công cụ quan trọng và mạnh mẽ mà bạn sẽ cần làm quen là Cron Job. Cron là một tiện ích hệ thống mạnh mẽ giúp tự động hóa các tác vụ định kỳ trên máy tính. Dù bạn là một nhà quản trị hệ thống, lập trình viên hay chỉ là người dùng muốn tự động hóa các tác vụ trên hệ thống của mình, Cron Job là một công cụ không thể thiếu. Hướng dẫn này sẽ giúp bạn hiểu rõ về Cron Job và cách thiết lập chúng để tiết kiệm thời gian và công sức.

1. Cron Job là gì?

Cron Job

Cron là một chương trình tiện ích cho phép người dùng nhập vào các lệnh với mục đích lên lịch trình cho các task lặp đi lặp lại tại một thời điểm cụ thể. Các job được lên lịch trình trong cron được gọi là cron job. Người dùng có thể xác định được các task họ muốn tự động hóa là gì và thời gian nó nên được thực thi là khi nào.

Cron là một daemon – một quy trình nền giúp thực thi các công việc không tương tác. Trong Windows, chúng ta có thể quen thuộc với một số quy trình nền hoạt động tương tự như daemon cron,  ví dụ như Services.

Daemon luôn ở chế độ idle và chỉ thực hiện một task cụ thể khi có lệnh yêu cầu. Lệnh có thể được nhập trên bất kỳ máy tính nào trong hệ thống mạng.

File cron là một file văn bản đơn giản chứa các lệnh chạy định kỳ tại một thời điểm cụ thể. Bảng cron hệ thống hoặc file cấu hình crontab mặc định sẽ là /etc/crontab, đặt trong thư mục crontab là /etc/cron.*/ .

Chỉ có quản trị viên hệ thống mới có thể chỉnh sửa file crontab hệ thống. Tuy nhiên, hệ điều hành giống Unix có thể hỗ trợ được cho nhiều quản trị viên. Mỗi người đều có thể tạo một file crontab và viết các lệnh để thực hiện công việc bất cứ khi nào họ muốn.

Với cron job, người dùng có thể tự động bảo trì hệ thống, giám sát dung lượng ổ đĩa và lên lịch sao lưu. Bản chất của cron job sẽ rất phù hợp cho các máy tính hoạt động 24/7 chẳng hạn như server.

Mặc dù cron job được sử dụng chủ yếu bởi các quản trị viên hệ thống, nhưng chúng cũng có thể có lợi cho các nhà lập trình web.

Ví dụ: Với tư cách là quản trị viên trang web, bạn có thể thiết lập để một cron job tự động sao lưu trang web hàng ngày vào lúc nửa đêm, một job khác để kiểm tra các liên kết bị hỏng vào lúc nửa đêm của ngày thứ hai hàng tuần, và một job thứ ba để xóa bộ nhớ cache trang web của bạn vào mỗi trưa thứ Sáu.
Hạn chế của Cron

Cũng như bất kỳ một chương trình nào khác, cron cũng có những hạn chế mà bạn nên cân nhắc trước khi sử dụng:

  • Khoảng thời gian ngắn nhất giữa các job là 60 giây, nên bạn sẽ không thể lặp lại một job trong vòng 59 giây trở lại.
  • Cron job chỉ tập trung cho một máy tính chứ không thể được phân phối cho nhiều máy tính trên hệ thống mạng. Vì vậy, nếu máy tính đang chạy cron bị treo, các task đã lên lịch trình sẽ không được thực hiện và các job bị bỏ lỡ sẽ chỉ có thể được chạy bằng cách thủ công.
  • Không có cơ chế tự động thử lại: Cron được thiết kế để chạy vào những thời điểm được chỉ định chặt chẽ. Nên nếu một task không thành công, nó sẽ không chạy lại cho đến thời điểm tiếp theo trong lịch trình. Điều này làm cho cron không thích hợp cho các task gia tăng.

Với những hạn chế trên, cron là một giải pháp tuyệt vời cho các task đơn giản, chạy tại một thời điểm cụ thể với khoảng thời gian đều đặn ít nhất là 60 giây.

Mẹo hay: Trước khi tạo Cron job, hãy đảm bảo rằng tập lệnh của bạn hoạt động bằng cách hãy mở file trong trình duyệt (bằng URL) hoặc thực thi nó qua SSH (Secure Socket Shell), tùy vào loại tập lệnh bạn có. Nếu tập lệnh không hoạt động, hãy liên hệ với lập trình viên để được trợ giúp.

>>> Xem thêm: Top 20 ngôn ngữ lập trình tốt nhất để học bạn nên biết – Phần 1

2. Những hoạt động cơ bản của Cron Job

Hướng dẫn dưới đây sẽ chỉ cho bạn cách lên lịch cron job bằng cách nhập các lệnh vào một chương trình shell như Bash trên Linux, hoặc một hệ điều hành giống Unix.

Trước khi tìm hiểu tiếp tục về các hoạt động cơ bản của cron, bạn cần nắm được các file cấu hình cron job khác nhau, bao gồm:

  • Crontab hệ thống: Sử dụng nó để lên lịch trên toàn hệ thống, cho các job thiết yếu mà chỉ có thể được thay đổi với đặc quyền root.
  • Crontab người dùng: File này cho phép người dùng tạo và chỉnh sửa các cron job, chỉ áp dụng ở cấp độ người dùng.

Nếu muốn chỉnh sửa crontab hệ thống thì người dùng phải có đặc quyền root.

Sau đây là một số hoạt động cơ bản mà cron có thể thực hiện:

Để tạo hoặc chỉnh sửa file crontab, hãy nhập thông tin sau vào dòng lệnh:

crontab -e

Nếu bạn không tìm thấy file crontab nào trong hệ thống, lệnh sẽ tự động tạo một file mới. Crontab -e cho phép chúng ta thêm, chỉnh sửa và xóa cron job.

Sử dụng một trình soạn thảo văn bản như vi hoặc nano để chỉnh sửa file crontab. Khi nhập crontab -e lần đầu tiên, bạn sẽ nhận được yêu cầu lựa chọn trình soạn thảo văn bản muốn sử dụng để chỉnh sửa file.

Nếu muốn xem danh sách các task đã lên lịch trong hệ thống, hãy nhập lệnh sau:

crontab -l

Nếu hệ thống có nhiều người dùng, bạn có thể xem danh sách file crontab của họ bằng cách nhập lệnh sau:

crontab -u username -l

Bạn cũng có thể dễ dàng chỉnh sửa job đã lên lịch của người dùng khác bằng cách nhập lệnh crontab sau:

sudo su crontab -u username -e

Để tự cấp cho mình đặc quyền root, bạn hãy thêm sudo su vào đầu lệnh. Một số lệnh chỉ có người dùng root có thể thực thi.

Để xóa tất cả các task đã lên lịch trong file crontab và bắt đầu làm mới, bạn hãy nhập lệnh sau:

crontab -r

Ngoài ra, dòng lệnh dưới đây cũng giống với crontab -r , tuy nhiên nó sẽ xuất hiện một nhắc nhở để người dùng lựa chọn yes/no trước khi xóa crontab:

crontab -i

Ngoài crontab, người dùng root cũng có thể thêm cron job đến thư mục etc/cron.d. Nó phù hợp nhất để chạy các tập lệnh được cài đặt và cập nhật tự động.

>>> Xem thêm: Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn

Lưu ý rằng người dùng thêm cron job vào thư mục này phải có quyền truy cập root và tuân thủ các quy ước đặt tên của run-part.

Ngoài ra, người dùng root có thể di chuyển các tập lệnh của họ vào các thư mục sau để lên lịch thực thi:

  • /etc/cron.hourly/ – Chạy tất cả các tập lệnh mỗi giờ một lần.
  • /etc/cron.daily/ – Chạy mỗi ngày một lần.
  • /etc/cron.weekly/ – Chạy mỗi tuần một lần.
  • /etc/cron.monthly/ – Chạy mỗi tháng một lần.

3. Cách chỉnh sửa Cron Job với các tùy chọn đặc biệt

Bên cạnh việc sử dụng các dấu sao (*) trong crontab, Cron cũng hỗ trợ một số ký tự đặc biệt khác để tạo các lịch trình phức tạp hơn:

  • */5: Lặp lại mỗi 5 đơn vị (phút, giờ, ngày, v.v.). Ví dụ, */5 * * * * sẽ chạy công việc mỗi 5 phút.
  • 1-5: Chạy trong một phạm vi cụ thể. Ví dụ, 1-5 * * * * sẽ chạy vào 1 giờ sáng đến 5 giờ sáng mỗi ngày.
  • 1,3,5: Chạy vào các thời điểm cụ thể. Ví dụ, 1,3,5 * * * * sẽ chạy vào phút thứ 1, 3 và 5 của mỗi giờ.
  • L: Dùng để chỉ ngày cuối cùng trong tháng hoặc ngày cuối cùng trong tuần. Ví dụ, L * * * * sẽ chạy vào ngày cuối cùng của mỗi tháng.
  • W: Chạy vào ngày làm việc gần nhất. Ví dụ, 15W sẽ chạy vào ngày làm việc gần nhất của tháng nếu ngày 15 không phải là ngày làm việc.

4. Lỗi thường gặp và cách khắc phục

  1. Cron Job không thực thi đúng giờ:

    • Đảm bảo rằng bạn đã sử dụng đúng cú pháp trong crontab.
    • Kiểm tra logs của Cron để xem liệu có lỗi gì xảy ra:
      bash
      grep CRON /var/log/syslog
  2. Script không thực thi:

    • Kiểm tra quyền thực thi của script (chmod +x).
    • Đảm bảo bạn sử dụng đường dẫn tuyệt đối cho các file và lệnh trong script.
  3. Cron Job không gửi email thông báo:

    • Mặc định, Cron sẽ gửi email cho người dùng khi công việc hoàn thành hoặc có lỗi. Nếu không nhận được email, kiểm tra cấu hình thư của hệ thống.

Kết luận

Cron Job là một công cụ mạnh mẽ và thiết yếu để tự động hóa các tác vụ trong hệ thống Linux/Unix. Việc hiểu rõ cách cấu hình và sử dụng Cron Job giúp bạn tiết kiệm thời gian và công sức, đồng thời đảm bảo rằng các công việc quan trọng được thực hiện đúng giờ mà không cần sự can thiệp của con người. Bằng cách làm quen với cú pháp và các tùy chọn của Cron, bạn sẽ có thể quản lý hệ thống hiệu quả hơn và tối ưu hóa các quy trình làm việc tự động.

Trong bài viết trên, FUNiX vừa giới thiệu cho các bạn về khái niệm và các hoạt động cơ bản của cron job. Tiếp tục tìm hiểu về cú pháp, các chuỗi đặc biệt và quyền của Cron trong bài viết tiếp theo nhé.

>>> Nếu bạn đang có nhu cầu học lập trình trực tuyến, tìm hiểu ngay tại đây:

>>> Xem thêm bài viết:

Đại học trực tuyến? Tại sao nên chọn học đại học trực tuyến thay vì đại học offline?

5 điều có thể bạn chưa biết về học lập trình trực tuyến FUNiX

Review khóa học trực tuyến FUNiX FPT đang được nhiều bạn trẻ lựa chọn

FUNiX đào tạo lập trình trực tuyến cung cấp nhân sự tập đoàn FPT

5 Điểm đáng chú ý tại khóa học lập trình trực tuyến FPT – FUNiX

Phạm Thị Thanh Ngọc (theo Hostinger )

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        

yêu cầu gọi lại