問題
1)確認(rèn)crond服務(wù)在運(yùn)行
2)查看root有哪些cron任務(wù)
3)以用戶root登入,添加以下計(jì)劃任務(wù):
4)每天早上7:30啟動(dòng)sshd服務(wù)
5)每天晚上23:30關(guān)閉sshd服務(wù)
6)以用戶lisi登入,添加以下計(jì)劃任務(wù)
7)每分鐘記錄一次當(dāng)前時(shí)間,保存到文件 ~/date.txt
8)查看自己的cron任務(wù)列表
9)驗(yàn)證執(zhí)行效果
方案
周期性計(jì)劃任務(wù)的服務(wù)名為crond,也是一個(gè)獨(dú)立服務(wù),對(duì)應(yīng)的配置工具為crontab。需要確保系統(tǒng)的crond服務(wù)開啟,建議將其設(shè)置為開機(jī)自啟動(dòng)。
計(jì)劃任務(wù)的三要素:時(shí)間、任務(wù)、用戶。
在編寫計(jì)劃任務(wù)時(shí),可執(zhí)行命令最好寫絕對(duì)路徑,以確保系統(tǒng)PATH變量受損也能成功找到該命令。
對(duì)于時(shí)間的表示,crond計(jì)劃任務(wù)利用的是五個(gè)“”表示的,含義分別為:分鐘、小時(shí)、日期、月份、星期。
關(guān)于時(shí)間周期的幾個(gè)特殊用法:
:匹配范圍內(nèi)任意時(shí)間
,:表示多個(gè)不連續(xù)的時(shí)間點(diǎn)
-:表示連續(xù)的時(shí)間范圍
/n:指定時(shí)間頻率,每n …
全局配置文件為 /etc/crontab ,其中調(diào)用了位于以下目錄的系統(tǒng)計(jì)劃任務(wù):
/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/*
/etc/cron.monthly/*
步驟
實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:確認(rèn)crond服務(wù)在運(yùn)行
命令操作如下所示:
[root@localhost ~]# /etc/init.d/crond status
crond (pid 1611) 正在運(yùn)行...
[root@localhost ~]# chkconfig --list crond
crond 0:關(guān)閉 1:關(guān)閉 2:啟用 3:啟用 4:啟用 5:啟用 6:關(guān)閉
[root@localhost ~]#
步驟二:查看root有哪些cron任務(wù)
命令操作如下所示:
[root@localhost ~]# crontab -l -u root //-l:查看;-u:指定用戶
no crontab for root //沒有計(jì)劃任務(wù)
[root@localhost ~]#
步驟三:以用戶root登入,添加以下計(jì)劃任務(wù)
每天早上7:30啟動(dòng)sshd服務(wù)
每天晚上23:30關(guān)閉sshd服務(wù)
執(zhí)行crontab -e來設(shè)置計(jì)劃任務(wù)時(shí),會(huì)調(diào)用vim編輯器來進(jìn)行修改。對(duì)應(yīng)的命令操作如下所示:
[root@localhost ~]# ls /etc/init.d/sshd //查看是否有安裝該服務(wù)
/etc/init.d/sshd
[root@localhost ~]# crontab -e -u root //-e:編輯計(jì)劃任務(wù);-u:指定用戶
30 7 * * * /etc/init.d/sshd start //每天早上7:30啟動(dòng)sshd服務(wù)
30 23 * * * /etc/init.d/sshd stop //每天晚上23:30關(guān)閉sshd服務(wù)
步驟四:以用戶lisi登入,添加以下計(jì)劃任務(wù)
每分鐘記錄一次當(dāng)前時(shí)間,保存到文件 ~/date.txt。
分析: 首先每分鐘表示: * * * * * 或 */1 * * * *
那怎么保存當(dāng)前時(shí)間呢?我們可以利用輸出重定向來做:
data >> /home/lisi/date.txt
命令操作如下所示:
[root@localhost ~]# id lisi //確保lisi用戶存在
uid=503(lisi) gid=504(lisi) 組=504(lisi)
[root@localhost ~]# su – lisi //切換用戶身份
[lisi@localhost ~]$ which date
/bin/date
[lisi@localhost ~]$ crontab –e //沒有指定用戶就是當(dāng)前用戶
* * * * * /bin/date >> /home/lisi/date.txt
查看自己的cron任務(wù)列表
命令操作如下所示:
[lisi@localhost ~]$ crontab -l
* * * * * /bin/date >> /home/lisi/date.txt
[lisi@localhost ~]$
步驟五:驗(yàn)證執(zhí)行效果
分析: 查看/home/lisi/data.txt文件有沒有按時(shí)間寫入即可,但每分鐘都看一次會(huì)比較麻煩,這里介紹一個(gè)命令:watch
watch -n 1 cat /home/lisi/date.txt
-n:代表時(shí)間頻率1秒鐘。
整體可以解釋為:每一秒鐘執(zhí)行一次“cat /home/lisi/date.txt”。
此命令會(huì)占用整個(gè)終端,可以按ctrl+c結(jié)束。
命令操作如下所示:
[lisi@localhost ~]$ watch -n 1 cat /home/lisi/date.txt
Every 1.0s: cat /home/lisi/date.txt Mon Mar 2 10:12:56 2015
Mon Mar 2 10:06:01 CST 2015
Mon Mar 2 10:07:01 CST 2015
Mon Mar 2 10:08:01 CST 2015
Mon Mar 2 10:09:01 CST 2015 //時(shí)間為英文表示
Mon Mar 2 10:10:01 CST 2015
Mon Mar 2 10:11:01 CST 2015
可以按ctrl+c結(jié)束