标签:备份 错误 root 思路 cron 文件备份 nta yum ls -l
定时备份脚本在每天设定的时间内,准时准点的对我们要备份的数据信息进行备份;正因为每天备份大量的数据信息会叠加,对我们的磁盘产生负担,为了能够减轻我们磁盘容量的负担,又能实现我们每天的数据备份;我们今天开发的脚本呢,就是为了实现这样的需求;每天实现自动备份,当备份到第五天的时候,就把第一天的备份进行删除,只备份四天的备份,以此类推。
这样做的好处既不会影响我们的备份信息,又不会给我们的磁盘造成负担...
[root@server10 order]# vim back-up.sh
#!/bin/bash
#用途:备份数据并删除过期的数据
#联系方式:https://blog.csdn.net/weixin_42867972
#开发者:酋长rosen
#版本号:2.0.10
cd / #回到根目录才能实行绝对路径的备份
path="/test/etc-bak" #备份到对应目录下
way="/etc" #需要备份的路径
con="etc" #变量命名
tar -zvcf /test/etc-bak$way.`date +%F`.tar.gz $way >/dev/null 2>>/root.sh
#对文件进行性备份,备份的目录内容是/etc
num=`ls -l $path | grep -E "\<$con\>\..*\.tar.gz$" | wc -l` #统计文件的数量
if [ $num -gt 4 ] #判断是否为四个文件
then
rm -rf $path/`ls -l $path | grep "\<$con\>\..*\.tar.gz$" | head -n 1 | awk ‘{print $NF}‘ | xargs`
#删除前一天的备份文件
echo -e "\033[32m The backup successful \033[0m" #输出备份成功提示
fi
脚本思路解析:
1、定义变量 “way” 里面的是所备份的绝对路径, "con" 是方便对命名为 etc 文件的查找而赋值变量
2、对目标文件目录进行打包,以打包的文件加日期规范命名,如果备份不成功那就把错误信息汇报到 /root.sh文件下,方便我们查阅
3、对我们的备份进行数量统计,在我们规定的数量以内(目前规定是四个,可根据需求来定)
4、如果超过了四个,脚本就会执行操作并排序,对当天的文件备份的同时会把排在最前的备份文件进行删除操作
5、如果没有超过四个,备份一样会执行,但是删除操作不会执行
如果没有安装时间任务配置的话先安装时间任务配置,没有时间配置文件是无法执行的。
设定好时间,脚本在每天凌晨的四点钟执行自动备份。
[root@server10 order]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@server10 order]# cp back-up.sh /usr/local/sbin/back-up
[root@server10 ~]# yum -y install cron* #安装时间任务配置
[root@server10 ~]# crontab -e #对任务配置文件进行编辑
0 4 * * * back-up #每天四点定时执行脚本 back-up 命令备份
[root@server10 etc-bak]# ls #完成备份后察看备份的路径下内容
etc.2018-08-18.tar.gz etc.2018-08-19.tar.gz etc.2018-08-20.tar.gz etc.2018-08-21.tar.gz
标签:备份 错误 root 思路 cron 文件备份 nta yum ls -l
原文地址:http://blog.51cto.com/13481789/2335254