Day 24 定时任务及练习题

Day 24 定时任务及练习题

第1章 定时任务与脚本练习题

1.1 每天晚上12点打包备份/etc目录到/tmp 脚本

命令行使用命令

[root@oldboyedu50-lnb ~]# tar zcf  /tmp/etc-`date +%F`.tar.gz  /etc/

tar: Removing leading `/' from member names

[root@oldboyedu50-lnb ~]# ll /tmp/etc-2018-08-0*

-rw-r--r-- 1 root root 9734087 Aug  6 09:19 /tmp/etc-2018-08-06.tar.gz

写入脚本

[root@oldboyedu50-lnb ~]# vim /server/scripts/bak-etc.sh

tar zcf  /tmp/etc-`date +%F`.tar.gz  /etc/

测试脚本

[root@oldboyedu50-lnb ~]# sh /server/scripts/bak-etc.sh  

tar: Removing leading `/' from member names

查看结果

[root@oldboyedu50-lnb ~]# ll /tmp/

-rw-r--r-- 1 root root 9734062 Aug  9 09:41 etc-2018-08-09.tar.gz

书写定时任务(先写入每分钟执行查看/var/spool/cron/root日志是否执行

[root@oldboy50-lnb ~]#crontab -e

bak etc xuzhen at 2018.8.9

* * * * *   /bin/sh /server/scripts/bak-etc.sh

最后根据题目要求修改时间

[root@oldboy50-lnb ~]#crontab -e

backup etc  oldboy at 2018xxxxxx

00 00 * * *  /bin/sh /server/scripts/bak-etc.sh

1.2 定时任务中命令或脚本结果(正确或错误)定向到黑洞>/dev/null)或追加到指定文件中>>

[root@oldboy50-lnb ~]#crontab -l

#print name 许震 at 2018.8.8

*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1

#print name xuzhen at 2018.8.8

#00 00 * * * tar zcf /tmp/etc`date +\%F_\%T`.tar.gz  /etc/ >/dev/null 2>&1

#00 */2 * * * tar zcf /bakup/etc.xiao`date +\%F_\%T`.tar.gz  /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig  >/dev/null 2>&1

#print name xuzhen at 2018.8.9

#00 00 * * *  /bin/sh /server/scripts/bak-etc.sh  >/dev/null 2>&1

#00 */2 * * * /bin/sh /server/scripts/xuzheng.sh >/dev/null 2>&1

#print name xuzhen at 2018.8.9

#* * * * * /bin/sh /server/scripts/ip.sh >>/tmp/ip.log 2>&1

定时任务如果没有定向到文件或空

定时任务会不断给你发送邮件,会存放在邮件临时目录等待发送,会导致小文件堆积,造成inode号满,inode号用光,也可以说是定时任务书写不规范导致的。

这时就要删除大量小文件find找出大于1M的目录确认后删除

ls *.txt |xargs rm

ls *.txt |xargs -n数字 rm

缩小范围一点点删除

ls 1*.txt |xargs rm

删除目录,记录好目录权限和所有者

1.3 每分钟显示当前系统的ip地址和系统的时间 追加到/tmp/ip.log中(需要用到脚本与定时任务)

ip需要用绝对路径 不用就报错

[root@oldboy50-lnb /server/scripts]#cat ip.sh

/sbin/ip a s eth0|awk -F"[/ ]+" 'NR==3{print $3}'

date +%F_%T

书写定时任务

[root@oldboy50-lnb ~]#crontab -l

#print name xuzhen at 2018.8.9

#* * * * * /bin/sh /server/scripts/ip.sh >>/tmp/ip.log 2>&1

查看文件内容是否导入

[root@oldboy50-lnb /server/scripts]#cat /tmp/ip.log

10.0.0.200

2018-08-09_11:24:01

10.0.0.200

2018-08-09_11:25:01

1.4 显示脚本执行过程

[root@oldboy50-lnb /server/scripts]#sh -x ip.sh  sh命令参数x显示脚本执行过程

+ awk '-F[/ ]+' 'NR==3{print $3}'

+ /sbin/ip a s eth0

10.0.0.200

+ date +%F_%T

2018-08-09_15:48:10

+号开头的行 表示执行过程

不是+号开头的 显示或是输出结果

1.5 每两个小时打包备份 /etc/rc.local /etc/hosts /etc/fstab /etc/sysconfig 备份到/backup目录 脚本

写入脚本

[root@oldboy50-lnb /server/scripts]#cat xuzheng.sh

tar zchf /backup/conf-`date +%F_%T`.tzr.gz /etc/rc.local/ /etc/hosts/ /etc/fstab/ /etc/sysconfig/

写入定时任务

[root@oldboy50-lnb /server/scripts]#crontab -l

#print name xuzhen at 2018.8.9

00 */2 * * * /bin/sh /server/scripts/xuzheng.sh >/dev/null 2>&1

1.6 每天晚上12点打包备份/etc/目录 备份到 /backup下面  备份到/backup/10.0.0.200

指定变量

[root@oldboyedu50-lnb /backup]# ip=10.0.0.200

[root@oldboyedu50-lnb /backup]# echo $ip

10.0.0.200

解决空格问题(命令结果放在变量中)

[root@oldboyedu50-lnb /backup]# ip=`hostname -I|awk '{print $1}'`  使用awk获取第一行 避错

[root@oldboyedu50-lnb /backup]# echo $ip.log          测试

10.0.0.200.log

写入脚本

[root@oldboy50-lnb /server/scripts]#cat bak-etc.sh

ip=`hostname -I|awk '{print $1}'`                指定变量

mkdir -p /backup/$ip                             使用变量

tar zchf /backup/$ip/etc-`date +%F_%T`.tar.gz  etc/  压缩

运行脚本检查

[root@oldboy50-lnb /server/scripts]#sh bak-etc.sh

tar: etc: Cannot stat: No such file or directory

tar: Exiting with failure status due to previous errors

[root@oldboy50-lnb /backup]#ls

10.0.0.200

[root@oldboy50-lnb /backup]#cd 10.0.0.200/

[root@oldboy50-lnb /backup/10.0.0.200]#ls

etc-2018-08-09_12:56:30.tar.gz  etc-2018-08-09_16:15:59.tar.gz

写入定时任务

[root@oldboy50-lnb /backup/10.0.0.200]#crontab -l

#print name xuzhen at 2018.8.9

00 00 * * *  /bin/sh /server/scripts/bak-etc.sh  >/dev/null 2>&1

1.7 总结

1.      定时任务常见故障

1)有的命令要使用绝对路径

2)定时任务书写不规范导致inode号占满

2.      定时执行命令

3.      备份要一步一步来


猜你喜欢

转载自blog.51cto.com/13859649/2156907