歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> crontab定時器(包括執行shell)

crontab定時器(包括執行shell)

日期:2017/3/1 17:15:48   编辑:SHELL編程

crontab定時器(包括執行shell) 今天在網上看到這篇不錯的教程,是介紹CronTab的,寫的很清楚。所以轉載過來,做個分享。 限制用戶使用crontab的文件有:/etc/cron.allow /etc/cron.deny 。 當使用crontab建立工作排程後,將被記錄到/var/spool/cron裡。 cron執行的每一項工作都被記錄到/varlog/cron裡去。 crontab參數: www.2cto.com -u:只有root才可能,幫其他用戶建立或移除工作排程。 -l:查閱crontab的工作內容
-r:移除所有的crontab的工作內容,移除一項,用-e編輯。 例1:每天12:00給root發信。 [root@lyy etc]# crontab -e #用vi編輯 0 12 * * * mail root -s "at 12:00" < /root/.bashrc 每項工作有六個字段分別是: 分鐘 小時 日期 月份 周 指令 0-59 0-23 1-31 1-12 0-7 指令 #0和7都代表星期天 輔助特殊字符: * (星號)代表任何時刻 ,(逗號)代表分隔時候。如3點與6點 就是3,6 -(減號)代表一段時間范圍內。如:3點到6點 就是3-6 /n(斜線)n代表數字,即每隔n單位。如每隔五分鐘,/5 例2:每隔3分鐘,在屏幕輸出字符
[root@lyy etc]# crontab -e [root@lyy etc]# crontab -l */3 * * * * echo "hello world !!!!!" > /dev/pts/0 #pts/0是用telnet的終端接口 查看一下記錄 www.2cto.com [root@lyy etc]# cat /var/log/cron Dec 12 20:27:01 lyy crond[9865]: (root) CMD (echo "hello world !!!!!" &gt; /dev/pts/0) Dec 12 20:30:01 lyy crond[9908]: (root) CMD (echo "hello world !!!!!" &gt; /dev/pts/0) 例3:每個星期三下午14:30分發送一個郵件給pc [root@lyy etc]# crontab -e 30 14 * * 3 mail pc -s "test" &lt; /home/text.txt crontab -e 是針對用戶的cron設計的,如果是系統例行性任務,只要編 輯/etc/crontab文件就可以了。
查看/etc/crontab內容 [root@lyy etc]# cat /etc/crontab SHELL=/bin/bash #接口 PATH=/sbin:/bin:/usr/sbin:/usr/bin #執行路徑搜尋 MAILTO=root #以mail發送者 HOME=/ #家目錄 # run-parts 01 * * * * root run-parts /etc/cron.hourly #每小時 02 4 * * * root run-parts /etc/cron.daily #每天 22 4 * * 0 root run-parts /etc/cron.weekly #每周日 42 4 1 * * root run-parts /etc/cron.monthly #每個月1號 取消不要的輸出項目:把輸出的結果以命令重導向到/dev/null 安全檢驗:由於一些木馬以例行命令方式值入,所以可以通過 檢查/var/log/cron來發現。 周與日月不可同時並存 如: www.2cto.com 30 12 11 9 5 root echo "just test " #這是錯誤的寫法。 本來以為九月十一號是星期五執行這個任務,但是系統可能會判定每個星期 五執行一次或每年九月十一號分別執行。 喚醒停機期間的工作任務 anacron anacron不能取代crontab,它存在目的是處理非24小時在線的linux系統的 crontab的執行。它是以天為單位或在開機後執行,它會檢查停機期間的 crontab並執行,然後就自動停止了。 linux命令: 建立任務crontab -e */1 * * * * echo 'ddd'/var/test.txt 一分鐘寫一次ddd到test.txt文件中 * * * */1 * sh /var/jboss-4.0.5.GA/server/default/log/temp/delete_log1.sh 一個月運行一次delete_log1.sh腳本 sh腳本(delete_log1.sh) dd=`date -d"1 month ago" +%y-%m` rm -vf /var/temp/log.20$dd-* 刪除當前時間的起一個月的匹配文件 作者 zreodown
Copyright © Linux教程網 All Rights Reserved