?安裝crontab
# yum安裝crontab
yum install -y crontab# 開機自啟crond服務并現在啟動
systemctl enable --now crond
cron系統任務調度
系統任務調度
: 系統周期性所要執行的工作,比如寫緩存數據到硬盤、日志清理等。
在/etc/crontab
文件,這個就是系統任務調度
的配置文件
。
查看
# 系統級別的crontab會記錄在該文件下
cat /etc/crontab
?
/etc/crontab文件格式
/etc/crontab
文件包括下面幾行:
# 前四行是用來配置crond任務運行的環境變量
## SHELL變量指定了系統要使用哪個shell,這里是bash
SHELL=/bin/bash
## PATH變量指定了系統執行命令的路徑
PATH=/sbin:/bin:/usr/sbin:/usr/bin
## MAILTO變量指定了crond的任務執行信息將通過電子郵件發送給root用戶,如果MAILTO變量的值為空,則表示不發送任務執行信息給用戶
MAILTO=""
## HOME變量指定了在執行命令或者腳本時使用的主目錄
HOME=/# 任務部分
51 * * * * root run-parts /etc/cron.hourly
24 7 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
?
/var/spool/cron 目錄下存放的是每個用戶的crontab任務,每個任務以創建者命名
/var/spool/mail/root 這個每次收到任務后都在有一個郵件提示
?crontab的使用
corntab -u username?? ?- 屬性??
-e? (編輯工作表)
-l ???(列出工作表的命令)
-r? ? (刪除工作表)
操作:
//編輯工作表
crontab -e
// 列出工作表里的命令
crontab -l
//刪除工作表
crontab -r
?進入文件之后:
crontab的命令構成 : 時間+動作?
時間:分 時 日 月 周 按序五種
操作符 :
* 取值范圍內所有數字
/ 每果多少個數字
- 從x 到Z
, 散列數字
#重定向到log.txt文件中,因為Crontab任務是在后臺運行的,無法直接在終端中看到輸出。#每分鐘執行一次
* * * * * echo "hello linux" >> ~/log.txt#每小時的第2分鐘和第25分鐘執行
2,25 * * * * echo "hello linux"#每周一下午3點到下午6點每分鐘執行
* 15-18 * * 1 echo "hello linux"
編寫完成后退出等待執行即可!!!
計劃任務每執行一次,就會發送一封郵件給管理員
提示:你在 /var/spool/mail/root中有新的文件(執行完任意操作后出現這個提示,也不會自己蹦出來)
關閉提示:
# 發送郵件給指定用戶(不寫就是沒有)
MAILTO=""
?清空郵件箱
# 清空收件箱
cat /dev/null > /var/spool/mail/root