SVN 完整備份

通過 hotcopy 進行 SVN 完整備份,備份保留 7 天。

#!/bin/bash
# Filename   : svn_backup_repos.sh
# Date       : 2020/12/14
# Author     : yangjin     
# wechat    : 745551694
# Crontab   : 59 23 * * * /bin/bash $BASE_PATH/svn_backup_repos.sh >/dev/null 
2>&1
# Notes     : 將腳本加入crontab中,每天定時執(zhí)行

# Description: SVN完全備份

set -e
SRC_PATH="/opt/svndata"
DST_PATH="/data/svnbackup"
LOG_FILE="$DST_PATH/logs/svn_backup.log"
SVN_BACKUP_C="/bin/svnadmin hotcopy"
SVN_LOOK_C="/bin/svnlook youngest"
TODAY=$(date +'%F')
cd $SRC_PATH
ALL_REPOS=$(find ./ -maxdepth 1 -type d ! -name 'httpd' -a ! -name 'bak' | tr -d 
'./')
# 創(chuàng)建備份目錄,備份腳本日志目錄

test -d $DST_PATH || mkdir -p $DST_PATH
test -d $DST_PATH/logs || mkdir $DST_PATH/logs
test -d $DST_PATH/$TODAY || mkdir $DST_PATH/$TODAY
# 備份repos文件

for repo in $ALL_REPOS
do
   $SVN_BACKUP_C $SRC_PATH/$repo $DST_PATH/$TODAY/$repo
   # 判斷備份是否完成

   if $SVN_LOOK_C $DST_PATH/$TODAY/$repo;then
       echo "$TODAY: $repo Backup Success" >> $LOG_FILE 
   else
       echo "$TODAY: $repo Backup Fail" >> $LOG_FILE
   fi
done
# # 備份用戶密碼文件和權限文件

cp -p authz access.conf $DST_PATH/$TODAY
# 日志文件轉儲

mv $LOG_FILE $LOG_FILE-$TODAY
# 刪除七天前的備份

seven_days_ago=$(date -d "7 days ago" +'%F')
rm -rf $DST_PATH/$seven_days_ago
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容