更新bf、cvs工具
This commit is contained in:
parent
39b678ac02
commit
6e027d8647
143
bf
143
bf
@ -2,58 +2,81 @@
|
|||||||
|
|
||||||
# 备份目录脚本
|
# 备份目录脚本
|
||||||
|
|
||||||
## 参数配置
|
# 参数配置
|
||||||
### 当前的日期、日期时间
|
## 版本号
|
||||||
|
version="0.2.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`
|
||||||
### 需要备份的目录名称
|
## 需要备份的目录名称
|
||||||
dirName=$1
|
dirName=$1
|
||||||
### 需要备份的文件夹(绝对路径)
|
## 需要备份的文件夹(绝对路径)
|
||||||
backupPath=$2
|
backupPath=$2
|
||||||
### 备份成果文件名称
|
## 备份成果文件名称
|
||||||
backupFileName=$dirName"_backup_"$datetime".tar.gz"
|
backupFileName=$dirName"_backup_"$datetime".tar.gz"
|
||||||
### 是否生成备份成果文件哈希值【0:不生成,1:生成】
|
## 是否生成备份成果文件哈希值【0:不生成,1:生成】
|
||||||
generateBackupFileSHA=1
|
generateBackupFileSHA=1
|
||||||
### 是否加密【0:不加密,1:加密】
|
## 是否加密【0:不加密,1:加密】
|
||||||
needEncrypt=1
|
needEncrypt=1
|
||||||
### 加密秘钥文件(秘钥为文件的第一行内容)
|
## 加密秘钥文件(秘钥为文件的第一行内容)
|
||||||
encryptPasswordFile=$3
|
encryptPasswordFile=$3
|
||||||
### 备份模式【0:备份到本地目录,1:备份到华为云OBS,2:备份到腾讯云COS】
|
## 备份模式【0:备份到本地目录,1:备份到Amazon S3,2:备份到华为云OBS,3:备份到腾讯云COS】
|
||||||
model=2
|
model=0
|
||||||
### 备份文件保存路径(仅当 model 为 0 时生效)
|
## 备份文件保存路径(仅当 model 为 0 时生效)
|
||||||
targetsPath=/bak/$dirName
|
targetsPath=/bak/$dirName
|
||||||
### obsutil(OBS工具) 路径(绝对路径)
|
## S3 桶名称(仅当 model 为 1 时生效)
|
||||||
|
s3BucketName=demo
|
||||||
|
## S3 目录(仅当 model 为 1 时生效)
|
||||||
|
s3FolderName=$dirName
|
||||||
|
## obsutil(OBS工具) 路径(绝对路径)
|
||||||
obsutil=/opt/obsutil/obsutil
|
obsutil=/opt/obsutil/obsutil
|
||||||
### OBS 桶名称(仅当 model 为 1 时生效)
|
## OBS 桶名称(仅当 model 为 2 时生效)
|
||||||
obsBucketName=demo
|
obsBucketName=demo
|
||||||
### OBS 目录(仅当 model 为 1 时生效)
|
## OBS 目录(仅当 model 为 2 时生效)
|
||||||
obsFolderName=$dirName
|
obsFolderName=$dirName
|
||||||
### coscli(COS工具)路径(绝对路径)
|
## coscli(COS工具)路径(绝对路径)
|
||||||
coscli=/opt/coscli/coscli
|
coscli=/opt/coscli/coscli
|
||||||
### COS 桶名称(仅当 model 为 2 时生效)
|
## COS 桶名称(仅当 model 为 3 时生效)
|
||||||
cosBucketName=demo
|
cosBucketName=demo
|
||||||
### COS 目录(仅当 model 为 2 时生效)
|
## COS 目录(仅当 model 为 3 时生效)
|
||||||
cosFolderName=$dirName
|
cosFolderName=$dirName
|
||||||
### COS 对象类型(仅当 model 为 2 时生效)【STANDARD:标准存储,MAZ_STANDARD:标准存储(多AZ),STANDARD_IA:低频存储,MAZ_STANDARD_IA:低频存储(多AZ),MAZ_INTELLIGENT_TIERING:智能分层存储,ARCHIVE:归档存储,DEEP_ARCHIVE:深度归档存储】
|
## COS 对象类型(仅当 model 为 3 时生效)【STANDARD:标准存储,MAZ_STANDARD:标准存储(多AZ),STANDARD_IA:低频存储,MAZ_STANDARD_IA:低频存储(多AZ),MAZ_INTELLIGENT_TIERING:智能分层存储,ARCHIVE:归档存储,DEEP_ARCHIVE:深度归档存储】
|
||||||
cosStorageClass=STANDARD
|
cosStorageClass=STANDARD
|
||||||
### 临时路径(临时的工作目录)
|
## 临时路径(临时的工作目录)
|
||||||
tmpPath=/tmp/backup/$dirName/$date
|
tmpPath=/tmp/backup/$dirName/$date
|
||||||
|
|
||||||
## 相关方法
|
# 相关方法
|
||||||
### 创建临时目录
|
## 帮助信息
|
||||||
|
help () {
|
||||||
|
echo 'Usage: bf 需要备份的目录名称 需要备份的目录 加密秘钥文件'
|
||||||
|
echo '参数说明:'
|
||||||
|
echo ' $1: 需要备份的目录名称,将使用此名称新增备份文件夹及文件'
|
||||||
|
echo ' $2: 需要备份的目录(绝对路径)'
|
||||||
|
echo ' $3: 加密秘钥文件(可选,仅加密备份文件时需指定)'
|
||||||
|
echo '示例:'
|
||||||
|
echo ' 备份 home 目录: bf home /home'
|
||||||
|
echo ' 备份 home 目录,并使用 /root/home.key 文件作为秘钥加密备份文件: bf home /home /root/home.key'
|
||||||
|
echo '其他说明:'
|
||||||
|
echo ' 使用前请按实际情况修改备份文件保存方式,若使用远程存储(如 Amazon S3 等)则需要安装相关cli工具并完成配置,具体请参考官方文档。'
|
||||||
|
}
|
||||||
|
## 版本号
|
||||||
|
version () {
|
||||||
|
echo 'bf '$version
|
||||||
|
}
|
||||||
|
## 创建临时目录
|
||||||
createTmpPath () {
|
createTmpPath () {
|
||||||
echo '------------------------------ 开始创建工作目录... ------------------------------'
|
echo '------------------------------ 开始创建工作目录... ------------------------------'
|
||||||
mkdir -pv $tmpPath
|
mkdir -pv $tmpPath
|
||||||
echo '------------------------------ 工作目录创建完成! ------------------------------'
|
echo '------------------------------ 工作目录创建完成! ------------------------------'
|
||||||
}
|
}
|
||||||
### 压缩备份目录
|
## 压缩备份目录
|
||||||
condense () {
|
condense () {
|
||||||
echo '------------------------------ 开始压缩备份目录... ------------------------------'
|
echo '------------------------------ 开始压缩备份目录... ------------------------------'
|
||||||
cd $tmpPath
|
cd $tmpPath
|
||||||
tar czPf $backupFileName $backupPath
|
tar czPf $backupFileName $backupPath
|
||||||
echo '------------------------------ 备份目录压缩成功! ------------------------------'
|
echo '------------------------------ 备份目录压缩成功! ------------------------------'
|
||||||
}
|
}
|
||||||
### 生成备份文件哈希值
|
## 生成备份文件哈希值
|
||||||
generateSHA () {
|
generateSHA () {
|
||||||
echo '------------------------------ 开始生成备份文件哈希... ------------------------------'
|
echo '------------------------------ 开始生成备份文件哈希... ------------------------------'
|
||||||
cd $tmpPath
|
cd $tmpPath
|
||||||
@ -62,7 +85,7 @@ generateSHA () {
|
|||||||
mv $backupFileName'_SHA512' $targetsPath
|
mv $backupFileName'_SHA512' $targetsPath
|
||||||
echo '------------------------------ 备份文件哈希生成成功( 哈希文件见:' $targetsPath ' )! ------------------------------'
|
echo '------------------------------ 备份文件哈希生成成功( 哈希文件见:' $targetsPath ' )! ------------------------------'
|
||||||
}
|
}
|
||||||
### 加密备份文件
|
## 加密备份文件
|
||||||
encrypt () {
|
encrypt () {
|
||||||
echo '------------------------------ 开始加密备份文件... ------------------------------'
|
echo '------------------------------ 开始加密备份文件... ------------------------------'
|
||||||
cd $tmpPath
|
cd $tmpPath
|
||||||
@ -71,26 +94,32 @@ encrypt () {
|
|||||||
rm -rf bak_$backupFileName
|
rm -rf bak_$backupFileName
|
||||||
echo '------------------------------ 备份文件加密成功! ------------------------------'
|
echo '------------------------------ 备份文件加密成功! ------------------------------'
|
||||||
}
|
}
|
||||||
### 将备份文件保存到本地
|
## 将备份文件保存到本地
|
||||||
saveToLocal () {
|
saveToLocal () {
|
||||||
echo '****************************** 使用本地模式,将保存备份文件到本地目录( '$targetsPath' ) ******************************'
|
echo '****************************** 使用本地模式,将保存备份文件到本地目录( '$targetsPath' ) ******************************'
|
||||||
mkdir -pv $targetsPath
|
mkdir -pv $targetsPath
|
||||||
mv $tmpPath/$backupFileName $targetsPath/$backupFileName
|
mv $tmpPath/$backupFileName $targetsPath/$backupFileName
|
||||||
}
|
}
|
||||||
### 将备份文件保存到华为云 OBS
|
## 将备份文件保存到Amazon S3
|
||||||
saveToOBS () {
|
saveToOBS () {
|
||||||
echo '****************************** 使用 OBS 模式,将保存备份文件到 OBS 桶( '$obsBucketName' ) ******************************'
|
echo '****************************** 使用 OBS 模式,将保存备份文件到 Amazon S3 桶( '$obsBucketName' ) ******************************'
|
||||||
|
aws s3 cp $tmpPath/$backupFileName s3://$s3BucketName/$s3FolderName/$backupFileName
|
||||||
|
rm -rf $tmpPath/$backupFileName
|
||||||
|
}
|
||||||
|
## 将备份文件保存到华为云 OBS
|
||||||
|
saveToOBS () {
|
||||||
|
echo '****************************** 使用 OBS 模式,将保存备份文件到 华为云 OBS 桶( '$obsBucketName' ) ******************************'
|
||||||
$obsutil mkdir obs://$obsBucketName/$obsFolderName
|
$obsutil mkdir obs://$obsBucketName/$obsFolderName
|
||||||
$obsutil cp -f $tmpPath/$backupFileName obs://$obsBucketName/$obsFolderName/$backupFileName
|
$obsutil cp -f $tmpPath/$backupFileName obs://$obsBucketName/$obsFolderName/$backupFileName
|
||||||
rm -rf $tmpPath/$backupFileName
|
rm -rf $tmpPath/$backupFileName
|
||||||
}
|
}
|
||||||
### 将备份文件保存到腾讯云 COS
|
## 将备份文件保存到腾讯云 COS
|
||||||
saveToCOS () {
|
saveToCOS () {
|
||||||
echo '****************************** 使用 COS 模式,将保存备份文件到 COS 桶( '$cosBucketName' ) ******************************'
|
echo '****************************** 使用 COS 模式,将保存备份文件到 腾讯云 COS 桶( '$cosBucketName' ) ******************************'
|
||||||
$coscli cp $tmpPath/$backupFileName cos://$cosBucketName/$cosFolderName/$backupFileName --storage-class $cosStorageClass
|
$coscli cp $tmpPath/$backupFileName cos://$cosBucketName/$cosFolderName/$backupFileName --storage-class $cosStorageClass
|
||||||
rm -rf $tmpPath/$backupFileName
|
rm -rf $tmpPath/$backupFileName
|
||||||
}
|
}
|
||||||
### 保存备份文件
|
## 保存备份文件
|
||||||
save () {
|
save () {
|
||||||
echo '------------------------------ 开始保存备份文件... ------------------------------'
|
echo '------------------------------ 开始保存备份文件... ------------------------------'
|
||||||
case $model in
|
case $model in
|
||||||
@ -109,25 +138,39 @@ save () {
|
|||||||
esac
|
esac
|
||||||
echo '------------------------------ 备份文件保存成功! ------------------------------'
|
echo '------------------------------ 备份文件保存成功! ------------------------------'
|
||||||
}
|
}
|
||||||
|
## 备份
|
||||||
## 开始备份
|
bf () {
|
||||||
echo '===================================================================================================='
|
echo '===================================================================================================='
|
||||||
echo `date +%Y-%m-%d` `date +%H:%M:%S`
|
echo `date +%Y-%m-%d` `date +%H:%M:%S`
|
||||||
echo '============================== 开始备份 '$dirName' ...... =============================='
|
echo '============================== 开始备份 '$dirName' ...... =============================='
|
||||||
### 创建工作目录
|
### 创建工作目录
|
||||||
createTmpPath
|
createTmpPath
|
||||||
### 打包备份目录
|
### 打包备份目录
|
||||||
condense
|
condense
|
||||||
### 加密备份文件
|
### 加密备份文件
|
||||||
if [ $needEncrypt == 1 ];then
|
if [ $needEncrypt == 1 ];then
|
||||||
encrypt
|
encrypt
|
||||||
fi
|
fi
|
||||||
### 生成备份文件哈希
|
### 生成备份文件哈希
|
||||||
if [ $generateBackupFileSHA == 1 ];then
|
if [ $generateBackupFileSHA == 1 ];then
|
||||||
generateSHA
|
generateSHA
|
||||||
fi
|
fi
|
||||||
### 保存备份文件
|
### 保存备份文件
|
||||||
save
|
save
|
||||||
echo '============================== '$dirName' 备份成功!!! =============================='
|
echo '============================== '$dirName' 备份成功!!! =============================='
|
||||||
echo `date +%Y-%m-%d` `date +%H:%M:%S`
|
echo `date +%Y-%m-%d` `date +%H:%M:%S`
|
||||||
echo '===================================================================================================='
|
echo '===================================================================================================='
|
||||||
|
}
|
||||||
|
|
||||||
|
# 执行方法
|
||||||
|
case $1 in
|
||||||
|
help)
|
||||||
|
help
|
||||||
|
;;
|
||||||
|
version)
|
||||||
|
version
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
bf
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
38
cvs
38
cvs
@ -2,28 +2,28 @@
|
|||||||
|
|
||||||
# 使用 ClamAV 扫描病毒脚本
|
# 使用 ClamAV 扫描病毒脚本
|
||||||
|
|
||||||
## 参数配置
|
# 参数配置
|
||||||
### 版本号
|
## 版本号
|
||||||
VERSION=0.2.0
|
VERSION=0.2.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`
|
||||||
### 需要扫描的文件夹(绝对路径)
|
## 需要扫描的文件夹(绝对路径)
|
||||||
scanDir=${1:-/}
|
scanDir=${1:-/}
|
||||||
### 病毒文件处理模式【0:不处理,1:复制到指定目录、2:移动至指定目录、3:直接删除(不推荐)】
|
## 病毒文件处理模式【0:不处理,1:复制到指定目录、2:移动至指定目录、3:直接删除(不推荐)】
|
||||||
model=${2:-2}
|
model=${2:-2}
|
||||||
### 工作目录
|
## 工作目录
|
||||||
workPath=${3:-/opt/clamav}
|
workPath=${3:-/opt/clamav}
|
||||||
### 包管理器【yum:YUM,dnf:DNF,zypper:ZYPPER】
|
## 包管理器【yum:YUM,dnf:DNF,zypper:ZYPPER】
|
||||||
packageInstaller=${4:-yum}
|
packageInstaller=${4:-yum}
|
||||||
### 病毒文件复制/转移文件夹(仅 model 为 1、2 时生效)
|
## 病毒文件复制/转移文件夹(仅 model 为 1、2 时生效)
|
||||||
virusPath=${workPath}/scan_${datetime}/virus
|
virusPath=${workPath}/scan_${datetime}/virus
|
||||||
### 日志文件目录
|
## 日志文件目录
|
||||||
logsPath=${workPath}/scan_${datetime}/logs
|
logsPath=${workPath}/scan_${datetime}/logs
|
||||||
### 疑似病毒文件数量
|
## 疑似病毒文件数量
|
||||||
infectedFileNumber=0
|
infectedFileNumber=0
|
||||||
|
|
||||||
## 相关方法
|
# 相关方法
|
||||||
## 帮助信息
|
## 帮助信息
|
||||||
help () {
|
help () {
|
||||||
echo 'Usage: cvs 需要扫描的目录 处理方式 工作目录 包管理器'
|
echo 'Usage: cvs 需要扫描的目录 处理方式 工作目录 包管理器'
|
||||||
@ -48,14 +48,14 @@ help () {
|
|||||||
version () {
|
version () {
|
||||||
echo 'cvs '$VERSION
|
echo 'cvs '$VERSION
|
||||||
}
|
}
|
||||||
### 创建文件夹
|
## 创建文件夹
|
||||||
createPath () {
|
createPath () {
|
||||||
echo '------------------------------ 开始创建相关文件夹... ------------------------------'
|
echo '------------------------------ 开始创建相关文件夹... ------------------------------'
|
||||||
mkdir -pv ${virusPath}
|
mkdir -pv ${virusPath}
|
||||||
mkdir -pv ${logsPath}
|
mkdir -pv ${logsPath}
|
||||||
echo '------------------------------ 相关文件夹创建完成! ------------------------------'
|
echo '------------------------------ 相关文件夹创建完成! ------------------------------'
|
||||||
}
|
}
|
||||||
### 判断当前发行版并设置包管理器
|
## 判断当前发行版并设置包管理器
|
||||||
getOSRelease () {
|
getOSRelease () {
|
||||||
echo '------------------------------ 开始检查 Linux 发行版 ... ------------------------------'
|
echo '------------------------------ 开始检查 Linux 发行版 ... ------------------------------'
|
||||||
[ -r /etc/os-release ] && . /etc/os-release
|
[ -r /etc/os-release ] && . /etc/os-release
|
||||||
@ -83,7 +83,7 @@ getOSRelease () {
|
|||||||
echo '使用的包管理器为:' ${packageInstaller}
|
echo '使用的包管理器为:' ${packageInstaller}
|
||||||
echo '------------------------------ Linux 发行版检查完成! ------------------------------'
|
echo '------------------------------ Linux 发行版检查完成! ------------------------------'
|
||||||
}
|
}
|
||||||
### 安装 ClamAV
|
## 安装 ClamAV
|
||||||
installClamAV () {
|
installClamAV () {
|
||||||
echo '------------------------------ 开始安装 ClamAV ... ------------------------------'
|
echo '------------------------------ 开始安装 ClamAV ... ------------------------------'
|
||||||
if [ "${packageInstaller}" = "yum" ]; then
|
if [ "${packageInstaller}" = "yum" ]; then
|
||||||
@ -93,7 +93,7 @@ installClamAV () {
|
|||||||
fi
|
fi
|
||||||
echo '------------------------------ ClamAV 安装完成! ------------------------------'
|
echo '------------------------------ ClamAV 安装完成! ------------------------------'
|
||||||
}
|
}
|
||||||
### 更新 ClamAV
|
## 更新 ClamAV
|
||||||
updateClamAV () {
|
updateClamAV () {
|
||||||
echo '------------------------------ 开始更新 ClamAV ... ------------------------------'
|
echo '------------------------------ 开始更新 ClamAV ... ------------------------------'
|
||||||
if [ "${packageInstaller}" = "yum" ]; then
|
if [ "${packageInstaller}" = "yum" ]; then
|
||||||
@ -103,13 +103,13 @@ updateClamAV () {
|
|||||||
fi
|
fi
|
||||||
echo '------------------------------ ClamAV 更新完成! ------------------------------'
|
echo '------------------------------ ClamAV 更新完成! ------------------------------'
|
||||||
}
|
}
|
||||||
### 更新病毒库
|
## 更新病毒库
|
||||||
updateVirusDatabase () {
|
updateVirusDatabase () {
|
||||||
echo '------------------------------ 开始更新病毒库... ------------------------------'
|
echo '------------------------------ 开始更新病毒库... ------------------------------'
|
||||||
freshclam
|
freshclam
|
||||||
echo '------------------------------ 病毒库更新完成! ------------------------------'
|
echo '------------------------------ 病毒库更新完成! ------------------------------'
|
||||||
}
|
}
|
||||||
### 扫描病毒
|
## 扫描病毒
|
||||||
scanVirus () {
|
scanVirus () {
|
||||||
echo '------------------------------ 开始扫描指定目录... ------------------------------'
|
echo '------------------------------ 开始扫描指定目录... ------------------------------'
|
||||||
case ${model} in
|
case ${model} in
|
||||||
@ -135,7 +135,7 @@ scanVirus () {
|
|||||||
echo '****************************** 扫描日志见:'${logsPath}'/clamscan.log ******************************'
|
echo '****************************** 扫描日志见:'${logsPath}'/clamscan.log ******************************'
|
||||||
echo '****************************** 病毒文件见:'${virusPath}',请及时处理 ******************************'
|
echo '****************************** 病毒文件见:'${virusPath}',请及时处理 ******************************'
|
||||||
}
|
}
|
||||||
### 扫描
|
## 扫描
|
||||||
scan () {
|
scan () {
|
||||||
echo '===================================================================================================='
|
echo '===================================================================================================='
|
||||||
echo `date +%Y-%m-%d` `date +%H:%M:%S`
|
echo `date +%Y-%m-%d` `date +%H:%M:%S`
|
||||||
@ -151,7 +151,7 @@ scan () {
|
|||||||
echo '===================================================================================================='
|
echo '===================================================================================================='
|
||||||
}
|
}
|
||||||
|
|
||||||
## 执行方法
|
# 执行方法
|
||||||
case $1 in
|
case $1 in
|
||||||
help)
|
help)
|
||||||
help
|
help
|
||||||
|
Loading…
Reference in New Issue
Block a user