crontab命令常見於Unix和Linux的操作系統之中,用於設置周期性被執行的指令。該命令從標准輸入設備讀取指令,並將其存放於“crontab”文件中,以供之后讀取和執行。通常,crontab儲存的指令被守護進程激活。crond 常常在后台運行,每一分鍾檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
一、安裝
1、ubuntu安裝cron
安裝:apt-get install cron 啟動:service cron start 重啟:service cron restart 停止:service cron stop 檢查狀態:service cron status 查詢cron可用的命令:service cron 檢查Cronta工具是否安裝:crontab -l
附centOS安裝:
centOSs安裝cron:(1)vixie-cron 軟件包是 cron 的主程序;(2)crontabs 軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。
yum install vixie-cron
yum install crontabs
配置:
service crond start //啟動服務 service crond stop //關閉服務 service crond restart //重啟服務 service crond reload //重新載入配置 service crond status //查看crontab服務狀態
在CentOS系統中加入開機自動啟動:
chkconfig --level 345 crond on
二、使用
1、啟動Cron服務
service cron start
2、使用Cron幫助
如果cron工作正常,那么你可以使用man命令查看其手冊描述的詳細用法。(退出按下q鍵或h鍵)
man crontab

3、對Cron作業進行列表顯示
使用以下命令列出當前用戶計划的cron作業。
crontab -l

如果想查看其它用戶的cron作業,可以使用如下命令(這會列出指定用戶的cron作業):
crontab -l -u username
4、編輯Cron作業
第一次進入的時候要選擇編輯器,選擇后你可以配置新cron作業了,一般是選3
crontab -e

下面的例子,創建一個cron作業,它每分鍾輸出文本“test crontab is work or not”並把文本保存到/var/www/html/testcrontab.txt。
寫入以下的腳本,保存退出,一旦保存了此cron腳本文件,就可以把它添加到計划的作業中。
* * * * * echo "test crontab is work or not" >> /var/www/html/testcrontab.txt

Cron表達式詳解可參考這里https://blog.csdn.net/longgeaisisi/article/details/90400969
運行結果:

5、移除Cron作業
使用下面的命令移除已經計划的cron作業
crontab -r
1
使用下面的命令移除所有已計划的cron作業,且無需再次確認。
crontab -ir
1
附
-u user:用來設定某個用戶的crontab服務;
file:file是命令文件的名字,表示將file做為crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標准輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。
-l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。
-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。
-i:在刪除用戶的crontab文件時給確認提示。
6、總結
(1)新創建的cron作業,不會馬上執行,至少要過2分鍾才執行。如果重啟cron服務則會馬上執行。
(2)Cron是Unix系統的一個配置定期任務的工具,用於定期或者以一定的時間間隔執行一些命令或者腳本;可執行的任務范圍可以是每天夜里自動備份用戶的home文件夾,也可以每個小時記錄CPU的信息日志。
crond位於/etc/rc.d/init.d/crond 或 /etc/init.d 或 /etc/rc.d /rc5.d/S90crond,最常用/var/lock/subsys/crond。
(3)crontab(cron table)命令用於編輯執行中的定期任務列表,並且操作是基於每個用戶的,每一個用戶(包括root用戶)都擁有自己的crontab。
crontab位於/usr/bin/crontab。
crond守護進程是在系統啟動時由init進程啟動的,受init進程的監視,如果它不存在了,會被init進程重新啟動。這個守護進程每分鍾喚醒一次,並通過檢查crontab文件判斷需要做什么。
每個用戶有一個以用戶名命名的crontab文件,存放在/var/spool/cron/crontabs目錄里。若管理員允許或者禁止其他用戶擁有crontab文件,則應編輯/etc/下面的cron.deny和cron.allow這兩個文件來禁止或允許用戶擁有自己的crontab文件。每一個用戶都可以有自己的crontab文件,但在一個較大的系統中,系統管理員一般會禁止這些文件,而只在整個系統保留一個這樣的文件。
轉載鏈接:https://blog.csdn.net/longgeaisisi/article/details/90477975
