From 418460f5cc1defd170ce449289961859c7dfb175 Mon Sep 17 00:00:00 2001 From: 3err0 Date: Sat, 18 Mar 2023 10:33:25 +0800 Subject: [PATCH] archive with date option --- rsync_backup.sh | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/rsync_backup.sh b/rsync_backup.sh index ae3566f..98de9af 100644 --- a/rsync_backup.sh +++ b/rsync_backup.sh @@ -16,20 +16,33 @@ mode='archive' delete_archive=true #delete_archive=false +archive_with_date=true +#archive_with_date=false + if [ "$mode" == "files" ]; then rsync -a --exclude-from=$exclude_file --password-file=$password_file $source $user@$ip::$destination else mkdir -p $archive_dir - for dir in $source - do - archive_name=$(date +"%Y%m%d")-$(echo $dir | tr '/' '_').tar.gz - tar -czf $archive_dir/$archive_name $dir + if [ "$archive_with_date" = true ]; then + today=$(date +"%Y%m%d") + archive_dir="$archive_dir/$today" + mkdir -p $archive_dir + fi + + for dir in $source; do + if [ "$archive_with_date" = true ]; then + archive_name=$(echo $dir | tr '/' '_').tar.gz + tar -czf $archive_dir/$archive_name $dir + else + archive_name=$(basename $dir).tar.gz + tar -czf $archive_dir/$(date +"%Y%m%d")-$archive_name $dir + fi done - rsync -a --exclude-from=$exclude_file --password-file=$password_file $archive_dir/* $user@$ip::$destination + rsync -a --exclude-from=$exclude_file --password-file=$password_file --relative $archive_dir/ $user@$ip::$destination if [ $? -eq 0 ] && [ "$delete_archive" = true ]; then - rm -f $archive_dir/* + rm -rf $archive_dir/* fi -fi +fi \ No newline at end of file