(一)定時任務簡介shell
系統的定時任務並不難,它在咱們的服務器上是一個很是常見的任務,它指的就是讓個人計算機在指定的時間,運行指定的命令或者程序。在windows裏面有一任務器,它實現的就是系統定時任務,這個在我的機裏面用的很少,通常就是殺毒軟件什麼的會用到。可是在服務器上呢,咱們不少的工做都不必定要人爲手工的工做,並且有一部分工做,像備份這樣的工做,天天都須要進行,並且不能在上班的時候白天執行,由於那個時候的服務器壓力很是大,這個時候都應該讓它在凌晨執行,固然不須要管理員天天都凌晨的時候工做,咱們可讓計算機系統自動在指定的時間執行指定的命令。那麼這個時候就用到了一個很是經常使用的工具,定時任務。windows
(二)定時服務的啓動與關閉服務器
若是想讓個人定時任務生效,咱們必需要在CentOS中啓動一個叫crond的這樣的一個服務。工具
crond服務是Linux的內置服務,但它不會開機自動啓動。能夠用如下命令啓動和中止服務:rest
啓動crontab
systemctl start crond.servicetest
查看狀態:變量
systemctl status crond.service軟件
中止配置
systemctl stop crond.service
重新啓動
systemctl restart crond.service
從新加載:
systemctl reload crond.service
固然你若是熟悉CentOS6的命令,也能夠輸入以下命令,其實這個命令就是調用了咱們上面的命令。
service crond start
service crond stop
service crond restart
service crond reload
以上1-4行分別爲啓動、中止、重啓服務和從新加載配置。
(三)定時任務的使用
啓動以後,它的使用是很是簡單的。
crontab [選項]
crontab –l 查看當前用戶的crontab,輸入
crontab –e 編輯crontab
crontab –r 刪除crontab
輸入crontab –l 能夠看到no crontab for root
輸入crontab –e 添加任務,能夠看到如今這個文件裏面徹底爲空,你只要按照咱們的標準格式寫入我要執行的系統變量,它就能夠在指定的時間執行,那麼這個標準是什麼,看一下。
(四)基本格式 :
* * * * * command
前面這五個星號表明時間和日期,後面command表明執行的命令或者腳本。
這五個星號分別表明的含義。
分 時 日 月 周 命令
第1列表示分鐘,範圍是1~59,每分鐘用*或者 */1表示
第2列表示小時,範圍是0~23(0表示0點)
第3列表示日期,範圍是1~31
第4列表示月份,範圍是1~12
第5列標識號星期0~6(注意0表示星期天)
第6列要運行的命令。
其實這個東西不難,咱們想熟悉它,來舉幾個例子。
crontab –e 進入定時器的編輯。
咱們輸入:
30 21 * * * command
若是寫的是星號,表明任意時間,若是寫的是具體的值,寫的是具體的時間。
上面的例子表示每晚的21:30執行命令。
0 17 * * 1command
每週一的17點0分執行。
這裏來看我若是單獨寫個10 表明什麼,
10 * * * *command
有人說,它會每10分鐘執行一次,有人說,它會在每一個小時的第10分鐘執行一次,哪一個對,固然是第二種了,由於它表明的是一個小時的第幾分鐘。若是想要表示每隔10分鐘,就須要用這樣一些特殊符號,
特殊符號* 表明任什麼時候間
,逗號,表明一個不連續的時間。
-減號,表明連續的時間範圍,
若是用*/除以一個特定的值,才表明每隔必定的時間執行。
45 4 1,10 * * command
咱們來看一下這一個,它表明什麼時間執行,說過逗號表明不連續的時間,因此說,該行表示每個月一、10日的4 : 45執行命令。
40 4 * * 1-5command
表示每週一到週五的凌晨4點40分執行命令。
*/10 4* * *
天天的凌晨4點,每隔10分鐘執行一次命令。執行6次。
咱們把這些都刪除了,演示一個命令。
* * * * echo 111 >>/tmp/test
保存退出。
看看系統時間, 輸入date
只要這裏知足一分鐘,變化,它就會執行一次,咱們這個定時任務最小識別的是分鐘,因此它不知道這個秒的變化,它檢測的就是分鐘,只要分鐘變化,這個任務就執行,不必定要恰好是一分鐘,由於它能識別的最小範圍是分鐘。咱們在date一下。
看分鐘已經變化了
輸入:
cat /etc/test
來查看,test文件裏面已經有了111,再過一分鐘,這裏面還有111。這個就是定時任務。固然這個定時任務沒有任何的意義,就是讓你們瞭解一下定時任務的一些使用,計劃任務就是這麼簡單了,可是計劃任務,執行的語句若是是多條,則須要用藥shell腳本,本身先寫一個shell腳本,而後在計劃任務中,執行這個腳本便可。至於shell腳本的寫法, 這裏不贅述。
這個就能查看定時任務了。