第五周day6.png
1、每天晚上12点 打包备份/etc/目录到/tmp下面
第1个里程碑-命令行测试 (测试命令是否ok)
第2个里程碑-书写脚本并测试脚本
第3个里程碑-写入定时任务 每分钟执行 检查
第4个里程碑-写入定时任务 根据要求修改时间
步骤:
第1个里程碑-命令行测试 (测试命令是否ok)
[root@oldboyedu59 ~]# tar zcf /tmp/etc.tar.gz /etc/
tar: Removing leading `/' from member names
[root@oldboyedu59 ~]# date +%F
2019-04-28
[root@oldboyedu59 ~]# tar zcf /tmp/etc-$(date +%F).tar.gz /etc/
tar: Removing leading `/' from member names
[root@oldboyedu59 ~]# tar xf /tmp/etc-2019-04-28.tar.gz -C /opt/
第2个里程碑-书写脚本并测试脚本
书写脚本
[root@oldboyedu59 ~]# mkdir -p /server/scripts
[root@oldboyedu59 ~]# cat /server/scripts/bak-etc.sh
#!/bin/bash
tar zcf /tmp/etc-$(date +%F).tar.gz /etc/
测试脚本
[root@oldboyedu59 ~]# sh /server/scripts/bak-etc.sh
tar: Removing leading `/' from member names
[root@oldboyedu59 ~]# ll /tmp/etc-2019-04-28.tar.gz
-rw-r--r-- 1 root root 10212309 Apr 28 09:52 /tmp/etc-2019-04-28.tar.gz
第3个里程碑-写入定时任务 每分钟 检查
[root@oldboyedu59 ~]# crontab -l
#backup /etc/ to /tmp by liyy at 20190101
* * * * * sh /server/scripts/bak-etc.sh
检查
1.看日志 : cat /var/log/cron
2.看结果
第4个里程碑-写入定时任务 根据要求修改时间
[root@oldboyedu59 ~]# crontab -l
#show time by liyy at 20190101
#*/2 * * * * date >>/tmp/time.log
#00 21-23,00 * * * date >>/tmp/time.log
#backup /etc/ to /tmp by liyy at 20190101
00 00 * * * sh /server/scripts/bak-etc.sh
2、在定时任务里面 每个命令或脚本 定向到空 或追加到文件
2.1预备姿势:
/dev/null 定向到黑洞
>/dev/null 2>/dev/null 正确的信息 错误信息 定向到黑洞中
>/dev/null 2>&1 正确的信息 错误信息 定向到黑洞中
&>/dev/null 正确的信息 错误信息 定向到黑洞中
追加到文件
>>/tmp/cron.log 2>&1 正确的信息 错误信息 定向到黑洞中
2.2写法:
[root@oldboyedu59 ~]# crontab -e
#show time by liyy at 20190101
#*/2 * * * * date >>/tmp/time.log 2>&1
#* * * * * date +\%F_\%w >>/tmp/time.log 2>&1
#00 21-23,00 * * * date >>/tmp/time.log 2>&1
#backup /etc/ to /tmp by liyy at 20190101
00 00 * * * sh /server/scripts/bak-etc.sh >/dev/null 2>&1
2.3原因
如果不定向到空或追加到文件
定时任务会以邮件的形式把 输出到屏幕的内容 发给你
2.3.1企业故障案例:定时任务没有定向到空或追加到文件的故障
1.系统邮件服务开启
你就会不断收到邮件
You hava new mail in /var/spool/mail/root
2.系统邮件服务关闭(大部分情况)
把没有发送出去的邮件 临时放起来
/var/spool/postfix/maildrop (这个目录下面会有大量的小文件)
inode满了
3、每分钟 显示当前系统的时间和ip地址 追加到 /tmp/ip.log中
[root@oldboy59 scripts]# cat ip.sh
date
/usr/sbin/ip a s eth0|awk -F"[ /]+" 'NR==3{print $3}'
[root@oldboy59 scripts]# crontab -l |tail -1
* * * * * sh /server/scripts/ip.sh >>/tmp/ip.log 2>&1
[root@oldboy59 scripts]# cat /tmp/ip.log
time:Sun Apr 28 12:02:01 CST 2019
ip: 10.0.0.200