02/10/2018, 18:06

Sơ lược về crontab

Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy. 1. Cron là gì? Cron là một tiện ích cho phép thực hiện các tác ...

Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy.

1. Cron là gì? 

Cron là một tiện ích cho phép thực hiện các tác vụ một cách tự động theo định kỳ, ở chế độ nền của hệ thống. Crontab (CRON TABle) là một file chứa đựng bảng biểu (schedule) của các entries được chạy. 

2. Cron làm việc thế nào? 

Một cron schedule đơn giản là một text file. Mỗi người dùng có một cron schedule riêng, file này thường nằm ở /var/spool/cron. Crontab files không cho phép bạn tạo hoặc chỉnh sửa trực tiếp với bất kỳ trình text editor nào, trừ phi bạn dùng lệnh crontab. Một số lệnh thường dùng: 

CODE

crontab -e: tạo hoặc chỉnh sửa file crontab 
crontab -l: hiển thị file crontab 
crontab -r: xóa file crontab 




3. Cấu trúc của crontab 

Một crontab file có 5 trường xác định thời gian, cuối cùng là lệnh sẽ được chạy định kỳ, cấu trúc như sau: 
Code: 

CODE

*     *     *     *     *     command to be executed 
-     -     -     -     - 
|     |     |     |     | 
|     |     |     |     +----- day of week (0 - 6) (Sunday=0) 
|     |     |     +------- month (1 - 12) 
|     |     +--------- day of month (1 - 31) 
|     +----------- hour (0 - 23) 
+------------- min (0 - 59)



Nếu một cột được gán ký tự *, nó có nghĩa là tác vụ sau đó sẽ được chạy ở mọi giá trị cho cột đó. 

4. Ví dụ 

Giả sử tôi viết một đoạn script backup bookmarks trong Firefox như sau: 
Code: 

CODE

#!/bin/bash 
date=`date +%F` 

cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html 




sau đó tôi cho script này chạy định kỳ vào 15h thứ Hai và thứ Năm hàng tuần bằng cách tạo một file crontab như sau:
Code: 

CODE

$ crontab -e 
0 15 * * 1,4 sh /mnt/data/linux/code/backupbookmarks.sh



Cuối cùng, nhớ khởi động lại cron daemon: 
Code: 

CODE

/etc/init.d/crond restart 



ps: Để muốn "test" ngay xem crontab nó có hoạt động không, bạn có thể sửa lại đoạn script trên một chút: 
Code: 

CODE

#!/bin/bash 
date=`date +%F-%H-%M-%S` 

cp ~/.mozilla/firefox/13kee53o.default/bookmarks.html /mnt/data/BACKUP/bookmarks-$date.html 



và file crontab bạn sẽ cho backup liên tục theo từng phút như sau: 

CODE

0-59 * * * * sh /mnt/data/linux/code/backupbookmarks.sh 
Bình luận
0