原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1541163
写作一个备份/etc目录的脚本,要求:将/etc目录下的所有文件cp到/var/backups目录下的以当天的日期命名的目录中例如(/var/backups/etc.20140809)。并且判断前一天的目录中的文件与当天的区别,如果无区别,则删除前一天的备份目录。
[root@nolinux scripts]# cat auto_bak.sh #!/bin/bash # # This script is used to automatically backup the specified directory, and judgment, and whether the previous backup # Written by sunsky # Mail : 274546888@qq.com # Date : 2014-8-16 23:00:00 # bak_from_name="etc" bak_from_dir="/etc" bak_to_dir_par="/var/backups" bak_dir="${bak_to_dir_par}${bak_from_dir}.$(date +%Y%m%d)" yes_bak_dir="${bak_to_dir_par}${bak_from_dir}.$(date -d '-1 day' +%Y%m%d)" new_sum_file="${bak_to_dir_par}/new_sum.$bak_from_name.$(date +%Y%m%d)" old_sum_file="${bak_to_dir_par}/old_sum.$bak_from_name.md5" if [ ! -d $bak_to_dir_par ];then mkdir $bak_to_dir_par fi find $bak_from_dir |xargs -I {} md5sum {} >> $new_sum_file 2>/dev/null cp -a $bak_from_dir $bak_dir && echo "$bak_from_dir directory to $bak_dir directory backup successfully" new_sum_error=`md5sum -c $new_sum_file 2>/dev/null|awk '$2!~"OK"'|wc -l` new_sum_ok=`md5sum -c $new_sum_file 2>/dev/null|awk '$2~"OK"'|wc -l` old_sum_error=`md5sum -c $old_sum_file 2>/dev/null|awk '$2!~"OK"'|wc -l` old_sum_ok=`md5sum -c $old_sum_file 2>/dev/null|awk '$2~"OK"'|wc -l` if [ $new_sum_error == $old_sum_error -a $new_sum_ok == $old_sum_ok ];then echo "Because today and yesterday's content is the same, delete the backup content of yesterday" rm -rf $yes_bak_dir $new_sum_file fi echo | cp $new_sum_file $old_sum_file &>/dev/null
bak_from_name变量为所要备份的目录名 bak_from_dir变量为所要备份的目录路径 bak_to_dir_par变量为所要备份到的目录的父(上级)目录路径 bak_dir变量为所要备份到的目录路径 yes_bak_dir变量为所要备份目录前一天的备份目录路径 new_sum_file变量为当天所计算出来的所要备份目录的MD5列表 old_sum_file变量为当天所计算出来的所要备份目录的MD5列表(此变量的当天是脚本执行之后的当前,在脚本才开始执行的时候,该变量所指定的文件为前一天备份目录的MD5列表) new_sum_error变量为当天所要备份目录的MD5发生变化的条目总数 new_sum_ok变量为当天所要备份目录的MD5未发生变化的条目总数 old_sum_error变量为前一天所要备份目录的MD5发生变化的条目总数 old_sum_ok变量为前一天所要备份目录的MD5未发生变化的条目总数
转自:http://nolinux.blog.51cto.com/4824967/1541163
原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/1949