shell脚本备份文件夹及子文件代码如下:
1、配置文件:
backupFilePath=/wocloud/soft/tomcat/yearAppraiseTomcat/tomcat/webapps/yearAppraiseSys/upload
saveBackupFilePath=/wocloud/db/jxFileBackups
fileName=upload
backupsFileDay=3
2、代码:
注意:不同linux设备的sh路径可能不同,需通过which sh查看sh的绝对路径修改即可。
#!/bin/sh
#db_backups_conf.txt文件路径
db_backups_conf="/wocloud/shell/file_backups_conf.txt"
#判断文件是否存在
if [ -f "${db_backups_conf}" ];then
echo $(date +'%Y-%m-%d %H:%M:%S')" 要备份的文件存在,开始进行文件备份"
#获取等号前内容,作为map中的Key值
dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))
#获取等号后内容,作为map中的value值
dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))
#创建一个空map
declare -A map=()
#通过循环,将db_backups_conf配置文件中的信息存储在map中
for((i=0;i<${#dbArrOne[@]};i++))
do
map[${dbArrOne[i]}]=${dbArrTwo[i]}
done
#获取当前年月日
saveday=$(date +%Y%m%d)
#获取超出备份天数的年月日
delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)
#备份文件
echo $(date +'%Y-%m-%d %H:%M:%S')" 备份文件:"${map["backupFilePath"]}
#判断保存备份文件路径是否存在
if [ -f "|${map['saveBackupFilePath']}/${saveday}/${map['fileName']}_$(date +'%Y%m%d%H%M%S')" ];then
cp -f -r ${map["backupFilePath"]} ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')/
else
mkdir -p ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')
cp -f -r ${map["backupFilePath"]} ${map["saveBackupFilePath"]}/${saveday}/${map["fileName"]}_$(date +'%Y%m%d%H%M%S')/
fi
#删除保存文件路径中n天前备份的数据文件
echo $(date +'%Y-%m-%d %H:%M:%S')" 删除备份文件:"${map["saveBackupFilePath"]}/${delday}
rm -f -r ${map["saveBackupFilePath"]}/${delday}
echo $(date +'%Y-%m-%d %H:%M:%S')" 文件备份完毕,脚本执行完毕"
else
echo "配置文件不存在"
fi
3、配置参数说明:
参数意义如下:
backupFilePath:备份文件夹的绝对路径
saveBackupFilePath:保留备份文件的绝对路径
fileName:备份文件夹名称,只能是一个目前
backupsFileDay:保留备份文件的天数
4、使用注意事项:
使用注意事项:
1、默认的是.sh、.txt文件都要放在/woclod/shell脚本下,如果放置的路径变了,需要修改.sh中读取.txt配置文件的路径