linux 定時任務,crontab

2021-08-21 21:54:23 字數 3459 閱讀 4886

一、crontab 定時任務:

1、crontab後跟引數詳解:

crontab -l : 檢視服務是否建立成功

crontab -r : 刪除目前的時程表

crontab -e 定時任務編輯

crontab -i:在刪除使用者的crontab檔案時給確認提示

crontab -u: 只有root才能進行這個任務,也即幫其他使用者新建/刪除crontab工作排程;

1) 在命令列輸入: crontab -e 然後新增相應的任務,wq存檔退出。

root檢視自己的cron設定:crontab -u root -l

root想刪除fred的cron設定:crontab -u fred -r

2、檢視服務是否已經執行

ps -ef |grep crontab

ps -ef |grep cron

0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc #分 時 日 月 周 |《**********====命令列********************===》|

代表意義

分鐘小時

日期月份周命令

數字範圍

0~59

0~23

1~31

1~12

0~7就命令啊

特殊字元

代表意義

*(星號)

代表任何時刻都接受的意思,例如:一內那個日、月、週都是*,就代表著不論

何月、何日的禮拜幾的12:00都執行後續命令的意思

,(逗號)

代表分隔時段的意思,例如:如果要執行的工作是3:00與6:00時,就會是 :

0 3,6 * * * command

時間還是有五列,不過第二列是3,6,代表3與6都適用

-(減號)

代表一段時間範圍內,例如:8點到12點之間的每小時20分鐘都進行一項工作「

20 8-12 * * * command

/n(斜線)

n:代表數字,即:每隔n單位間隔的意思,例如:每5分鐘進行一次:

*/5 * * * * command

也可寫成:0-59/5

*/10 * * * * /bin/bash /home/unzip_file.sh 每隔10分鐘執行一次

3、cron是乙個linux下 的定時執行工具,可以在無需人工干預的情況下執行作業。

一般啟動服務用  /sbin/service crond start 

根使用者的cron服務可以用 sudo service crond start

/sbin/service crond start    //啟動服務

/sbin/service crond stop     //關閉服務

/sbin/service crond restart  //重啟服務

/sbin/service crond reload   //重新載入配置

/sbin/service crond status   //檢視服務狀態 

ntsysv //檢視crontab服務是否已設定為開機啟動

chkconfig –level 35 crond on //加入開機自動啟動

4、任務排程的crond常駐命令

1)crond 是linux用來定期執行程式的命令。當安裝完成作業系統之後,預設便會啟動此任務排程命令。crond命令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。

2) linux任務排程的工作主要分為以下兩類:

a、系統執行的工作:系統週期性所要執行的工作,如備份系統資料、清理快取

b、個人執行的工作:某個使用者定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,

這些 工作可由每個使用者自行設定

3)crontab是unix系統下的定時任務觸發器,其使用者的許可權記載在下列兩個檔案中:檔案含義

/etc/cron.deny 該檔案中所列的使用者不允許使用crontab命令

/etc/cron.allow 該檔案中所列的使用者允許使用crontab命令

/var/spool/cron/ 是所有使用者的crontab檔案

/var/spool/cron/crontabs

二、at命令實現定時任務

1、假如我們只是想要讓特定任務執行一次,那麼,這時候就要用到at監控程式了。

at類似列印程序,會把任務放到/var/spool/at目錄中,到指定時間執行它 。at命令相當於另乙個shell,執行at time命令時,它傳送乙個個命令,可以輸入任意命令或者程式。

2  at命令執行流程如下

語法:# at [引數] [時間]

at> 執行的指令

退出at命令 ctrl+d

# at 2:05 tomorrow

at>/home/kyle/do_job

at> ctrl+d

命令前提:

需要開啟atd程序(在redhat中atd是預設隨系統啟動而啟動)

3、 at time中的時間表示方法

minute    at now + 5 minutes   任務在5分鐘後執行

hour      at now + 1 hour      任務在1小時後執行

days      at now + 3 days      任務在3天後執行

weeks     at now + 2 weeks     任務在兩周後執行

fixed     at midnight          任務在午夜執行

fixed     at 10:30pm           任務在晚上10點30分

!!注意:linux預設為不啟動,而ubuntu預設為啟動的。

4、檢查是否啟動,用service atd檢查語法,

ps -ef | grep atd //檢視是否開啟atd

service atd status //檢查atd的狀態,

service atd start //啟動atd服務。

刪除系統中由at建立的正在等待被執行的任務

atrm 任務的工作號

例如: atrm 17

5、檢視at執行的具體內容:

一般位於/var/spool/at目錄下面, 用vi開啟,在最後一部分就是你的執行程式

6、常見引數

-m :當指定的任務被完成之後,將給使用者傳送郵件,即使沒有標準輸出

-i :atq的別名。  列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)

-d :atrm的別名。 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d)

-v :顯示任務將被執行的時間。  列出所有已經完成但尚未刪除的指定

-c :列印任務的內容到標準輸出

-v :顯示版本資訊

-q :後面加《列隊》 使用指定的列隊

-f :後面加《檔案》 從指定檔案讀入任務而不是從標準輸入讀入

-t :後面《時間引數》 以時間引數的形式提交要執行的任務

Linux linux定時任務crontab

crontab命令的功能是在一定的時間間隔排程一些命令的執行。它的配置檔案是 etc crontab。vim etc crontab etc crontab中每行指定乙個定時任務,其描述格式如下 minute hour daymonth dayofweek commandminute 從0到59的整...

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...

linux定時任務

crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...