01 前言
上兩篇文章疯攒,學習了rsync的基本用法與兩種運行方式感猛,今天結(jié)合工作中的一個實際應用案例來鞏固一下rsync的用法脖含,同時對Jira和Confluence進行備份
02 備份腳本編寫
這里以Jira為例吱窝。目前Jira部署在10.137.128.182服務器上锁蠕,另外有一臺服務器10.137.128.183可做備份服務器惑艇,現(xiàn)在要利用rsync工具實現(xiàn)數(shù)據(jù)目錄的備份贾惦。
第一步:用變量表示數(shù)據(jù)存儲路徑與備份數(shù)據(jù)
#? dir1為原始數(shù)據(jù)目錄,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
基本上腳本就以完成了习瑰,為了腳本安全和方便調(diào)試,可加上set -e 和set -u 選項秽荤,那完整的命令如下:
第七步:將腳本加入定時任務
coontab? -e
00? 02? *? *? *? ?bash? ?/home/gzcb/jira_back.sh
腳本就完成啦甜奄,Confluence可依葫蘆畫瓢。