<![CDATA[Latest posts for the topic "Sơ lược về crontab"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Sơ lược về crontab 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 
]]>
/hvaonline/posts/list/20066.html#119373 /hvaonline/posts/list/20066.html#119373 GMT
Sơ lược về crontab 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! ]]>
/hvaonline/posts/list/20066.html#119394 /hvaonline/posts/list/20066.html#119394 GMT
Sơ lược về crontab /hvaonline/posts/list/20066.html#189302 /hvaonline/posts/list/20066.html#189302 GMT Sơ lược về crontab 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 ??? ]]>
/hvaonline/posts/list/20066.html#206700 /hvaonline/posts/list/20066.html#206700 GMT
Sơ lược về crontab

M@z wrote:
Trong ubuntu em làm theo hướng dẫn của pác .................. sao không có gì hết vậy ???  
Có lẽ chưa save properly remove .selected_editor chọn nano ctrl+x sau khi edit save file nên tạo log cho cron ví dụ: ~# touch /var/log/mycron.log ~#crontab -e tạo 1 file để cron /root/file/cron.sh dán cái này vô */1 * * * * sh /root/file/cron.sh >> /var/log/mycron.log 2>&1 save lại, file trên chạy 1 phút 1 lần theo dõi xem cron có hoạt động ko, hay eror gì ~# tail -f /var/log/mycron.log ngồi chờ 1 phút coi. Không cần phải khởi động lại cron mỗi lần add crontab ]]>
/hvaonline/posts/list/20066.html#206759 /hvaonline/posts/list/20066.html#206759 GMT
Sơ lược về crontab /hvaonline/posts/list/20066.html#209463 /hvaonline/posts/list/20066.html#209463 GMT Sơ lược về crontab

thirellouma wrote:
hay quá, topic đây rồi. Bạn cho mình hỏi cái là mỗi lần crontab -e có thể tạo nhiều lịch ko? vd như mình tạo lịch cho nó chạy 2 script và 2 thời điểm khác nhau ý :D cảm ơn nhiều nhiều nhé 
Được, mỗi cái bạn viết trên một dòng.]]>
/hvaonline/posts/list/20066.html#209465 /hvaonline/posts/list/20066.html#209465 GMT
Sơ lược về crontab iptables -A INPUT -j QUEUE  khi em dùng lệnh sh test.sh thì chạy bình thường. Nhưng dùng crontab thì theo cách của anh nora báo là test.sh: line2 iptables: command not found ]]> /hvaonline/posts/list/20066.html#210534 /hvaonline/posts/list/20066.html#210534 GMT Sơ lược về crontab

actuladn wrote:
crontab có thể chạy file tạo ra rule cho iptables không vậy anh?em có file test.sh có nội dung sau:
iptables -A INPUT -j QUEUE 
khi em dùng lệnh sh test.sh thì chạy bình thường. Nhưng dùng crontab thì theo cách của anh nora báo là test.sh: line2 iptables: command not found  
Viết trực tiếp lệnh trên vào trong cron table hoặc nếu để trong 1 file script thì thêm #!/bin/bash vào đầu file.]]>
/hvaonline/posts/list/20066.html#210545 /hvaonline/posts/list/20066.html#210545 GMT
Sơ lược về crontab

Crunch wrote:

actuladn wrote:
crontab có thể chạy file tạo ra rule cho iptables không vậy anh?em có file test.sh có nội dung sau:
iptables -A INPUT -j QUEUE 
khi em dùng lệnh sh test.sh thì chạy bình thường. Nhưng dùng crontab thì theo cách của anh nora báo là test.sh: line2 iptables: command not found  
Viết trực tiếp lệnh trên vào trong cron table hoặc nếu để trong 1 file script thì thêm #!/bin/bash vào đầu file. 
bỏ dòng trắng (Blank line) edit bằng nano ]]>
/hvaonline/posts/list/20066.html#210546 /hvaonline/posts/list/20066.html#210546 GMT
Sơ lược về crontab

nora wrote:

Crunch wrote:

actuladn wrote:
crontab có thể chạy file tạo ra rule cho iptables không vậy anh?em có file test.sh có nội dung sau:
iptables -A INPUT -j QUEUE 
khi em dùng lệnh sh test.sh thì chạy bình thường. Nhưng dùng crontab thì theo cách của anh nora báo là test.sh: line2 iptables: command not found  
Viết trực tiếp lệnh trên vào trong cron table hoặc nếu để trong 1 file script thì thêm #!/bin/bash vào đầu file. 
bỏ dòng trắng (Blank line) edit bằng nano  
Báo vậy do bác ấy để trống line 1, viết câu lệnh ở line 2. Xoá đi thì nó lại báo lỗi ở line 1.]]>
/hvaonline/posts/list/20066.html#210561 /hvaonline/posts/list/20066.html#210561 GMT
Sơ lược về crontab /hvaonline/posts/list/20066.html#210563 /hvaonline/posts/list/20066.html#210563 GMT Sơ lược về crontab

actuladn wrote:
hihi!!! file em có 1 dòng ah, em dùng vi để delete khoảng trắng luôn. mỗi lần em post lên hỏi thì lại làm được. Nhưng em không hiểu tại sao với 1 dòng như trên khi thực hiện bằng lệnh thì chạy bình thường. Nhưng khi chạy crontab thì nó báo là không tìm thấy iptables. Và cần phải định nghĩa iptables cho nó Dù sao cũng cám ơn mọi người nhiều 
cron ko chạy các lệnh từ shell mà phải từ path/to/command í dụ /usr/bin/* trong cron em có thể tìm iptables command bằng cách user@host~#which iptables out put tương tự /sbin/iptables thay cái path này vào trong cron tab. thay vì chỉ iptables]]>
/hvaonline/posts/list/20066.html#210574 /hvaonline/posts/list/20066.html#210574 GMT
Sơ lược về crontab /hvaonline/posts/list/20066.html#210798 /hvaonline/posts/list/20066.html#210798 GMT Sơ lược về crontab

nora wrote:

M@z wrote:
Trong ubuntu em làm theo hướng dẫn của pác .................. sao không có gì hết vậy ???  
Có lẽ chưa save properly remove .selected_editor chọn nano ctrl+x sau khi edit save file nên tạo log cho cron ví dụ: ~# touch /var/log/mycron.log ~#crontab -e tạo 1 file để cron /root/file/cron.sh dán cái này vô */1 * * * * sh /root/file/cron.sh >> /var/log/mycron.log 2>&1 save lại, file trên chạy 1 phút 1 lần theo dõi xem cron có hoạt động ko, hay eror gì ~# tail -f /var/log/mycron.log ngồi chờ 1 phút coi. Không cần phải khởi động lại cron mỗi lần add crontab  
mình có file shell backup: ftpbackup.sh nội dung: #!/bin/bash USER='user' PASS='123456' SERVER='192.168.1.4' SOURCE='/duongdan/folderbackup' lftp - u $USER,$PASS $SERVER <<EOF mirror -R $SOURCE EOF nội dung crontab -e */1 * * * * /bin/bash /duongdan/runcron/ftpbackup.sh >> /duongdan/runcronlog/filecron.log 2>&1 thì xem file log báo lỗi line 8 lftp: command not found kiểm tra lftp: whereis lftp trả về /usr/local/bin/lftp /usr/local/etc/lftp.conf /usr/local/lib/lftp ftpserver máy 192.168.1.4 chạy tốt đang bó tay với lỗi này rất mong các huynh cứu giúp. cảm ơn nhiều]]>
/hvaonline/posts/list/20066.html#232427 /hvaonline/posts/list/20066.html#232427 GMT
Sơ lược về crontab /hvaonline/posts/list/20066.html#232429 /hvaonline/posts/list/20066.html#232429 GMT Sơ lược về crontab Code:
0 15 * * 1,4 sh /mnt/data/linux/code/backupbookmarks.sh
0 15 * * 1,4 sh /usr/bin/test.sh
]]>
/hvaonline/posts/list/20066.html#256769 /hvaonline/posts/list/20066.html#256769 GMT
Sơ lược về crontab
Cái posting time của HVA có vẻ như bị trục trặc?? ]]>
/hvaonline/posts/list/20066.html#256865 /hvaonline/posts/list/20066.html#256865 GMT
Sơ lược về crontab /hvaonline/posts/list/20066.html#256915 /hvaonline/posts/list/20066.html#256915 GMT