Bài viết này sẽ giới thiệu đến bạn về Crontab và Cách Hoạt Động Và Cấu Trúc Của Crontab. Nếu bạn cần hỗ trợ, xin vui lòng liên hệ VinaHost qua Hotline 1900 6046 ext.3, email về support@vinahost.vn hoặc chat với VinaHost qua livechat https://livechat.vinahost.vn/chat.php.
1. Giới thiệu chung
Chương này sẽ trình bày các nội dung: Tổng quan về Crontab; Cách hoạt động và Cấu trúc của Crontab; Cách sử dụng Crontab.
2. Giới thiệu về Crontab
Crontab được viết tắt từ Cron Table là chương trình bao gồm một bảng biểu chứa các tác vụ xử lý được thực hiện lặp đi lặp lại, một cách tự động bằng cách lên lịch hẹn thực thi các tác vụ đó, giúp cải thiện hiệu suất làm việc và tiết kiệm thời gian.
Khi sử dụng Crontab ta có thể tạo những tác vụ chạy vào những giờ cụ thể đặt trước, như vào giờ nào trong ngày, vào giờ nào trong ngày vào thứ mấy trong tuần… vào những công việc mang tính chất lặp đi lặp lại như Backup file vào mỗi tối chủ nhật hàng tuần.
3. Cách hoạt động và cấu trúc của Crontab
Về bản chất Crontab chỉ là một file text và thường nằm ở thư mục /var/spool/cron. Không thể dùng các phần mềm edit để chỉnh sửa trực tiếp mà cách duy nhất để sử dụng là dùng lệnh Crontab. Một số lệnh Crontab thường dùng:
- # crontab -e: tạo, chỉnh sửa các crontab
- # crontab -l: Xem các Crontab đã tạo
- # crontab -r: xóa file 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 được kí hiệu bằng dấu * và cuối cùng sẽ là file script hoặc lệnh thực thi.

Hình biểu diễn cấu trúc của Crontab

Hình biểu diễn giá trị thời gian của Crontab
4. Cách sử dụng Crontab
Cron hoạt động dựa trên các lệnh được chỉ định trong cron table (crontab). Mỗi người dùng, kể cả người dùng root, đều có thể có một file cron khác nhau được lưu trong / var / spool / cron và thư mục / etc / cron. d và tệp / etc / anacrontab
Để tạo một file cron mới dùng lệnh “crontab -e”, lệnh này cũng có thể được dùng để chỉnh sửa một file cron. Không nên sử dụng các trình editor tiêu chuẩn (như Vi, Vim, Emacs, Nano,…) để chỉnh sửa file cron. Bởi vì sử dụng lệnh crontab không chỉ cho phép bạn chỉnh sửa lệnh, nó còn khởi động lại crond daemon khi ta lưu và thoát trình editor. Lệnh crontab sử dụng Vi làm editor cơ bản của nó, vì Vi luôn luôn có sẵn trên các phiên bản hệ điều hành Linux.
Các file cron sẽ trống, nên các lệnh phải được thêm từ đầu. Dưới đây là một ví dụ về định nghĩa các công việc trong file cron:
- Chạy script 30 phút 1 lần: 30 * * * * command
- Chạy script vào 3 giờ sáng mỗi ngày: 0 3 * * * command
- Tạo một tác vụ hoạt động vào một giờ cụ thể: 00 02 19 05 * /home/ninhpq.cf/backup
Giải thích:
00 – phút 00
- – lúc 2 giờ
19– ngày mùng 19
05– tháng 05
*-hàng ngày trong tuần
- Tạo 1 tác vụ thực hiện 2 lần trong một ngày: 00 06,02 * * * /home/cf/backup
- Tạo một tác vụ chỉ thực hiện vào các giờ cụ thể và từ thứ 2 đến thứ 6: 00 06-02 * * 1-5 /home/cf/backup
Một số giá trị thời gian đặc biệt cho Crontab
| Keyword | Equivalent | |---------|---------------------| | @yearly | 0 0 1 1 * | | @daily | 0 0 * * * | | @hourly | 0 * * * * | | @reboot | chạy lúc khởi động. |
- Tạo một tác vụ chạy vào phút đầu tiên của tháng: @monthly /home/cf/backup
- Tạo một tác vụ chạy vào phút đầu tiên của ngày: @daily /home/cf/backup
- Tạo một tác vụ khi khởi động lại: @reboot CMD
5. Anacron
Chương trình anacron thực hiện các chức năng tương tự như crond. Nhưng nó có thể chạy các job đã bị bỏ qua, chẳng hạn như khi máy tính đã tắt hoặc không thể chạy job trong một thời gian nhất định.
Ngay sau khi máy tính được khởi động, anacron sẽ kiểm tra xem các job đã được cấu hình có bỏ lỡ lịch chạy nào không. Nếu có, các job này sẽ được chạy ngay lập tức. Nhưng các job sẽ chỉ chạy một lần, bất kể bao nhiều lần nó đã lỡ lịch,
Bên cạnh đó, chương trình anacron cung cấp một số tùy chọn dễ dàng để chạy các task được lên lịch thường xuyên. Chỉ cần cài đặt các script vào trong thư mục /etc/cron.[hourly|daily|weekly|monthly], tùy vào tần suất ta muốn các job chạy.
[root@ninhpq ~]# vi /etc/cron. cron.d/ cron.daily/ cron.deny cron.hourly/ cron.monthly/ cron.weekly/
Chúc bạn thực hiện thành công!
THAM KHẢO CÁC DỊCH VỤ TẠI VINAHOST
>> SERVER – COLOCATION – Dịch vụ CDN
>> Thuê Cloud Server – VPS
>> HOSTING
>> WEBSITE
>> TÊN MIỀN
>> GeoTrust SSL – LICENSE