close

Crontab là gì? Hướng dẫn sử dụng Crontab Linux

Tác giả: TinoHost Ngày cập nhật: 03/01/2022 Chuyên mục: Webmasters
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

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-la-gi

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:

crontab-la-gi

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
crontab-la-gi

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!

Chia sẻ một chút thông tin về bạn. Những thông tin này có thể được công khai.

Xem thêm bài viết

Bài viết liên quan

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é, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886