Linux基礎學習-crond系統計劃任務

抖音不抖發表於2018-08-17

系統計劃任務

大部分系統管理工作都是通過定期自動執行某個指令碼來完成的,那麼如何定期執行某個指令碼,從而實現運維的自動化,這就要藉助Linux的cron功能了.

計劃任務分為一次性計劃任務和週期性計劃任務.

  • 一次性計劃任務
    • 每晚11點30分開啟網站服務.
  • 週期性計劃任務
    • 每週一的凌晨3點30分把/var/www/html目錄打包備份為backup.tar.gz

顧名思義,一次性計劃任務只執行一次,一般用於滿足臨時的工作需求,可以使用at命令實現.

如果你的Linux沒有此命令可以使用yum install at -y來安裝.

[root@qdlinux ~]# at 23:30
at> systemctl restart httpd
at> <EOT>
at > 此處同時按下Ctrl + D組合鍵來結束編寫計劃任務

//檢視已經設定好但還未執行的計劃任務
[root@qdlinux ~]# at -l
1   Fri Aug 17 23:30:00 2018 a root

//可以使用atrm任務序號刪除
[root@qdlinux ~]# atrm 1
[root@qdlinux ~]# at -l

如果希望Linux能夠週期性地、有規律地執行某些具體的任務,那麼可以使用crond服務再合適不過了.

如果你的Linux沒有此命令可以使用yum install cronie -y來安裝.

選項 解釋
crontab -e 建立、編輯計劃任務
crontab -l 檢視當前的計劃任務
crontab -r 刪除某條計劃任務
crontab -u 編輯其他人的計劃任務

注意:此命令使用編輯的是/var/spool/cron/username檔案.

此命令記憶口訣 ==”分、時、日、月、星期 命令”== 請牢記!!!

欄位 說明
取值0-59的整數
取值0-23的任意整數
取值1-31的任意整數
取值1-12的任意整數
星期 取值為0-7,其中0與7均為星期日
命令 要執行的命令或程式指令碼
//每週一、三、五的凌晨3點30分打包/var/www/html目錄
[root@qdlinux ~]# crontab -e
crontab: installing new crontab
[root@qdlinux ~]# crontab -l
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
30 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /var/www/html

記憶練習示例

00 02 * * * ls  //每天的凌晨2點執行ls
00 02 1 * * ls  //每月1號凌晨2點執行ls
00 02 14 2 * ls //每年的2月的14號凌晨2點執行ls
00 02 * * 7 ls  //每週日凌晨2點執行ls
00 02 * 6 5 ls  //每年6月份周5的凌晨2點執行ls
00 02 14 * 7 ls //每月週日或14號凌晨2點執行
00 02 14 2 7 ls //每年2月14號或週日凌晨2點執行
*  02 * * * ls  //每天凌晨2點的每分鐘執行
* * 14 2 * ls   //每年2月份14號每分鐘執行
* * * * * ls    //每分鐘執行
*/5 * * * * ls  //每5分鐘執行
00 02 * 1,5,8 * ls //每年1,5,8月的每天凌晨2點執行
00 02 1-8 * * ls //每月的1-8號凌晨2點執行

//這裡需要注意的是分欄位必須要求數值,不能為空或者*號
//日和星期欄位不能同時使用,否則會發生衝突

//每週一到週五凌晨1點清空/tmp目錄內的所有檔案
[root@qdlinux ~]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
[root@qdlinux ~]# crontab -l
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*

相關文章