01 前言
上两篇文章,学习了rsync的基本用法与两种运行方式,今天结合工作中的一个实际应用案例来巩固一下rsync的用法,同时对Jira和Confluence进行备份
02 备份脚本编写
这里以Jira为例。目前Jira部署在10.137.128.182服务器上,另外有一台服务器10.137.128.183可做备份服务器,现在要利用rsync工具实现数据目录的备份。
第一步:用变量表示数据存储路径与备份数据
# dir1为原始数据目录,dir2为本机备份目录和异地备份目录
dir1 = /var/atlassian/application-data/jira/
dir2 = /data/jira/jiradata/
第二步:定义时间戳,便于记录
# 定义时间戳,time1显示类型为20191210,time2显示类型为2019-12-10 23:58:00
time1 = `date +%Y%m%d`
time2 = `date +%Y-%m-%d%t%H:%M:%S`
第三步:定义备份日志,方便排查问题
log = /data/jira/jira-${time1}.log
第四步:判断路径与日志文件是否存在
[ -d $dir2 ] && echo " " >/dev/nell 2>&1 || mkdir -p $dir2
[ -f $log ] && echo " " >/dev/nell 2>&1 || touch $log
第五步:rsync本地备份并验证是否成功
rsync -avu --exclude "log*" $dir1 $dir2
if [ S? -eq 0 ]; then
echo "【$time2】JIRA BACK TO LOCAL SUCCESSED " >> $log
else
echo "【$time2】JIRA BACK TO LOCAL FAILED " >> $log
fi
第六步:rsync 异地备份并验证是否成功
rsync -avu --exclude "log*" $dir1 root@10.137.128.183:$dir2
if [ S? -eq 0 ]; then
echo "【$time2】JIRA BACK TO REMOTE SUCCESSED " >> $log
else
echo "【$time2】JIRA BACK TO REMOTE FAILED " >> $log
fi
基本上脚本就以完成了,为了脚本安全和方便调试,可加上set -e 和set -u 选项,那完整的命令如下:
第一部分 第二部分第七步:将脚本加入定时任务
coontab -e
00 02 * * * bash /home/gzcb/jira_back.sh
脚本就完成啦,Confluence可依葫芦画瓢。
网友评论