Linuxシステムインクリメンタルバックアップスクリプト

1647 ワード

フル・バックアップ
[root@vovo1 mnt]# tar -g/mnt/hkc -czvf/mnt/2019_full.tar.gz/root/http-2.4.41/バックアップコマンド/root/http-2.4.41/を/mntディレクトリにバックアップし、名前を2019_と呼びます.full.tar.gz,
フルバックアップ、インクリメンタルバックアップ、まずすべてのバックアップを1つのディレクトリの下に準備し、hkcという名詞を消し、2回目のバックアップはインクリメンタルバックアップです.
インクリメンタルバックアップ
[root@vovo1 httpd-2.4.41]# tar -g/mnt/hkc -czvf/mnt/2019_add.tar.gz/root/httpd-2.4.41/
週1日のフル・バックアップ、残りの数日はインクリメンタル・バックアップ
#!/bin/bash
SOUECE_DIR=(
    $*
)
target_dir=/mnt/backup
month=`date +%m`
YEAR=`date +%Y`
DAY=`date +%d`
WEEK=`date +%u`
A_NAME=`date +%H%M`
FILES=${A_NAME}_system_backup.tgz
CODE=$?
if 
    [ -z "$*" ];then
        echo "please  enter your backup files or directories
        Usage:{ $0 /boot /etc }"
        exit
fi
if 
    [ ! -d $target_dir/$YEAR/$month/$DAY ];then
    mkdir -p $target_dir/$YEAR/$month/$DAY
    echo  "$target_dir created successfully"
fi

#full_backup function
full_Backup()
{
if 
    [ "$WEEK" -eq "7" ];then
        rm -rf $target_dir/snapshot
        cd $target_dir/$YEAR/$month/$DAY ;tar -g $target_dir/snapshot -czvf $FILES ${SOUECE_DIR[@]}
    [ "$CODE" ==  "0" ]&& echo "these full_backup system files  backup successfully"
fi
}

#add_backup
add_Backup()
{
if 
    [ "$WEEK" -ne "7" ];then
        cd $target_dir/$YEAR/$month/$DAY ;tar -g $target_dir/snapshot -czvf   $FILES ${SOUECE_DIR[@]}
    [ "$CODE" ==  "0" ]&& echo "these add_backup system files  $target_dir/$YEAR/$month/$DAY/$A_NAME$FILES   backup successfully"
fi
}
sleep 3
full_Backup;add_Backup