1.玩crond必須以下任務開啟 [root@wen ~]# chkconfig --list crond crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@wen ~]# ps -ef |grep crond|grep -v grep root 1 ...
1.玩crond必須以下任務開啟
[root@wen ~]# chkconfig --list crond
crond 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@wen ~]# ps -ef |grep crond|grep -v grep
root 1643 1 0 19:11 ? 00:00:00 crond
2.實戰練習:
案例一:每隔2個小時將系統文件/etc/services文件打包備份到/tmp下(每次備份按時間生成不同的備份包)
2.1.命令行測試
2.1.1到目標內容的上級目錄打包
[root@wen etc]# tar zcvf /tmp/service.tar.gz ./services
./services
2.1.2要打的包,前面是包名,後面是內容
[root@wen etc]# tar zcvf /tmp/service_$(date +%F-%H).tar.gz ./services
./services
2.2.1在寫腳本里
a.寫腳本不要亂放,放到/server/scripts/下
b.壓縮包文件名添加時間時註意與定時任務執行時間一致且使用%要轉義,不然會出錯誤
cd /etc/ &&\
tar zcf /tmp/service_$(date +\%F-\%H).tar.gz ./services
2.2.2測試腳本例
直接執行腳本沒有許可權執行
[root@wen ~]# echo 'date +%F ' > /server/scripts/oldboy.sh
[root@wen ~]# /server/scripts/oldboy.sh
-bash: /server/scripts/oldboy.sh: 許可權不夠
但一般不用+x的方法
[root@wen ~]# chmod +x /server/scripts/oldboy.sh
[root@wen ~]# /server/scripts/oldboy.sh
2017-10-20
[root@wen ~]# chmod -x /server/scripts/oldboy.sh
測試腳本用/bin/sh
[root@wen ~]# /bin/sh /server/scripts/oldboy.sh
2017-10-20
相當於
[root@wen ~]# sh < /server/scripts/oldboy.sh
2017-10-20
2.3測試寫好的腳本
[root@wen scripts]# /bin/sh /server/scripts/del_file.sh
2,4.編輯定時任務
a.註釋,直接複製粘貼(shift +insert),減少錯誤
b.註意坑:整點,第一段是00,而預設的*代表每分鐘都執行
c.最後加上錯誤重定向 >/dev/null 2>&1
[root@wen scripts]#crontab -e
#data tar
00 */2 * * * /bin/sh /server/scripts/data_tar.sh >/dev/null 2>&1
2.5.1查看定時任務
[root@wen scripts]# crontab -l
#data tar
00 */2 * * * /bin/sh /server/scripts/data_tar.sh >/dev/null 2>&1
2.5.2查看執行情況日誌,查看目錄
[root@wen scripts]# tail -f /var/log/cron
案列二:結合案列一,每天0點刪除前7天的文件
1.命令行測試,管道前後不用加空格
[root@wen tmp]# find /tmp/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f
2.寫腳本
[root@wen scripts]# vim del_file.sh
複製粘貼上面命令行的內容
3.測試腳本
[root@wen scripts]# /bin/sh /server/scripts/del_file.sh
-x 查看腳本執行過程
[root@wen scripts]# /bin/sh -x /server/scripts/del_file.sh
+ xargs rm -f
+ find /tmp/ -type f -name '*.tar.gz' -mtime +7
4.寫定時任務,粘貼不要手敲
要寫註釋,最後要添加錯誤重定向,tar文件不要使用參數-v列印
[root@wen scripts]# crontab -e
#del_file
00 00 * * * /bin/sh /server/scripts/del_file.sh >/dev/null 2>&1