CentOS7的定時任務crond

(一)定時任務簡介

     系統的定時任務並不難,它在我們的服務器上是一個非常常見的任務,它指的就是讓我的計算機在指定的時間,運行指定的命令或者程序。在windows裏面有一任務器,它實現的就是系統定時任務,這個在個人機裏面用的不多,一般就是殺毒軟件什麼的會用到。但是在服務器上呢,我們很多的工作都不一定要人爲手工的工作,而且有一部分工作,像備份這樣的工作,每天都需要進行,而且不能在上班的時候白天執行,因爲那個時候的服務器壓力非常大,這個時候都應該讓它在凌晨執行,當然不需要管理員每天都凌晨的時候工作,我們可以讓計算機系統自動在指定的時間執行指定的命令。那麼這個時候就用到了一個非常常用的工具,定時任務。

(二)定時服務的啓動與關閉

如果想讓我的定時任務生效,我們必須要在CentOS中啓動一個叫crond的這樣的一個服務。

crond服務是Linux的內置服務,但它不會開機自動啓動。可以用以下命令啓動和停止服務:

啓動

systemctl start  crond.service

查看狀態:

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

我們來看一下這一個,它代表什麼時間執行,說過逗號代表不連續的時間,所以說,該行表示每月1、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腳本的寫法, 這裏不贅述。

這個就能查看定時任務了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章