第24课 定时任务下部 2019-04-28

第五周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

你可能感兴趣的:(第24课 定时任务下部 2019-04-28)