TÌM HIỂU VỀ CRONTAB

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

TÌM HIỂU VỀ CRONTAB

TÌM HIỂU VỀ CRONTAB

1.1 Giới thiệu chương.


Chương này sẽ trình bày: Tìm hiểu tổng quan về Crontab; Cách hoạt động và Cấu
trúc của Crontab; Cách sử dụng Crontab.
1.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.
1.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.
TÌM HIỂU VỀ CRONTAB

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


1.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:
TÌM HIỂU VỀ CRONTAB

- 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
02 – 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/ninhpq.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/ninhpq.cf/backup

Một số giá trị thời gian đặt 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/ninhpq.cf/backup
- Tạo một tác vụ chạy vào phút đầu tiên của ngày: @daily
/home/ninhpq.cf/backup
- Tạo một tác vụ khi khởi động lại: @reboot CMD
TÌM HIỂU VỀ CRONTAB

1.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/

You might also like