詳解Linux運(yùn)維CentOS系統(tǒng)SVN雙備份Shell腳本
前言
SVN是Subversion的簡稱,是一個(gè)開放源代碼的版本控制系統(tǒng),采用了分支管理系統(tǒng)。說得簡單一點(diǎn)SVN就是用于多個(gè)人共同開發(fā)同一個(gè)項(xiàng)目,共用資源的目的。
作為一個(gè)代碼管理工具,備份操作顯得尤為重要,這里采取這樣的備份策略:在執(zhí)行本地備份的同時(shí),讓Shell腳本自動(dòng)上傳數(shù)據(jù)到另一臺(tái)FTP備份服務(wù)器中,這種異地備份策略成本比較小,無需存儲(chǔ),而且安全系統(tǒng)高,想到與雙備份,本地和異地同時(shí)出現(xiàn)數(shù)據(jù)損壞的概率是低很多的。
備份策略說明
使用CentOS 6系列系統(tǒng),安裝vsftpd,修改配置參數(shù)。此外vsftpd的備份目錄可以做RAID1或RAID5。
執(zhí)行腳本將svn項(xiàng)目進(jìn)行本地目錄備份,然后將備份文件上傳到FTP服務(wù)器上,已實(shí)現(xiàn)雙備份。
備份步驟
安裝并配置vsftpd
使用yum直接安裝即可。
yum -y install vsftpd
修改配置,由于要進(jìn)行上傳操作,所以要允許用戶上傳。為安全性考慮,不建議匿名用戶操作。
修改配置后,將不必要的vsftpd.conf參數(shù)屏蔽,顯示為:
[root@private ~]# grep -v "^#" /etc/vsftpd/vsftpd.conf | grep -v "^$" anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES
chroot_local_user=YES這條語句需要重點(diǎn)強(qiáng)調(diào)一下,其作用是對(duì)用戶登錄權(quán)限進(jìn)行限制,即所有本地用戶登錄vsftpd時(shí)只能在自己的家目錄下,這是基于安全的考慮,本實(shí)例腳本也會(huì)基于這點(diǎn),要是使用本腳本在實(shí)際的生產(chǎn)環(huán)境,需要注意該點(diǎn)。
創(chuàng)建ftp登錄用戶
在備份服務(wù)器上創(chuàng)建備份用戶,本次創(chuàng)建用戶svn,并為其分配密碼,還應(yīng)該將其家目錄更改為備份目錄,本地備份目錄為:/data/backup/svn-backup/,這樣更方便備份工作,以下腳本以此類推。
[root@private ~]# useradd -d /data/backup/svn-backup/ svn [root@private ~]# echo "svnpasswd" | passwd --stdin svn Changing password for user svn. passwd: all authentication tokens updated successfully.
配置svn倉庫
首先檢查操作系統(tǒng)上面是否安裝了subversion,一般centos操作系統(tǒng)都默認(rèn)安裝了此軟件,如果沒有安裝使用如下命令快速安裝
rpm -qa subversion yum -y install subversion ##創(chuàng)建版本庫 svnadmin create /data/svn //這里的文件目錄自己隨便設(shè)置 ##配置svnserve,上述版本庫`/data/svn `建立后在文件夾下會(huì)生成conf文件夾,進(jìn)入`/data/svn/conf`下面會(huì)有下面3個(gè)文件 [root@private svn]# ls conf/ authz passwd svnserve.conf ##需要修改`svnserve.conf`修改以下幾個(gè)部分: anon-access = read auth-access = write password-db = passwd authz-db = authz ##修改`passwd`文件為: [users] username = password //這里的username和password自己設(shè)置 ##配置文件`authz`最后加上以下兩行(這兩行解決了 SVN客戶端解決authorization failed問題) [/] * = rw ##啟動(dòng)svnserve即可: svnserve -d -r /home/myrepos/
備份腳本
本腳本設(shè)置輪詢周期為30天一次,Shell會(huì)自動(dòng)刪除30天以前的文件。在vsftpd建立相應(yīng)的備份用戶svn腳本內(nèi)容如下:
#!/bin/bash
SVNDIR="/data"
SVNADMIN="/usr/bin/svnadmin"
DATE=$(date +%Y-%m-%d)
OLDDATE=$(date +%Y-%m-%d -d'30 days')
BACKDIR="/data/backup/svn-backup"
[ -d ${BACKDIR} ] || mkdir -p ${BACKDIR}
LogFile=${BACKDIR}/svnbak.log
[ -f ${LogFile} ] || touch ${LogFile}
mkdir ${BACKDIR}/${DATE}
for PROJECT in svn
do
cd $SVNDIR
$SVNADMIN hotcopy $PROJECT $BACKDIR/$DATE/$PROJECT --clean-logs
cd $BACKDIR/$DATE
tar zcvf ${PROJECT}_svn_${DATE}.tar.gz $PROJECT > /dev/null
rm -rf $PROJECT
sleep 2
done
HOST=localhost
FTP_USERNAME=svn
FTP_PASSWORD=Haiyuan
cd ${BACKDIR}/${DATE}
ftp -i -n -v <<!
open ${HOST}
user ${FTP_USERNAME} ${FTP_PASSWORD}
bin
cd ${OLDDATE}
mdelete *
cd ..
rmdir ${OLDDATE}
mkdir ${DATE}
cd ${DATE}
mput *
bye
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- PHP程序員玩轉(zhuǎn)Linux系列 自動(dòng)備份與SVN
- linux svn服務(wù)器搭建、客戶端操作、備份與恢復(fù)
- Python實(shí)現(xiàn)SVN的目錄周期性備份實(shí)例
- 遠(yuǎn)程鏡像與備份SVN服務(wù)器的方法小結(jié)
- IntelliJ IDEA使用SVN分支的簡單介紹
- Webstorm2017上SVN插件安裝的方法步驟
- Jenkins與SVN持續(xù)集成的示例代碼
- 詳解Eclipse安裝SVN插件的兩種方法
- 詳解IntelliJ IDEA中TortoiseSVN修改服務(wù)器地址的方法
- linux下svn版本控制的常用命令大全
- SVN服務(wù)備份操作步驟分享
相關(guān)文章
Linux date 時(shí)間設(shè)置同步命令分享
Linux服務(wù)器運(yùn)行久時(shí),系統(tǒng)時(shí)間就會(huì)存在一定的誤差,一般情況下可以使用date命令進(jìn)行時(shí)間設(shè)置,但在做數(shù)據(jù)庫集群分片等復(fù)雜操作時(shí)對(duì)多臺(tái)機(jī)器的時(shí)間差是有要求的,此時(shí)就需要使用ntpdate進(jìn)行時(shí)間同步。2018-04-04
linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置詳解
這篇文章主要給大家介紹了關(guān)于linux虛擬網(wǎng)絡(luò)設(shè)備之vlan配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12
如何修改CentOS服務(wù)器時(shí)間為北京時(shí)間
這篇文章主要介紹了修改CentOS服務(wù)器時(shí)間為北京時(shí)間的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-10-10
Linux系統(tǒng)中CPU占用率較高問題排查思路與解決方法
這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)中CPU占用率較高問題排查思路與解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Linux具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07

