fileclear.sh
tamcdir=${HOME}/ora/user_projects/domains/tamc cd ${tamcdir} echo rm -f `ls heapdump*.phd` rm -f heapdump*.phd echo rm -f `ls javacore*.txt` rm -f javacore*.txt echo rm -f `ls Snap*.trc` rm -f Snap*.trc cd bin echo cp /dev/null nuhup.out cp /dev/null nuhup.out cd ${tamcdir}/pxbak echo rm -rf `ls 20*` rm -rf 20* cd ${tamcdir}/webapps/tamcx/fileLoad echo rm -f `find /weblogic/ora/user_projects/domains/tamc/webapps/tamcx/fileLoad/ -mtime +1` find /weblogic/ora/user_projects/domains/tamc/webapps/tamcx/fileLoad/ -mtime +1 -exec rm -f {} \;
task.crontab
#web服務(wù)端日志、臨時文件清算 10 1 * * * ksh $HOME/tools/clearweblogic.sh >>/weblogic/ora/user_projects/domains/tamc/webapps/tamcx/log/crontab.log 2>>/weblogic/ora/user_projects/domains/tamc/webapps/tamcx/log/crontab.log
task.null.crontab是1個沒有內(nèi)容的空文件
開啟定時任務(wù)
crontab /weblogic/tools/task.crontab
停止定時任務(wù)
crontab /weblogic/tools/task.null.crontab
crontab [-u username] [-l|-e|-r]
參數(shù):
-u: 只有root才能進行這個任務(wù),也即幫其他用戶新建/刪除crontab工作調(diào)度;
-e: 編輯crontab 的工作內(nèi)容;
-l: 查閱crontab的工作內(nèi)容;
-r: 刪除所有的crontab的工作內(nèi)容,若僅要刪除1項,請用-e去編輯。
范例1:用dmtsai的身份在每天的12:00發(fā)信給自己
crontab -e
#此時會進入vi的編輯界面讓你編輯工作。注意到,每項工作都是1行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 時 日 月 周 |《==============命令行=======================》|
代表意義 | 分鐘 | 小時 | 日期 | 月份 | 周 | 命令 |
數(shù)字范圍 | 0~59 | 0~23 | 1~31 | 1~12 | 0~7 | 就命令啊 |
周的數(shù)字為0或7時,都代表“星期天”的意思。另外,還有1些輔助的字符,大概有下面這些:
特殊字符 | 代表意義 |
*(星號) | 代表任什么時候刻都接受的意思。舉例來講,范例1內(nèi)那個日、月、周都是*,就代表著不論何月、何日的礼拜幾的12:00都履行后續(xù)命令的意思。 |
,(逗號) |
代表分隔時段的意思。舉例來講,如果要履行的工作是3:00與6:00時,就會是: 0 3,6 * * * command 時間還是有5列,不過第2列是 3,6 ,代表3與6都適用 |
-(減號) |
代表1段時間范圍內(nèi),舉例來講,8點到12點之間的每小時的20分都進行1項工作: 20 8⑴2 * * * command 仔細看到第2列變成8⑴2.代表 8,9,10,11,12 都適用的意思 |
/n(斜線) |
那個n代表數(shù)字,即是每隔n單位間隔的意思,例如每5分鐘進行1次,則: */5 * * * * command 用*與/5來搭配,也能夠?qū)懗?⑸9/5,意思相同 |
為當(dāng)前用戶創(chuàng)建cron服務(wù)
1. 鍵入 crontab -e 編輯crontab服務(wù)文件
例如 文件內(nèi)容以下:
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
保存文件并并退出
*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh
*/2 * * * * 通過這段字段可以設(shè)定甚么時候履行腳本
/bin/sh /home/admin/jiaoben/buy/deleteFile.sh 這1字段可以設(shè)定你要履行的腳本,這里要注意1下bin/sh 是指運行 腳本的命令 后面1段時指腳本寄存的路徑
2. 查看該用戶下的crontab服務(wù)是不是創(chuàng)建成功, 用 crontab -l 命令
3. 啟動crontab服務(wù)
1般啟動服務(wù)用 /sbin/service crond start 若是根用戶的cron服務(wù)可以用 sudo service crond start, 這里還是要注意 下 不同版本linux系統(tǒng)啟動的服務(wù)的命令也不同 ,像我的虛擬機里只需用 sudo service cron restart 便可,若是在根用下直接鍵入service cron start就可以啟動服務(wù)
4. 查看服務(wù)是不是已運行用 ps -ax | grep cron
5. crontab命令
cron服務(wù)提供crontab命令來設(shè)定cron服務(wù)的,以下是這個命令的1些參數(shù)與說明:
crontab -u //設(shè)定某個用戶的cron服務(wù),1般root用戶在履行這個命令的時候需要此參數(shù)
crontab -l //列出某個用戶cron服務(wù)的詳細內(nèi)容
crontab -r //刪除沒個用戶的cron服務(wù)
crontab -e //編輯某個用戶的cron服務(wù)
比如說root查看自己的cron設(shè)置:crontab -u root -l
再例如,root想刪除fred的cron設(shè)置:crontab -u fred -r
在編輯cron服務(wù)時,編輯的內(nèi)容有1些格式和約定,輸入:crontab -u root -e
進入vi編輯模式,編輯的內(nèi)容1定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
任務(wù)調(diào)度的crond常駐命令
crond 是linux用來定期履行程序的命令。當(dāng)安裝完成操作系統(tǒng)以后,默許便會啟動此
任務(wù)調(diào)度命令。crond命令每分鍾會定期檢查是不是有要履行的工作,如果有要履行的工
作便會自動履行該工作。
6. crontab命令選項:
-u指定1個用戶
-l列出某個用戶的任務(wù)計劃
-r刪除某個用戶的任務(wù)
-e編輯某個用戶的任務(wù)
7. cron文件語法:
分 小時 日 月 星期 命令
0⑸9 0⑵3 1⑶1 1⑴2 0⑹ command (取值范圍,0表示周日1般1行對應(yīng)1個任務(wù))
記住幾個特殊符號的含義:
“*”代表取值范圍內(nèi)的數(shù)字,
“/”代表”每”,
“-”代表從某個數(shù)字到某個數(shù)字,
“,”分開幾個離散的數(shù)字
8. 任務(wù)調(diào)度設(shè)置文件的寫法
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對利用戶的cron文件,也能夠直接修改/etc/crontab文件
具體格式以下:
Minute Hour Day Month Dayofweek command
分鐘 小時 天 月 天每星期 命令
每一個字段代表的含義以下:
Minute 每一個小時的第幾分鐘履行該任務(wù)
Hour 每天的第幾個小時履行該任務(wù)
Day 每個月的第幾天履行該任務(wù)
Month 每一年的第幾個月履行該任務(wù)
DayOfWeek 每周的第幾天履行該任務(wù)
Command 指定要履行的程序
在這些字段里,除“Command”是每次都必須指定的字段之外,其它字段皆為可選
字段,可視需要決定。對不指定的字段,要用“*”來彌補其位置。
舉例以下:
5 * * * * ls 指定每小時的第5分鐘履行1次ls命令 30 5 * * * ls 指定每天的 5:30 履行l(wèi)s命令 30 7 8 * * ls 指定每個月8號的7:30分履行l(wèi)s命令 30 5 8 6 * ls 指定每一年的6月8日5:30履行l(wèi)s命令 30 6 * * 0 ls 指定每星期日的6:30履行l(wèi)s命令[注:0表示星期天,1表示星期1, 以此類推, 也能夠用英文來表示,sun表示星期天,mon表示星期1等。] 30 3 10,20 * * ls 每個月10號及20號的3:30履行l(wèi)s命令[注:“,”用來連接多個不連續(xù)的時段] 25 8⑴1 * * * ls 每天8⑴1點的第25分鐘履行l(wèi)s命令[注:“-”用來連接連續(xù)的時段] */15 * * * * ls 每15分鐘履行1次ls命令 [即每一個小時的第0 15 30 45 60分鐘履行l(wèi)s命令 ] 30 6 */10 * * ls 每月中,每隔10天6:30履行1次ls命令[即每個月的1、11、21、31日是的6:30履行1次ls 命令。 ] 每天7:50以root 身份履行/etc/cron.daily目錄中的所有可履行文件 50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts參數(shù)表示,履行后面目錄中的所有可履行文件。 ]
9. 新增調(diào)度任務(wù)
新增調(diào)度任務(wù)可用兩種方法:
1)、在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤退出。
2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)。
10. 查看調(diào)度任務(wù)
crontab -l //列出當(dāng)前的所有調(diào)度任務(wù)
crontab -l -u jp //列出用戶jp的所有調(diào)度任務(wù)
11. 刪除任務(wù)調(diào)度工作
crontab -r //刪除所有任務(wù)調(diào)度工作
12. 任務(wù)調(diào)度履行結(jié)果的轉(zhuǎn)向
例1:每天5:30履行l(wèi)s命令,并把結(jié)果輸出到/jp/test文件中
30 5 * * * ls >/jp/test 2>&1
注:2>&1 表示履行結(jié)果及毛病信息。
編輯/etc/crontab 文件配置cron
cron服務(wù)每分鐘不但要讀1次/var/spool/cron內(nèi)的所有文件,還需要讀1次 /etc/crontab,因此我們配置這個文件也能應(yīng)用cron服務(wù)做1些事情。用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統(tǒng)的任務(wù)。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現(xiàn)毛病,或有數(shù)據(jù)輸出,數(shù)據(jù)作為郵件發(fā)給這個帳號
HOME=/ //使用者運行的路徑,這里是根目錄
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小時履行/etc/cron.hourly內(nèi)的腳本 02 4 * * * root run-parts /etc/cron.daily //每天履行/etc/cron.daily內(nèi)的腳本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期履行 /etc/cron.weekly內(nèi)的腳本 42 4 1 * * root run-parts /etc/cron.monthly //每個月去履行/etc/cron.monthly內(nèi)的腳本
大家注意”run-parts”這個參數(shù)了,如果去掉這個參數(shù)的話,后面就能夠?qū)懸\行的某個腳本名,而不是文件夾名了
例如:
1) 在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤退出。
2)直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)
11 2 21 10 * rm -rf /mnt/fb
在UNIX下怎樣實現(xiàn)和Windows下“計劃任務(wù)”1樣的功能
$crontab -e 編輯腳本
$crontab -l 觀察腳本
用$crontab -e 編輯腳本,加入以下行
:分 小時 星期 月 命令
Linux下crontab命令的用法
任務(wù)調(diào)度的crond常駐命令
crond 是linux用來定期履行程序的命令。當(dāng)安裝完成操作系統(tǒng)以后,默許便會啟動此任務(wù)調(diào)度命令。crond命令每分鍾會定期檢查是不是有要履行的工作,如果有要履行的工作便會自動履行該工作。而linux任務(wù)調(diào)度的工作主要分為以下兩類:
1、系統(tǒng)履行的工作:系統(tǒng)周期性所要履行的工作,如備份系統(tǒng)數(shù)據(jù)、清算緩存
2、個人履行的工作:某個用戶定期要做的工作,例如每隔10分鐘檢查郵件服務(wù)器是不是有新信,這些工作可由每一個用戶自行設(shè)置
3、Crontab是UNIX系統(tǒng)下的定時任務(wù)觸發(fā)器,其使用者的權(quán)限記載在以下兩個文件中:文件含義
/etc/cron.deny 該文件中所列的用戶不允許使用Crontab命令
/etc/cron.allow 該文件中所列的用戶允許使用Crontab命令
/var/spool/cron/ 是所有用戶的crontab文件
/var/spool/cron/crontabs
4、Crontab命令的格式為:crontab –l|-r|-e|-i [username],
其參數(shù)含義如表1: 參數(shù)名稱 含義 示例
-l 顯示用戶的Crontab文件的內(nèi)容
crontabl –l
-i 刪除用戶的Crontab文件前給提示
crontabl -ri
-r
從Crontab目錄中刪除用戶的Crontab文件
crontabl -r
-e
編輯用戶的Crontab文件
crontabl -e
5、用戶所建立的Crontab文件存于/var/spool/cron中,其文件名與用戶名1致。它的格式共分為6段,前5段為時間設(shè)定段,第6段為所要履行的命令段,格式以下:* * * * *
其時間段的含義如表2: 段 含義 取值范圍
第1段 代表分鐘 0—59
第2段 代表小時 0—23
第3段 代表日期 1—31
第4段 代表月份 1—12
第5段 代表星期幾 0代表星期日
名稱 : crontab
使用權(quán)限 : 所有使用者
使用方式 :
crontab [ -u user ] file
crontab [ -u user ] { -l | -r | -e }
說明 :
crontab 是用來讓使用者在固定時間或固定間隔履行程序之用,換句話說,也就是類似使用者的時程表。-u user 是指設(shè)定指定 user 的時程表,這個條件是你必須要有其權(quán)限(比如說是 root)才能夠指定他人的時程表。如果不使用 -u user 的話,就是表示設(shè)定自己的時程表。
餐數(shù) :
-e : 履行文字編輯器來設(shè)定時程表,內(nèi)定的文字編輯器是 VI,如果你想用別的文字編輯器,則請先設(shè)定 VISUAL 環(huán)境變數(shù)來指定使用那個文字編輯器(比如說 setenv VISUAL joe)
-r : 刪除目前的時程表
-l : 列出目前的時程表
時程表的格式以下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時,f3 表示1個月份中的第幾日,f4 表示月份,f5 表示1個星期中的第幾天。program 表示要履行的程序。
當(dāng) f1 為 * 時表示每分鐘都要履行 program,f2 為 * 時表示每小時都要履行程序,其馀類推
當(dāng) f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內(nèi)要履行,f2 為 a-b 時表示從第 a 到第 b 小時都要履行,其馀類推
當(dāng) f1 為 */n 時表示每 n 分鐘個時間間隔履行1次,f2 為 */n 表示每 n 小時個時間間隔履行1次,其馀類推
當(dāng) f1 為 a, b, c,... 時表示第 a, b, c,... 分鐘要履行,f2 為 a, b, c,... 時表示第 a, b, c...個小時要履行,其馀類推
使用者也能夠?qū)⑺械脑O(shè)定先寄存在檔案 file 中,用 crontab file 的方式來設(shè)定時程表。 例子 :
每個月每天每小時的第 0 分鐘履行1次 /bin/ls :
0 7 * * * /bin/ls
在 12 月內(nèi), 每天的早上 6 點到 12 點中,每隔 20 分鐘履行1次 /usr/bin/backup :
0 6⑴2/3 * 12 * /usr/bin/backup
周1到周5每天下午 5:00 寄1封信給 alex@domain.name :
0 17 * * 1⑸ mail -s "hi" alex@domain.name /dev/null 2>&1
便可
例:如果用戶的Crontab文件的內(nèi)容是:29 19 * * * echo its dinner time,則系統(tǒng)每天的19:29顯示‘its dinner time’
示例(創(chuàng)建1個cron全進程,每分鐘都會在test.txt里輸入當(dāng)前時間):
1. 以普通用戶登錄linux系統(tǒng)(我用的是CentOS4.1)
2. $crontab –e
說明:系統(tǒng)默許的編輯器是VIM,如果不是請加上以下shell:
$EDITOR=vi
$export EDITOR
3. 輸入”*/1 * * * * date >> $HOME/test.txt”,save and exit VIM
4. $su root
5. $cd /etc/init.d
6. ./crond restart
下面看看看幾個具體的例子:
0 */2 * * * /sbin/service httpd restart 意思是每兩個小時重啟1次apache 50 7 * * * /sbin/service sshd start 意思是每天7:50開啟ssh服務(wù) 50 22 * * * /sbin/service sshd stop 意思是每天22:50關(guān)閉ssh服務(wù) 0 0 1,15 * * fsck /home 每個月1號和15號檢查/home 磁盤 1 * * * * /home/bruce/backup 每小時的第1分履行 /home/bruce/backup這個文件 00 03 * * 1⑸ find /home "*.xxx" -mtime +4 -exec rm {} \; 每周1至周53點鐘,在目錄/home中,查找文件名為*.xxx的文件,并刪除4天前的文件。 30 6 */10 * * ls 意思是每個月的1、11、21、31日是的6:30履行1次ls命令
在linux平臺上如果需要實現(xiàn)任務(wù)調(diào)度功能可以編寫cron腳本來實現(xiàn)。
以某1頻率履行任務(wù)
linux缺省會啟動crond進程,crond進程不需要用戶啟動、關(guān)閉。
crond進程負責(zé)讀取調(diào)度任務(wù)并履行,用戶只需要將相應(yīng)的調(diào)度腳本寫入cron的調(diào)度配置文件中。
cron的調(diào)度文件有以下幾個:
1. crontab
2. cron.d
3. cron.daily
4. cron.hourly
5. cron.monthly
6. cron.weekly
如果用的任務(wù)不是以hourly monthly weekly方式履行,則可以將相應(yīng)的crontab寫入到crontab 或cron.d目錄中。
示例:
每隔1分鐘履行1次腳本 /opt/bin/test-cron.sh
可以在cron.d新建腳本 echo-date.sh
內(nèi)容為
*/1 * * * * root /opt/bin/test-cron.sh
在指定的時間運行任務(wù)
也能夠通過at命令來控制在指定的時間運行任務(wù)
如:
at -f test-cron.sh -v 10:25
其中-f 指定腳本文件, -v 指定運行時間
quote:ea946d690b="lophyxp"]首先用
contab -l >contabs.tmp
導(dǎo)出contab的配置。
然后編輯contabs.tmp文件。以1下格式添加1行:
分鐘 小時 天 月 星期 命令
比如
10 3 * * 0,6 hello
就是每周6、周日的3點10分履行hello程序。
15 4 * * 4⑹ hello
就是從周4到周6的4點15點履行hello程序。
然后用
contab contabs.tmp
命令導(dǎo)入新的配置。
1般不建議直接修改/etc/下的相干配置文件。
啟動cron進程的方法:/etc/init.d/crond start
開機就啟動cron進程的設(shè)置命令:chkconfig --add crond
方法2:
把cron加入到啟動腳本中:
# rc-update add vixie-cron default
crontab -l #查看你的任務(wù)
crontab-e#編輯你的任務(wù)
crontab-r#刪除用戶的crontab的內(nèi)容
實例講授2:
系統(tǒng)cron設(shè)定:/etc/crontab
通過 /etc/crontab 文件,可以設(shè)定系統(tǒng)定期履行的任務(wù),固然,要想編輯這個文件,得有root權(quán)限
0 7 * * * root mpg123 ~/wakeup.mp3
分 時 日 月 周
示例:
0 4 * * 0 root emerge --sync && emerge -uD world #每周日清晨4點,更新系統(tǒng) 0 2 1 * * root rm -f /tmp/* #每個月1號清晨2點,清算/tmp下的文件 0 8 6 5 * root mail robin < /home/galeki/happy.txt #每一年5月6日給robin發(fā)信祝他生日快樂
假設(shè),我想每隔2分鐘就要履行某個命令,或我想在每天的6點、12點、18點履行命令,諸如此類的周期,可以通過 “ / ” 和 “ , ” 來設(shè)置:
*/2 * * * * root ............... #每兩分鐘就履行........
0 6,12,18 * * * root ............... #每天6點、12點、18點履行........
每兩個小時
0 */2 * * * echo "have a break now." >> /tmp/test.txt
晚上11點到早上8點之間每兩個小時,早上8點
0 23⑺/2,8 * * * echo "have a good dream:)" >> /tmp/test.txt
每月的4號與每一個礼拜的礼拜1到礼拜3的早上11點
0 11 4 * 1⑶ command line
1月1日早上4點
0 4 1 1 * command line
在LINUX中你應(yīng)當(dāng)先輸入crontab -e,然后就會有個vi編輯界面,再輸入0 3 * * 1 /clearigame2內(nèi)容到里面 :wq 保存退出。
在LINUX中,周期履行的任務(wù)1般由cron這個守護進程來處理[ps -ef|grep cron]。cron讀取1個或多個配置文件,這些配置文件中包括了命令行及其調(diào)用時間。
cron的配置文件稱為“crontab”,是“cron table”的簡寫。
1、cron在3個地方查找配置文件:
1、/var/spool/cron/ 這個目錄下寄存的是每一個用戶包括root的crontab任務(wù),每一個任務(wù)以創(chuàng)建者的名字命名,比如tom建的crontab任務(wù)對應(yīng)的文件就是/var/spool/cron/tom。
1般1個用戶最多只有1個crontab文件。
2、/etc/crontab 這個文件負責(zé)安排由系統(tǒng)管理員制定的保護系統(tǒng)和其他任務(wù)的crontab。
3、/etc/cron.d/ 這個目錄用來寄存任何要履行的crontab文件或腳本。
4、權(quán)限
crontab權(quán)限問題到/var/adm/cron/下1看,文件cron.allow和cron.deny是不是存在
用法以下:
1、如果兩個文件都不存在,則只有root用戶才能使用crontab命令。
2、如果cron.allow存在但cron.deny不存在,則只有列在cron.allow文件里的用戶才能使用crontab命令,如果root用戶也不在里面,則root用戶也不能使用crontab。
3、如果cron.allow不存在, cron.deny存在,則只有列在cron.deny文件里面的用戶不能使用crontab命令,其它用戶都能使用。
4、如果兩個文件都存在,則列在cron.allow文件中而且沒有列在cron.deny中的用戶可使用crontab,如果兩個文件中都有同1個用戶,
以cron.allow文件里面是不是有該用戶為準,如果cron.allow中有該用戶,則可使用crontab命令。
5、cron服務(wù)
cron是1個linux下 的定時履行工具,可以在無需人工干預(yù)的情況下運行作業(yè)。
/sbin/service crond start //啟動服務(wù)
/sbin/service crond stop //關(guān)閉服務(wù)
/sbin/service crond restart //重啟服務(wù)
/sbin/service crond reload //重新載入配置
/sbin/service crond status //查看服務(wù)狀態(tài)
在crontab文件中如何輸入需要履行的命令和時間。該文件中每行都包括6個域,其中前5個域是指定命令被履行的時間,最后1個域是要被履行的命令。
每一個域之間使用空格或制表符分隔。格式以下:
minute hour day-of-month month-of-year day-of-week commands
合法值 00⑸9 00⑵3 01⑶1 01⑴2 0⑹ (0 is sunday) commands(代表要履行的腳本)
除數(shù)字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值范圍內(nèi)的數(shù)字,"/"代表每的意思,"/5"表示每5個單位,"-"代表從某個數(shù)字到某個數(shù)字,","分開幾個離散的數(shù)字。
幾個例子:
每天早上6點
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,由于cron把任何輸出都email到root的信箱了。
每兩個小時
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
晚上11點到早上8點之間每兩個小時和早上8點
0 23⑺/2,8 * * * echo "Have a good dream" >> /tmp/test.txt
每月的4號和每一個礼拜的礼拜1到礼拜3的早上11點
0 11 4 * 1⑶ command line
1月1日早上4點
0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出現(xiàn)毛病,或有數(shù)據(jù)輸出,數(shù)據(jù)作為郵件發(fā)給這個帳號 HOME=/
每小時履行/etc/cron.hourly內(nèi)的腳本
01 * * * * root run-parts /etc/cron.hourly
每天履行/etc/cron.daily內(nèi)的腳本
02 4 * * * root run-parts /etc/cron.daily
每星期履行/etc/cron.weekly內(nèi)的腳本
22 4 * * 0 root run-parts /etc/cron.weekly
每個月去履行/etc/cron.monthly內(nèi)的腳本
42 4 1 * * root run-parts /etc/cron.monthly
注意: "run-parts"這個參數(shù)了,如果去掉這個參數(shù)的話,后面就能夠?qū)懸\行的某個腳本名,而不是文件夾名。
每天的下午4點、5點、6點的5 min、15 min、25 min、35 min、45 min、55 min時履行命令。
5,15,25,35,45,55 16,17,18 * * * command
每周1,3,5的下午3:00系統(tǒng)進入保護狀態(tài),重新啟動系統(tǒng)。
00 15 * * 1,3,5 shutdown -r +5
每小時的10分,40分履行用戶目錄下的innd/bbslin這個指令:
10,40 * * * * innd/bbslink
每小時的1分履行用戶目錄下的bin/account這個指令:
1 * * * * bin/account
每天凌晨3點210分履行用戶目錄下以下所示的兩個指令(每一個指令以;分隔):
20 3 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)
每一年的1月和4月,4號到9號的3點12分和3點55分履行/bin/rm -f expire.1st這個指令,并把結(jié)果添加在mm.txt這個文件以后(mm.txt文件位于用戶自己的目錄位置)。
12,55 3 4⑼ 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt
at命令實現(xiàn)定時任務(wù)
假設(shè)我們只是想要讓特定任務(wù)運行1次,那末,這時候候就要用到at監(jiān)控程序了。
at類似打印進程,會把任務(wù)放到/var/spool/at目錄中,到指定時間運行它 。at命令相當(dāng)于另外一個shell,運行at time命令時,它發(fā)送1個個命令,可以輸入任意命令或程序。
at命令履行流程以下
# at 2:05 tomorrow
at>/home/kyle/do_job
at> Ctrl+D
AT Time中的時間表示方法
-----------------------------------------------------------------------
時 間 例子 說明
-----------------------------------------------------------------------
Minute at now + 5 minutes 任務(wù)在5分鐘后運行
Hour at now + 1 hour 任務(wù)在1小時后運行
Days at now + 3 days 任務(wù)在3天后運行
Weeks at now + 2 weeks 任務(wù)在兩周后運行
Fixed at midnight 任務(wù)在午夜運行
Fixed at 10:30pm 任務(wù)在晚上10點30分
注意:linux默許為不啟動,而ubuntu默許為啟動的。檢查是不是啟動,用service atd檢查語法,用service atd status檢查atd的狀態(tài),用service atd start啟動atd服務(wù)。
查看at履行的具體內(nèi)容:1般位于/var/spool/at目錄下面, 用vi打開,在最后1部份就是你的履行程序
參數(shù)詳解
-V : 印出版本編號
-q : 使用指定的佇列(Queue)來貯存,at 的資料是寄存在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 和 A, B, ... Z 共 52 個
-m : 即便程序/指令履行完成后沒有輸出結(jié)果, 也要寄封信給使用者
-f file : 讀入預(yù)先寫好的命令檔。使用者不1定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再1次讀入
網(wǎng)絡(luò)利用
-l : 列出所有的指定 (使用者也能夠直接使用 atq 而不用 at -l)
-d : 刪除指定 (使用者也能夠直接使用 atrm 而不用 at -d)
-v : 列出所有已完成但還沒有刪除的指定
刪除任務(wù)
atrm 2
3天后的下午 5 點鍾履行 /bin/ls :
at 5pm 3 days /bin/ls
3個星期后的下午 5 點鍾履行 /bin/ls :
at 5pm 2 weeks /bin/ls
明天的 17:20 履行 /bin/date :
at 17:20 tomorrow /bin/date
1999 年的最后1天的最后1分鐘印出 the end of world !
at 23:59 12/31/1999 echo the end of world !
cron是1個linux下的定時履行工具,可以在無需人工干預(yù)的情況下運行作業(yè)。由于Cron 是Linux的內(nèi)置服務(wù),但它不自動起來,可以用以下的方法啟動、關(guān)閉這個服務(wù):
/sbin/service crond start //啟動服務(wù)
/sbin/service crond stop //關(guān)閉服務(wù)
/sbin/service crond restart //重啟服務(wù)
/sbin/service crond reload //重新載入配置
你也能夠?qū)⑦@個服務(wù)在系統(tǒng)啟動的時候自動啟動:
在/etc/rc.d/rc.local這個腳本的末尾加上:
/sbin/service crond start
現(xiàn)在Cron這個服務(wù)已在進程里面了,我們就能夠用這個服務(wù)了
-------------------------------------
以Linux下定時備份mysql為例說明下
寫1個簡單的mysql備份shell腳本
vi
#!/bin/sh
da=`date +%Y%m%d%H%M%S`
mysqldump -u root -pdongjj --all-database>/root/mysqlbakup/$da
保存為 mysqlbak.sh
然后crontab-e
0 3 * * * /root/mysqlbak.sh
保存退出
相干命令----------------
crontab file [-u user]-用指定的文件替換目前的crontab。
crontab-[-u user]-用標準輸入替換目前的crontab.
crontab⑴[user]-列出用戶目前的crontab.
crontab-e[user]-編輯用戶目前的crontab.
crontab-d[user]-刪除用戶目前的crontab.
crontab-c dir- 指定crontab的目錄。
crontab文件的格式:M H D m d cmd.
M: 分鐘(0⑸9)。
H:小時(0⑵3)。
D:天(1⑶1)。
m: 月(1⑴2)。
d: 1星期內(nèi)的天(0~6,0 表示星期天)
除數(shù)字還有幾個個特殊的符號就是"*"、"/"和"-"、",",*代表所有的取值范圍內(nèi)的數(shù)字,"/"代表每的意思,"*/5"表示每5個單位,"-"代表從某個數(shù)字到某個數(shù)字,","分開幾個離散的數(shù)字。
每次編輯完某個用戶的cron設(shè)置后,cron自動在/var/spool/cron下生成1個與此用戶同名的文件,此用戶的cron信息都記錄在這 個文件中,這個文件是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動后每過1份鐘讀1次這個文件,檢查是不是要履行里面的命令。因此此文件修改后不需要重新啟動cron服務(wù)。
查看crontab 履行的日志,可以在/var/log/cron* 查看,或 0 3 * * * /root/mysqlbak.sh >/var/log/mysqlbak.log 2>&1 把日志定向出來查看