CentOS7的定時任務crond

2021-08-19 14:18:06 字數 2549 閱讀 6287

(一)定時任務簡介

系統的定時任務並不難,它在我們的伺服器上是乙個非常常見的任務,它指的就是讓我的計算機在指定的時間,執行指定的命令或者程式。在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

(三)定時任務的使用

啟動之後,它的使用是非常簡單的。

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指令碼的寫法, 這裡不贅述。

這個就能檢視定時任務了。

centos 7 定時任務

前言 cron服務是linux的內建服務,但它不會開機自動啟動。可以用以下命令啟動和停止服務 sbin service crond start sbin service crond stop sbin service crond restart sbin service crond reload 要...

centos7 設定定時任務

1 crontab e直接進入vi模式新增。此任務儲存在 var spool cron 裡面對應的使用者名稱檔案 2.etc crontab 此計畫任務所有人可用,但是 使用者名稱 commend 多了個使用者名稱新增 3.檢視排程任務 crontab l 列出當前的所有排程任務 一 安裝 cron...

centos7配置定時任務

centos7自帶定時任務crontab 沒有的話安裝 yum install crontabs 開機啟動 systemctl enable crond 啟動服務 systemctl start crond 重啟systemctl restart crond 檢視狀態 systemctl statu...