[Question] Sơ lược về crontab |
15/03/2008 05:13:42 (+0700) | #1 | 119373 |
|
quanta
Moderator
|
Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
|
|
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:
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:
* * * * * 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:
#!/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:
$ 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:
/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:
#!/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:
0-59 * * * * sh /mnt/data/linux/code/backupbookmarks.sh
|
|
Let's build on a great foundation! |
|
|
|
[Question] Sơ lược về crontab |
15/03/2008 07:28:12 (+0700) | #2 | 119394 |
SemiNoob
Member
|
0 |
|
|
Joined: 06/03/2008 01:27:31
Messages: 7
Offline
|
|
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:
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:
* * * * * 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 đó.
Sorry ngắt lời bạn tí xíu. Bạn có thể chỉnh sửa file crontab trong Linux luôn bằng cách xài Software GNU Midnight Commander.
Ngoài ra bạn cũng có thể tạo File crontab (không có đuôi) trên máy Windows (cách này thường dùng trong trường hợp máy chủ là Linux máy con là Windows) bằng chương trình NOTEPAD rồi dùng Software WinSCP chuyển qua máy Linux.
Lưu ý sau khi chuyển qua máy Linux phải chạy lênh "dos2unix 'pathfile'" để chuyển sang loại file Linux đọc được.
Thân!
|
|
|
|
|
[Question] Sơ lược về crontab |
09/08/2009 22:40:04 (+0700) | #3 | 189302 |
|
taivn07
Member
|
0 |
|
|
Joined: 01/04/2008 12:58:29
Messages: 1
Offline
|
|
thank... |
|
|
[Question] Sơ lược về crontab |
12/03/2010 12:32:35 (+0700) | #4 | 206700 |
|
M@z
Member
|
0 |
|
|
Joined: 26/06/2006 19:55:36
Messages: 20
Offline
|
|
Trong ubuntu em làm theo hướng dẫn của pác
Code:
ubuntu@ubuntu-laptop:~$ su
Password:
root@ubuntu-laptop:/home/ubuntu# crontab -e
Code:
# m h dom mon dow command
1 * * * * sh /home/ubuntu/shell.sh
[Ctrl + o] --> lưu lại
Khởi động lại cron
Code:
root@ubuntu-laptop:/home/ubuntu# /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart
Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the restart(8) utility, e.g. restart cron
cron start/running, process 2269
tiếp
Code:
root@ubuntu-laptop:/home/ubuntu# crontab -l
no crontab for root
root@ubuntu-laptop:/home/ubuntu#
sao không có gì hết vậy ??? |
|
|
|