shell脚本 每天定时进行自动备份实战脚本~~~
发布时间:2020-12-15 23:06:37 所属栏目:安全 来源:网络整理
导读:定时备份脚本 在每天设定的时间内,准时准点的对我们要备份的数据信息进行备份;正因为每天备份大量的数据信息会叠加,对我们的磁盘产生负担,为了能够减轻我们磁盘容量的负担,又能实现我们每天的数据备份;我们今天开发的脚本呢,就是为了实现这样的需求;
定时备份脚本
在每天设定的时间内,准时准点的对我们要备份的数据信息进行备份;正因为每天备份大量的数据信息会叠加,对我们的磁盘产生负担,为了能够减轻我们磁盘容量的负担,又能实现我们每天的数据备份;我们今天开发的脚本呢,就是为了实现这样的需求;每天实现自动备份,当备份到第五天的时候,就把第一天的备份进行删除,只备份四天的备份,以此类推。 这样做的好处既不会影响我们的备份信息,又不会给我们的磁盘造成负担... 脚本代码[[email?protected] 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 " 33[32m The backup successful 33[0m" #输出备份成功提示 fi 脚本思路解析: 1、定义变量 “way” 里面的是所备份的绝对路径,"con" 是方便对命名为 etc 文件的查找而赋值变量 2、对目标文件目录进行打包,以打包的文件加日期规范命名,如果备份不成功那就把错误信息汇报到 /root.sh文件下,方便我们查阅 3、对我们的备份进行数量统计,在我们规定的数量以内(目前规定是四个,可根据需求来定) 4、如果超过了四个,脚本就会执行操作并排序,对当天的文件备份的同时会把排在最前的备份文件进行删除操作 5、如果没有超过四个,备份一样会执行,但是删除操作不会执行 如果没有安装时间任务配置的话先安装时间任务配置,没有时间配置文件是无法执行的。 [[email?protected] order]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [[email?protected] order]# cp back-up.sh /usr/local/sbin/back-up [[email?protected] ~]# yum -y install cron* #安装时间任务配置 [[email?protected] ~]# crontab -e #对任务配置文件进行编辑 0 4 * * * back-up #每天四点定时执行脚本 back-up 命令备份 [[email?protected] 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |