Cron job là gì ? Hướng dẫn sử dụng cron tab

Cron là một chương trình được sử dụng để xử lý các tác vụ lặp lại trong quá trình chạy. Cron Job cho phép lên lịch cho một hành động cụ thể để thực hiện vào một thời điểm cụ thể và lặp đi lặp lại theo đó.

Cron job có ích như thế nào đối với chúng ta? Giả sử ứng dụng của bạn có chức năng lưu tạm file. Khi người dùng lưu tạm một file nhưng không sử dụng, sau một thời gian, thư mục lưu tạm sẽ trở nên đầy và chiếm dụng không gian lưu trữ. Trong trường hợp này, bạn cần một công việc tự động để dọn dẹp các file tạm thời sau mỗi 3 ngày. Vì vậy, với các tác vụ lặp lại và định kỳ như vậy, cron là giải pháp hoàn hảo.

Cron là một daemon, có nghĩa là nó hoạt động trong nền để thực hiện các tác vụ không yêu cầu tương tác từ người dùng. Trên Windows, một tiến trình chạy ngầm được gọi là dịch vụ đã quen thuộc với bạn.

File cron là một file văn bản đơn giản chứa các lệnh sẽ chạy vào thời gian cụ thể. File crontab mặc định của hệ thống nằm tại đường dẫn /etc/crontab và trong thư mục crontab /etc/cron.*. Chỉ có quản trị viên hệ thống mới có thể chỉnh sửa file crontab trên hệ thống.

Có Thể Bạn Quan Tâm :   Windows 10 Home Single Language là gì? Bạn cần biết những điều này trước khi tải về và cài đặt

Bạn có thể tạo và chỉnh sửa cron jobs bằng nhiều phương pháp khác nhau. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách làm bằng Linux Shell Prompt (Terminal).

Để chỉnh sửa file cron tab, bạn gõ lệnh sau: crontab -e.Nếu đây là lần đầu bạn mở crontab trên Linux của bạn, nó sẽ yêu cầu bạn chọn trình soạn thảo để làm việc với file này. Sau khi bạn chọn trình soạn thảo, một file như bên dưới sẽ hiển thị. Trong hình ví dụ bên dưới, chưa có cron job nào được lên lịch.

1. Cấu trúc cơ bản

Cron job cơ bản bao gồm 2 thành phần chính đó là: lịch trình (schedule) và lệnh (command). Đây là cách viết lệnh:

Cấu trúc cơ bản cron job

Trong đó:

  • schedule: là một chuỗi biểu thị thời gian, chúng ta sẽ tìm hiểu ý nghĩa của nó trong phần tiếp theo.
  • command: là lệnh sẽ được thực hiện, ví dụ: /bin/sh clear.sh

2. Cú pháp

Cú pháp của cron job được biểu thị như sau:

Cú pháp cron job

Tóm tắt:

  • Minute – chỉ định phút trong giờ mà lệnh sẽ chạy, trong khoảng từ 1 đến 59.
  • Hour – chỉ định giờ trong ngày mà lệnh sẽ chạy, trong khoảng từ 0 đến 23.
  • Day of the month – chỉ định ngày trong tháng mà lệnh sẽ chạy, trong khoảng từ 1 đến 31.
  • Month – chỉ định tháng trong năm mà lệnh sẽ chạy, trong khoảng từ 1 đến 12.
  • Day of the week – chỉ định ngày trong tuần mà lệnh sẽ chạy, trong khoảng từ 0 đến 7.
  • Command – lệnh mà bạn muốn chạy, ví dụ: /script/clean.sh
Có Thể Bạn Quan Tâm :   CS:GO: Tất tần tật về Skin vũ khí trong CS:GO mà bạn cần biết

Ngoài ra, cũng có các cú pháp chi tiết hơn như sau:

  • Dấu hoa thị (*) – biểu thị tất cả các tham số sẽ được lên lịch.
  • Dấu phẩy (,) – để chỉ định nhiều lần thực thi một lệnh.
  • Dấu gạch nối (-) – để chỉ định một khoảng thời gian thiết lập cho việc thực thi lệnh.
  • Dấu gạch chéo (/) – để tạo ra một khoảng thời gian nghỉ cụ thể.
  • Cuối cùng (L) – chỉ định ngày cuối cùng của tháng cho mục tiêu cụ thể. Ví dụ, 3L có nghĩa là thứ Tư cuối cùng trong tháng.
  • Ngày trong tuần (W) – chỉ định ngày trong tuần gần nhất. Ví dụ, 1W có nghĩa là nếu ngày 1 là ngày Thứ Bảy, lệnh sẽ chạy vào Thứ Hai (ngày 3).
  • **Hash (#) **- chỉ định ngày trong tuần, theo sau là một con số từ 1 đến 5. Ví dụ, 1#2 có nghĩa là Thứ Hai thứ hai trong tháng.
  • Dấu chấm hỏi (?) – để trống một phần tử trong lịch trình.
Có Thể Bạn Quan Tâm :   Weibo là gì? Cách đăng ký Weibo và cách sử dụng Weibo chi tiết, dễ hiểu

3. Ví dụ

Dưới đây là một số ví dụ về cách viết cron job:

Ví dụ cron job

  • Chạy vào 3 giờ hàng ngày: 0 3 * * * /script/clean.sh
  • Chạy vào 17:00 hàng tuần vào Chủ Nhật: 0 17 * * sun /scripts/clean.sh
  • Chạy mỗi 8 tiếng: 0 */8 * * * /scripts/clean.sh
  • Chạy mỗi 30 phút: */30 * * * * /script/clean.sh
  • Chạy vào mỗi 5 phút từ 5AM, bắt đầu 5:10AM: 10-59/5 5 * * * /script/clean.sh
  • Chạy vào tháng 1, 2 và 5 hàng năm: * * * 1,2,5 * /script/clean.sh
  • Chạy vào ngày đầu tiên của tháng: 0 0 1 * * /script/clean.sh

Ngoài ra, còn có cách viết ngắn gọn như sau:

  • Chạy hàng tháng: @monthly /script/clean.sh
  • Chạy hàng tuần: @weekly /script/clean.sh
  • Chạy hàng ngày: @daily /script/clean.sh

Bạn có thể tham khảo trang web https://crontab.guru để nhập cấu hình và nhận kết quả dưới dạng giải thích: “Every minute”, “At 00:00”,… dễ hiểu và rõ ràng.

Hy vọng qua bài viết này bạn đã hiểu hơn về cách cấu hình cron job. Cảm ơn bạn đã đọc bài viết và hãy tiếp tục ủng hộ chúng tôi trong các bài viết tiếp theo.

Back to top button