crond計劃任務(wù)
- Crontab配置文件記錄了時間周期的含義
[root@ennan ~]# cat /etc/crontab
SHELL=/bin/bash # 執(zhí)行的命令解釋器
PATH=/sbin:/bin:/usr/sbin:/usr/bin # 環(huán)境變量
MAILTO=root # 郵件發(fā)送給誰
# 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) #星期
# | | | | |
# * * * * * user-name command to be executed
- crontab常用參數(shù)及選項
參數(shù) | 解釋 |
---|---|
-e | 編輯定時任務(wù) |
-l | 查看定時任務(wù) |
-r | 刪除定時任務(wù) |
-u | 指定其他用戶 |
使用-r會刪除目前所有的定時任務(wù),慎用
- 計劃任務(wù)編寫與實踐
- 每5分鐘執(zhí)行一次時間同步
# 測試命令
[root@ennan ~]# ntpdate ntp1.aliyun.com
26 Aug 14:57:48 ntpdate[8147]: step time server 120.25.115.20 offset -2.430188 sec
編寫定時任務(wù)
[root@ennan ~]# crontab -e
# 查看定時任務(wù)
[root@ennan ~]# crontab -l
# 每5分鐘執(zhí)行一次時間同步
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &> /dev/null
- 每天的下午3,5點磺平,每隔半小時執(zhí)行一次sync命令
[root@ennan ~]# crontab -l
# 每天的下午3,5點邻吭,每隔半小時執(zhí)行一次sync命令
*/30 15,17 * * * sync &> /dev/null
- 每天凌晨3點做一次備份锅移?備份/etc/目錄到/backup下面
(1) 將備份命令寫入一個腳本中
(2) 每天備份文件名要求格式: 2019-05-01_hostname_etc.tar.gz
(3) 在執(zhí)行計劃任務(wù)時,不要輸出任務(wù)信息
(4) 存放備份內(nèi)容的目錄要求只保留三天的數(shù)據(jù)
# 根據(jù)要求編寫腳本
[root@ennan ~]# cat back.sh
mkdir -p /backup
tar czf /backup/$(date +%F)_$(hostname)_etc.tar.gz /etc/
find /backup/ -name "etc.tar.gz" -mtime +3 | xargs rm -f
# 編寫定時任務(wù)
[root@ennan ~]# crontab -l
# 每天三點備份/etc目錄
00 03 * * * bash /root/back.sh &> /dev/null
定時任務(wù)編寫規(guī)范
- 給定時任務(wù)注釋
- 將需要定期執(zhí)行的任務(wù)寫入Shell腳本中,避免直接使用命令無法執(zhí)行的情況tar date
- 定時任務(wù)的結(jié)尾一定要有&>/dev/null或者將結(jié)果追加重定向>>/tmp/date.log文件
- 注意有些命令是無法成功執(zhí)行的 echo "123" >>/tmp/test.log &>/dev/null
- 如果一定要是用命令关顷,命令必須使用絕對路徑
定時任務(wù)如何備份
定時的備份/var/spool/cron/{usernmae}