Crontab là gì? Hướng dẫn sử dụng Crontab Linux
Thịnh Văn Hạnh 30/11/2022 1774 Lượt xem Chia sẻ bài viết
Bạn đang chán nản khi phải làm những việc có tính lặp lại trên hệ điều hành Linux và các bản phân phối của Linux? Với Crontab, bạn sẽ không còn phải lo điều này. Vậy, Crontab là gì? Crontab hoạt động ra sao và cách để sử dụng Crontab như thế nào? Cùng BKNS tham khảo thông qua bài viết này nhé.
Tóm Tắt Bài Viết
Tìm hiểu về Crontab
Crontab là gì?
Hiểu đơn giản, Crontab (Cron Table) là một daemon lập lịch công việc dựa trên thời gian theo chỉ định. Nó có mặt trong các hệ điều hành như Unix, Linux và các bản phân phối của Linux.
Crontab có khả năng chạy độc lập trong nền, lịch công việc được lập với cron (Cron schedule) và những công việc sẽ được gọi là “Cron Job”. Sau khi lập lịch, Cron Job sẽ tự động thực hiện theo thời gian chỉ định và thường là các tác vụ liên quan đến bảo trì định kỳ.
Crontab hoạt động như thế nào?
Cron Schedule thực chất là một file text và thường nằm ở vị trí ở /var/spool/cron. Không thể dùng các tệp thông thường hoặc chỉnh sửa trực tiếp bằng các phần mềm edit. Cách duy nhất bạn có thể sử dụng là dùng lệnh Crontab.
Để hiểu được cách Crontab hoạt động, chúng ta sẽ tìm hiểu về cấu trúc của một Crontab trước tiên.
Cấu trúc của một Crontab sẽ bao gồm 5 trường xác định thời gian và cuối cùng sẽ là lệnh để chạy theo định kỳ như sau:
Ví dụ, bạn muốn lưu trữ dữ liệu vào giữa tuần, đầu tháng và giữa tháng, bạn có thể thực hiện lệnh như sau:
- 0 0 1,15 * 3 *
Lệnh có nghĩa là vào lúc 00:00 ngày 1 và 15 của tháng và vào thứ 4.
Hướng dẫn sử dụng Crontab Linux
Trên thị trường có rất nhiều bản phân phối của Linux. Bài viết này BKNS sẽ hướng dẫn phiên bản phổ biến nhất và có nhiều người sử dụng nhất là Ubuntu 18.04.
Điều kiện để sử dụng
Để sử dụng được Crontab, bạn sẽ cần phải đáp ứng được những yêu cầu tối thiểu như sau:
- Hệ điều hành Ubuntu 18.04 trở lên và có thể là máy cục bộ cá nhân, máy ảo hoặc máy chủ riêng.
- Người dùng với quyền với quyền root hoặc quản trị viên cao cấp.
Hướng dẫn cài đặt Crontab
Phần lớn các bản phân phối của Linux đều có sẵn các dạng cron cài đặt theo mặc định. Trong trường hợp bạn sử dụng Ubuntu và chưa cài đặt cron, bạn có thể cài đặt bằng APT lần lượt từng lệnh như sau:
- sudo apt update
- sudo apt install cron
- sudo systemctl enable cron
Nếu kết quả trả về trên màn hình của bạn là:
- Synchronizing state of cron.service with SysV service script with /lib/systemd/systemd-sysv-install.
- Executing: /lib/systemd/systemd-sysv-install enable cron
Đến đây nghĩa là bạn đã cài đặt Crontab trên Ubuntu thành công.
Cách sử dụng Crontab
Tiếp nối phần “Crontab hoạt động ra sao?”, chúng ta sẽ có một bảng chứa các giá trị trong công thức để bạn có thể áp dụng được như sau:
Trường dữ liệu | Giá trị cho phép sử dụng |
phút | 0-59 |
giờ | 0-23 |
Ngày trong tháng | 1-31 |
tháng | 1-12 hoặc JAN-DEC |
Ngày trong tuần | 0-6 hoặc SUN-SAT |
Để sử dụng, bạn chỉ cần áp dụng những giá trị trên vào cấu trúc:
Phút – giờ – ngày – trong tháng – tháng – ngày trong tuần – lệnh để chạy
Trong phần hướng dẫn sử dụng Crontab Linux, chúng tôi sẽ lượt phần lệnh để chạy do chúng tôi không biết bạn sẽ sử dụng lệnh nào để thực thi.
Ngoài ra, bạn có thể tham khảo thêm một số ví dụ:
- * * * * * – Chạy lệnh mỗi phút.
- 12 * * * * – Chạy lệnh 12 phút sau mỗi giờ.
- 0,15,30,45 * * * * – Chạy lệnh sau mỗi 15 phút.
- */15 * * * * – Chạy lệnh sau mỗi 15 phút.
- 0 4 * * * – Chạy lệnh mỗi ngày vào lúc 4:00 sáng.
- 0 4 * * 2-4 – Chạy lệnh vào lúc 4:00 sáng Thứ Ba, Thứ Tư và Thứ Năm hàng tuần.
- 20,40 */8 * 7-12 * – Chạy lệnh vào các phút 20, 40 của giờ thứ 8 hàng ngày của 6 tháng cuối năm từ tháng 7 cho đến hết tháng 12.
Quản lý đầu ra công việc của Crontab
Hầu hết tiến trình của Crontab sẽ thực hiện dưới nền. Do đó, nếu muốn kiểm tra lệnh đã thực hiện hay chưa, có lỗi gì xảy ra hay không sẽ là cả một vấn đề với người dùng phổ thông.
Tuy nhiên, chúng ta có thể sử dụng Crontab để báo cáo về việc Crontab làm thông qua email.
Nhưng trước tiên, bạn sẽ cần phải có một email server hoặc dịch vụ mail transfer đã cài đặt sẵn vào trong hosting/ server của bạn.
Một số cú pháp đặc biệt trong Crontab
Để công việc đơn giản, viết code dễ dàng hơn, dưới đây là một số lệnh viết tắt mà BKNS tổng hợp để thay thế cho câu lệnh của Crontab giúp bạn tiện sử dụng:
Lệnh viết tắt | Viết tắt cho lệnh |
@hourly | 0 * * * * |
@daily | 0 0 * * * |
@weekly | 0 0 * * 0 |
@monthly | 0 0 1 * * |
@yearly | 0 0 1 1 * |
@reboot | lệnh chạy khi máy chủ khởi động |
Cách để tạo lệnh Crontab siêu nhanh
Bạn đang gấp hoặc không thích tìm hiểu nội dung dài dòng và bạn đã “skip” cả đoạn trên để đọc phần này? Vậy, bạn chỉ cần truy cập vào Crontab guru và nhập theo chỉ dẫn là code Crontab đã có sẵn cho bạn copy.
Ví dụ, bạn muốn đặt thời gian là vào lúc 22:00 vào tất cả các ngày trong tuần từ thứ Hai đến thứ Sáu, chúng ta sẽ có code Crontab như sau:
- 0 22 * * 1-5
Ngoài ra, bạn còn có thể sử dụng Crontab guru để kiểm tra xem lệnh của bạn viết ra đã đúng hay chưa và họ có phần mô tả thông tin phía trên để bạn kiểm chứng.
Kết luận
Vậy là đến đây bạn đã hiểu được Crontab là gì, cách sử dụng Crontab trong Linux/ Ubuntu. Hy vọng rằng những kiến thức này sẽ hỗ trợ bạn trong việc quản lý hosting cũng như thực hiện các công việc khác hiệu quả hơn.
Ghé thăm BKNS để đọc thêm nhiều bài viết hữu ích khác.
[mautic type=”form” id=”6″]
Tham khảo thêm:
Tìm hiểu về Whois Protect – Giải pháp bảo vệ tên miền hiệu quả
Băng thông không giới hạn là gì?
Web Scraping Bot là gì? Cách phát hiện và ngăn chặn Web Scraping Bot có hại