更新bf工具

This commit is contained in:
huty 2024-03-15 15:38:34 +08:00 committed by huty
parent 5ed1b61e55
commit 99186acc38

37
bf
View File

@ -4,7 +4,7 @@
# 参数配置 # 参数配置
## 版本号 ## 版本号
version="0.2.0" version="0.3.0"
## 当前的日期、日期时间 ## 当前的日期、日期时间
date=`date +%Y%m%d` date=`date +%Y%m%d`
datetime=`date +%Y%m%d`_`date +%H%M%S` datetime=`date +%Y%m%d`_`date +%H%M%S`
@ -18,6 +18,10 @@ backupFileName=$dirName"_backup_"$datetime".tar.gz"
generateBackupFileSHA=1 generateBackupFileSHA=1
## 是否加密【0不加密1加密】 ## 是否加密【0不加密1加密】
needEncrypt=1 needEncrypt=1
## 加密使用的 OpenSSL 来源【0宿主机1Docker】
opensslType=0
## OpenSSL Docker 镜像
opensslImage=hub.hty1024.com/hty1024/openssl:3.1.4
## 加密秘钥文件(秘钥为文件的第一行内容) ## 加密秘钥文件(秘钥为文件的第一行内容)
encryptPasswordFile=$3 encryptPasswordFile=$3
## 备份模式【0备份到本地目录1备份到Amazon S32备份到华为云OBS3备份到腾讯云COS】 ## 备份模式【0备份到本地目录1备份到Amazon S32备份到华为云OBS3备份到腾讯云COS】
@ -87,13 +91,38 @@ generateSHA () {
mv $backupFileName'_SHA512' $targetsPath mv $backupFileName'_SHA512' $targetsPath
echo '------------------------------ 备份文件哈希生成成功( 哈希文件见:' $targetsPath ' ------------------------------' echo '------------------------------ 备份文件哈希生成成功( 哈希文件见:' $targetsPath ' ------------------------------'
} }
## 加密备份文件 ## 使用宿主机内置的 OpenSSL 加密
encrypt () { encryptByHost () {
echo '------------------------------ 开始加密备份文件... ------------------------------' echo '****************************** 使用主机内置 OpenSSL 进行加密 ******************************'
cd $tmpPath cd $tmpPath
mv $backupFileName bak_$backupFileName mv $backupFileName bak_$backupFileName
openssl enc -e -aes256 -a -kfile $encryptPasswordFile -in bak_$backupFileName -out $backupFileName openssl enc -e -aes256 -a -kfile $encryptPasswordFile -in bak_$backupFileName -out $backupFileName
rm -rf bak_$backupFileName rm -rf bak_$backupFileName
}
## 使用 Docker 运行 OpenSSL 容器加密
encryptByDocker () {
echo '****************************** 运行 OpenSSL Docker 容器进行加密 ******************************'
cd $tmpPath
mkdir data
cp -rpf $encryptPasswordFile ./data/key
mv $backupFileName ./data/bak_$backupFileName
chown 1024.1024 -R ./data
docker run -dit --name openssl -v ./data:/data $opensslImage
docker exec -it openssl openssl enc -e -aes256 -a -kfile /data/key -in /data/bak_$backupFileName -out /data/$backupFileName
cp -rpf data/$backupFileName ./
docker rm -f openssl
}
## 加密备份文件
encrypt () {
echo '------------------------------ 开始加密备份文件... ------------------------------'
case $opensslType in
1)
encryptByDocker
;;
*)
encryptByHost
;;
esac
echo '------------------------------ 备份文件加密成功! ------------------------------' echo '------------------------------ 备份文件加密成功! ------------------------------'
} }
## 将备份文件保存到本地 ## 将备份文件保存到本地