原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。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.www58058.com/1949