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? Đừng lo, chúng ta đã có Crontab hỗ trợ. Vậy, Crontab là gì? Crontab hoạt động ra sao và cách để sử dụng Crontab như thế nào? Tất cả sẽ có trong bài viết này của Tino Group nhé!
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 và 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, chúng ta sẽ lập lịch công việc 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 ra sao?
Nghe phần giải thích về Crontab, có lẽ bạn nghĩ Cron Schedule sẽ là một thứ gì đó rất hấp dẫn đúng không?
Không, Cron Schedule chỉ là một file text và thường nằm ở vị trí là ở /var/spool/cron. Bạn sẽ 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 ra sao nhé!
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 * /tino.org/backup
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. Do đó, Tino Group 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 nhé! Với những lệnh trong bài, bạn vẫn có thể áp dụng được cho những bản phân phối khác hoặc dùng phương pháp “bí mật” Tino Group sẽ hướng dẫn cuối bài để bạn không cần biết code vẫn có code Crontab để dùng!
Đ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ủa bạ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
Vậy, xin chúc mừng bạn đã thực hiệ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, Tino Group 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 nhé!
Ngoài ra, bạn có thể tham khảo thêm một số ví dụ như sau:
- * * * * * – 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.
Lưu ý: bài viết này được viết vào tháng 12 năm 2024, nếu có thay đổi trong tương lai hoặc bạn không thể áp dụng các lệnh này cho phiên bản Crontab cũ hơn, bạn có thể sử dụng công cụ Tino Group sẽ “bật mí” cuối bài để kiểm tra nhé!
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 đấy!
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.
Sau đó, bạn chỉ cần thêm lệnh:
- MAILTO=”thunghiem@tino.org”
Cùng các nội dung cần thiết để báo cáo cho bạn biết nhé! Thật quá tiện lợi đúng không nào?
Một số cú pháp đặc biệt trong Crontab
Để công việc đơn giản hơn, viết code dễ dàng hơn, Tino Group đã tổng hợp một số lệnh viết tắt thay thế cho câu lệnh của Crontab để bạn sử dụng như sau: 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. Thật tuyệt vời đúng không nào?
Vậy là chúng ta đã tìm hiểu xong về Crontab là gì cũng như cách để sử dụng Crontab trong Linux/ Ubuntu rồi đấy! Tino Group hi vọng rằng những kiến thức này sẽ hỗ trợ cho bạn trong công tác quản lý hosting và thực hiện những công việc khác tốt nhất! Chúc bạn thành công!
Bài viết có tham khảo từ: digitalocean, Crontab guru,…
Những câu hỏi thường gặp về Crontab
Các gói hosting của Tino Group có sẵn dịch vụ Crontab hay không?
Có, hosting của Tino Group có sẵn dịch vụ Crontab ngay trong bản điều khiển và thậm chí cả share hosting của chúng tôi cũng hỗ trợ Crontab để bạn dễ dàng sử dụng nhất!
Cách sử dụng Crontab của hosting tại Tino Group ra sao?
Để thao tác với Crontab trên hosting của Tino Group, bạn chỉ cần:
Truy cập vào Quản lý tài khoản hosting => Cron Jobs là bạn đã có thể sử dụng Crontab rồi đấy!
Nhưng, bạn sẽ không cần viết code! Tino Group có sẵn: Loại backup, command, các tùy chọn, các mốc thời gian đều được Việt hoá và sử dụng giao diện đồ hoạ để người dùng thoải mái nhất! Bạn có thể xem thêm hướng dẫn tại đây.
Có nên sử dụng Cronitor hay không?
- Nếu bạn muốn có sẵn một đội ngũ hỗ trợ trong việc giúp bạn thực các thao tác Crontab, Cronitor sẽ có ích rất nhiều.
- Đối với người quản trị hosting cơ bản và những doanh nghiệp thông thường sẽ không cần đến dịch vụ này và cũng rất ít sử dụng các lệnh Crontab.
Học thêm về Crontab ở đâu?
Với những nội dung như trên của Tino Group, những người dùng phổ thông đã có thể sử dụng Crontab đủ để phục vụ cho những tác vụ cơ bản. Nếu bạn muốn thực hiện những tác vụ chuyên sâu hơn hay tìm hiểu sâu hơn, tài liệu của: Oracle Help Center, DreamHost Knowledge Base, Ask Ubuntu,… sẽ hỗ trợ bạn nhiều đấy!