Linux中的定時任務
阿新 • • 發佈:2021-08-08
Linux中的定時任務
定時任務概述
定時任務的服務名:crond
crond就是計劃任務,類似於我們平時生活中的鬧鐘,定點執行。
為什麼要用crond
1.系統級別的定時任務
臨時檔案清理 系統資訊採集 日誌檔案切割
2.使用者級別的定時任務
定時向網際網路同步時間 定時備份系統配置檔案 定時備份資料庫的資料
時間同步
先安裝時間同步的命令
yum install -y ntpdate
ntpdate [時間同步伺服器]
ntpdate time1.aliyun.com
定時任務的配置檔案
命令的環境變數
[Thu Jul 01 12:11:29 root@localhost ~] #echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
配置檔案
[Thu Jul 01 15:33:41 root@localhost ~] vim /etc/crontab # 定時任務中,指定bash shell SHELL=/bin/bash # 在PATH路徑中的命令可以直接寫不加絕對路徑 PATH=/sbin:/bin:/usr/sbin:/usr/bin # 將定時任務輸出的結果,傳送郵件給root MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed 分 時 日 月 周 #建議: 1.在寫定時任務的時候,所有命令一律使用絕對路徑 2.定時任務中最好不要有輸出,如果有,一定要扔到黑洞/dev/null 3.如果寫定時任務,儘量以指令碼的形式呈現 4.每個定時任務請寫上註釋
時間同步定時任務
## 定時任務的相關命令 crontab -e:edit 編輯(設定鬧鐘..) -l:list 列表(檢視鬧鐘..) -r:刪除所有的定時任務 -u:指定使用者建立定時任務或者檢視定時任務,或者刪除定時任務 ## 編輯定時任務 [Thu Jul 01 15:41:04 root@localhost ~] #crontab -e #Create by:wk Time:2021-07-01 Name:3mins ntp time */3 * * * * /user/sbin/ntpdate time1.aliyun.com $>/dev/null ## crontab日誌檔案 [Thu Jul 01 15:42:00 root@localhost ~] #tail -f /var/log/cron
定時任務編寫
00 02 * * * ls # 每天凌晨兩點執行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月的週五凌晨2點執行ls命令
00 02 14 * 7 ls # 每個月的14號如果這一天是週日在凌晨2點執行ls命令
00 02 14 2 7 ls # 每年2月14號剛好是週日的凌晨2點執行ls命令
*/10 02 * * * ls # 每天凌晨2點每10分鐘執行1次ls命令
* * * * * ls # 每分鐘執行一次ls命令
00 00 14 2 * ls # 每年的2月14日的零點執行ls命令
*/5 * * * * ls # 每5分鐘執行一次ls命令
00 02 * 1,5,8 * ls # 每年的1月,5月,8月的每天凌晨2點執行一次ls命令
00 02 1-8 * * ls # 每個月的1號到8號的凌晨2點執行一次ls命令
00 21 * * * ls # 每天的晚上21點執行ls命令
45 4 1,10,22 * * ls # 每個月的1號,10號,22號的凌晨4點45分執行一次ls命令
45 4 1-10 * * ls # 每個月的1號到10號凌晨4點45分執行一次ls命令
3,15 8-11 */2 * * ls # 每2天的8點到11點的3分鐘和15分鐘執行一次ls命令
00 23-7/1 * * * ls # 每天的23點-24點,1點-7點各執行一次ls命令
15 21 * * 1-5 ls # 每週一到週五的晚上21點15分執行一次ls命令
伺服器發郵件
yum install -y mailx
## 編輯郵件的配置檔案
[Thu Jul 01 15:48:44 root@localhost ~]
#vim /etc/mail.rc
set [email protected]
set smtp=smtps://smtp.qq.com:465
set [email protected]
set smtp-auth-password=lskqebgvqcoadfbe
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
##傳送郵件
[Thu Jul 01 15:54:15 root@localhost ~]
#echo 'dsb'|mail -s 'nihaosuai' [email protected]