歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> SHELL編程

crontab定時器(包括執行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