深入解析Linux下的定時(shí)任務(wù)
在做定時(shí)任務(wù)之前,先檢查一下當(dāng)前的系統(tǒng)時(shí)間【date "+%Y-%m-%d %T"】和硬件時(shí)鐘時(shí)間【hwclock】:
[root@localhost test]# date "+%Y-%m-%d %T"
2013-07-01 07:57:52
[root@localhost test]# hwclock
2013年07月01日 星期一 07時(shí)57分48秒 -0.059059 seconds
上面的結(jié)果顯示,我當(dāng)前的時(shí)鐘時(shí)間都不正確,先設(shè)置系統(tǒng)時(shí)間:
[root@localhost test]# date -s "2013-07-09 08:47:00"
2013年 07月 09日 星期二 08:47:00 CST
再設(shè)置硬件時(shí)間和系統(tǒng)時(shí)間同步
[root@localhost test]# hwclock -w
下面再查看系統(tǒng)時(shí)間和硬件時(shí)鐘時(shí)間:
[root@localhost test]# hwclock
2013年07月09日 星期二 08時(shí)47分07秒 -0.180411 seconds
[root@localhost test]# date "+%Y-%m-%d %T"
2013-07-09 08:47:13
[root@localhost test]#
時(shí)間正常了,下面就可以做定時(shí)任務(wù)了,在Linux下做定時(shí)任務(wù)比較簡(jiǎn)單,使用crontab命令就可以。為了方便查看效果,先編輯一個(gè)test.sh,內(nèi)容就是格式化顯示當(dāng)前的系統(tǒng)時(shí)間:
date "+%Y-%m-%d %T"
執(zhí)行一下查看結(jié)果:
[zl@localhost test]$ sh test.sh
2013-07-09 09:03:28
好,結(jié)果是正常的。下面簡(jiǎn)單學(xué)習(xí)一下crontab 命令:
常用參數(shù):
crontab -l //查看當(dāng)前用戶下的cron任務(wù)
crontab -e //編輯當(dāng)前用戶的定時(shí)任務(wù)
[zl@localhost test]$ crontab -l
52 8 * * * sh /home/zl/test/test.sh >> /home/zl/test/test_chrontab.txt
說(shuō)明我的當(dāng)前用戶下,有一個(gè)定時(shí)任務(wù),我們來(lái)分析一下這個(gè)定時(shí)任務(wù):
52 8 * * * sh /home/zl/test/test.sh >> /home/zl/test/test_chrontab.txt
任務(wù)中分成6部分,抽象出來(lái)為
分 時(shí) 日 月 周 命令
* * * * * command
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
第6列要運(yùn)行的命令
以上面的為例,這個(gè)任務(wù)是在每天的8點(diǎn)52分執(zhí)行,執(zhí)行的命令為sh /home/zl/test/test.sh >> /home/zl/test/test_chrontab.txt
如果我們需要再添加一個(gè)每周五的23點(diǎn)50分執(zhí)行一個(gè)周報(bào)的任務(wù),則
執(zhí)行crontab -e【執(zhí)行文字編輯器來(lái)設(shè)定時(shí)程表,內(nèi)定的文字編輯器是 vi】,在任務(wù)中添加50 23 * * 5 sh /home/zl/weekly_report.sh即可:
[zl@localhost test]$ crontab -e
crontab: installing new crontab
再次查看任務(wù)列表,又添加了一個(gè)新的任務(wù)
[zl@localhost test]$ crontab -l
52 8 * * * sh /home/zl/test/test.sh >> /home/zl/test/test_chrontab.txt
50 23 * * 5 sh /home/zl/weekly_report.sh
[zl@localhost test]$
下面再附一些別人使用的例子:
0 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重啟apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重啟apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重啟apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時(shí)重啟apache
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4號(hào)與每周一到周三的11點(diǎn)重啟apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一號(hào)的4點(diǎn)重啟apache
- linux 定時(shí)任務(wù)詳解
- linux定時(shí)任務(wù)基礎(chǔ)命令介紹(14)
- Linux定時(shí)任務(wù)Crontab詳解(推薦)
- 詳解使用python crontab設(shè)置linux定時(shí)任務(wù)
- Linux crontab定時(shí)任務(wù)配置方法(詳解)
- Linux中使用crontab命令啟用自定義定時(shí)任務(wù)實(shí)例
- Linux使用定時(shí)任務(wù)每周定時(shí)清理45天以前日志
- 詳細(xì)介紹Linux的定時(shí)任務(wù)crontab
- linux使用crontab實(shí)現(xiàn)PHP執(zhí)行計(jì)劃定時(shí)任務(wù)
- linux中定時(shí)任務(wù)crond命令使用方法
相關(guān)文章
Linux系統(tǒng)下常見(jiàn)基本問(wèn)題的解決方法
是用linux經(jīng)常會(huì)出現(xiàn)一些常見(jiàn)的問(wèn)題,處理方法也比較簡(jiǎn)單,建議大家膽大心細(xì)的來(lái)操作,命令不要怕,慢慢就習(xí)慣了2008-03-03Linux X Window應(yīng)用問(wèn)答(下)
Linux X Window應(yīng)用問(wèn)答(下)2006-10-10linux上printf輸出帶顏色和高級(jí)格式控制(推薦)
這篇文章主要介紹了linux上printf輸出帶顏色和高級(jí)格式控制的相關(guān)資料,需要的朋友可以參考下2018-05-05linux入門(mén)教程 第5章:網(wǎng)絡(luò)應(yīng)用
linux入門(mén)教程 第5章:網(wǎng)絡(luò)應(yīng)用...2006-10-10解除使用Linux分區(qū)工具時(shí)給大家?guī)?lái)的困擾
解除使用Linux分區(qū)工具時(shí)給大家?guī)?lái)的困擾...2006-10-10查看Linux系統(tǒng)是32位還是64位的方法總結(jié)
這篇文章主要介紹了查看Linux系統(tǒng)是32位還是64位的方法總結(jié),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03開(kāi)發(fā)人員必知的8個(gè)常用linux命令
Linux命令很豐富,有些人很頭疼。這幾個(gè)命令應(yīng)該能幫你完成大部分的文本工作,不用交到你的腳本語(yǔ)言手里2013-08-08