Shell脚本使用汇总整理——文件夹及子文件备份脚本

Shell脚本使用汇总整理——文件夹及子文件备份脚本html

Shell脚本使用的基本知识点汇总详情见链接:linux

http://www.javashuo.com/article/p-zzlppuvp-m.htmlweb

脚本分为三部分配置信息、脚本文件、定时任务;shell

一、配置信息:tomcat

backupFilePath=/wocloud/soft/tomcat/yearAppraiseTomcat/tomcat/webapps/yearAppraiseSys/upload
saveBackupFilePath=/wocloud/db/fileBackups
fileName=upload
backupsFileDay=3app

参数说明:webapp

backupFilePath:要备份的文件夹的绝对路径
saveBackupFilePath:存放备份文件的绝对根路径
fileName:要备份的文件夹名称
backupsFileDay:保留备份文件的天数rest

二、脚本文件:日志

#!/bin/shcode

#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

注意:注意代码开头中读取配置文件的路径,这个位置可能不同,须要进行适当修改。

三、定时任务:

Linux中的sh脚本定时任务,能够经过crontab进行管理,若是linux中没有安装crontab,须要进行安装:

安装命令:

yum -y install vixie-cron
yum -y install crontabs

服务管理

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //从新载入配置
service crond status    //查看crontab服务状态

加入开机自启

chkconfig crond on

(1)设定定时任务:

crontab -e 编写定时任务表达式

例如:

1 */3 * * * /wocloud/shell/fileBackupsScript.sh &>/wocloud/shell/fileBackupsLogs/fileBackupsEcho_`date +\%Y-\%m-\%d-\%H-\%M-\%S`.txt 2>&1

定时表达式+脚本绝对路径+脚本打印信息日志输出绝对路径(必定要有日志输出记录,方便之后进行查看)

(2)从新启动crond

service crond restart;

相关文章
相关标签/搜索