crond就是計畫任務,類似於我們平時生活中的鬧鐘。定點執行。
計畫任務主要分為以下兩種使用情況
1)系統級別的定時任務: 臨時檔案清理、系統資訊採集、日誌檔案切割
2)使用者級別的定時任務: 定時向網際網路同步時間、定時備份系統配置檔案、定時備份資料庫的資料
檔案說明
/etc/crontab
crontab配置檔案
/etc/cron.deny
該檔案中所列使用者不允許使用crontab命令
/var/spool/cron/*
所有使用者定時檔案都存放在此目錄,檔案以使用者名稱命名
/var/log/cron*/
定時任務執行後的日誌檔案
crontab配置檔案記錄了時間週期的含義
[root@yfy ~]# vim /etc/crontab
shell=/bin/bash #執行命令的直譯器
path=/sbin:/bin:/usr/sbin:/usr/bin #環境變數
mailto=root #郵件發給誰
# 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 #星期
# | | | | |
# * * * * * command to be executed
# * 表示任意的(分、時、日、月、周)時間都執行
# - 表示乙個時間範圍段, 如5-7點
# , 表示分隔時段, 如6,0,4表示周
六、日、四
# /1 表示每隔n單位時間, 如*/10 每10分鐘
表示式例項
00 02 * * * ls #每天的凌晨2點整執行
00 02 1 * * ls #每月的1日的凌晨2點整執行
00 02 14 2 * ls #每年的2月14日凌晨2點執行
00 02 * * 7 ls #每週天的凌晨2點整執行
00 02 * 6 5 ls #每年的6月周五凌晨2點執行
00 02 14 * 7 ls #每月14日或每週日的凌晨2點都執行
00 02 14 2 7 ls #
*/10 02 * * * ls #每天凌晨2點,每隔10分鐘執行一次
* * * * * ls #每分鐘都執行
00 00 14 2 * ls #每年2月14日的凌晨執行命令
*/5 * * * * ls #每隔5分鐘執行一次
00 02 * 1,5,8 * ls #每年的1月5月8月凌晨2點執行
00 02 1-8 * * ls #每月1號到8號凌晨2點執行
0 21 * * * ls #每天晚上21:00執行
45 4 1,10,22 * * ls #每月1、10、22日的4:45執行
45 4 1-10 * * ls #每月1到10日的4:45執行
3,15 8-11 */2 * * ls #每隔兩天的上午8點到11點的第3和第15分鐘執行
0 23-7/1 * * * ls #晚上11點到早上7點之間,每隔一小時執行
15 21 * * 1-5 ls #周一到周五每天晚上21:15執行
crontab選項引數
說明-l
計畫任務列表
-u指定使用者
-e編輯計畫任務
-r清空計畫任務
#1.為計畫任務增加必要的注釋
[root@yfy cron]# crontab -l
#time sync
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
#2.規範計畫任務執行指令碼存放的路徑/soft/scripts
[root@yfy cron]# crontab -l
#backup www to /backup
00 01 * * * /bin/sh /soft/scripts/www.backup.sh &>/dev/null
#3.執行shell指令碼任務前加/bin/sh,指令碼結尾加&> /dev/null
(1)每天凌晨3點做一次備份?備份/etc/目錄到/backup下面
1) 將備份命令寫入乙個指令碼中
2) 每天備份檔案名要求格式: 2019-10-24_hostname_etc.tar.gz
3) 在執行計畫任務時,不要輸出任務資訊
4) 存放備份內容的目錄要求只保留三天的資料
#1.實現如上備份需求
[root@yfy backup]# mkdir -p /backup
[root@yfy backup]# tar zcf $(date +%f)_$(hostname)_etc.tar.gz /etc
[root@yfy backup]# find /backup -name "*.tar.gz" -mtime -3 -exec rm -f {} \;
#2.將命令寫入至乙個檔案中
[root@yfy backup]# vim /root/back.sh
mkdir -p /backup
cd /backup
tar zcf $(date +%f)_$(hostname)_etc.tar.gz /etc
find /backup -name "*.tar.gz" -mtime +3 -exec rm -f {} \;
#3.配置定時任務
[root@yfy backup]# crontab -e
00 03 * * * /bin/sh /root/back.sh &>/dev/null
(2)書寫乙個定時任務,每天0點將/var/log/nginx下7天之前大於1g的日誌檔案轉移到/backup/2019-xx-xx的目錄中
#1.建立指令碼
[root@yfy backup]# vim find.sh
#!/bin/sh
dir=/backup/$(date +%f)
mkdir -p $dir
find /var/log/nginx -type f -size +1g -name "*.log" -mtime +7 -exec mv {} \dir \;
#2.配置定時任務
[root@yfy backup]# crontab -e
00 03 * * * bash /root/find.sh &>/dev/null
linux之計畫任務
在進行計畫任務之前,一定要確保伺服器的時間是準確無誤的,否則將造成計畫任務失敗或者無法達到預期效果,尤其是在大規模的集群環境中,更顯得尤為重要,所以我們首先要學會的就是同步伺服器時間。centos6 ntpdate 172.x.x x 將時間與伺服器同步 vim etc ntp.conf 修改此檔案...
Linux之計畫任務
1 at 一次性任務配置,其任務只能在指定的時間執行一次,前提是atd服務開啟。root localhost at 17 45 2017 05 30 設定任務 at ls a.txt at job 3 at 2017 05 30 17 45 root localhost atq 檢視一次性任務 ro...
Linux筆記之計畫任務
計畫任務有一次性和長期性之分 part 1 一次性任務 引數 作用at 時間 安排一次性任務 atq 或 at l 檢視任務列表 at c 序號 瀏覽任務與設定環境 atrm 序號 刪除任務 root okaka desktop at 14 45 at service network restart...