詳解Linux運維CentOS系統(tǒng)SVN雙備份Shell腳本
前言
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統(tǒng),采用了分支管理系統(tǒng)。說得簡單一點SVN就是用于多個人共同開發(fā)同一個項目,共用資源的目的。
作為一個代碼管理工具,備份操作顯得尤為重要,這里采取這樣的備份策略:在執(zhí)行本地備份的同時,讓Shell腳本自動上傳數(shù)據(jù)到另一臺FTP備份服務器中,這種異地備份策略成本比較小,無需存儲,而且安全系統(tǒng)高,想到與雙備份,本地和異地同時出現(xiàn)數(shù)據(jù)損壞的概率是低很多的。
備份策略說明
使用CentOS 6系列系統(tǒng),安裝vsftpd,修改配置參數(shù)。此外vsftpd的備份目錄可以做RAID1或RAID5。
執(zhí)行腳本將svn項目進行本地目錄備份,然后將備份文件上傳到FTP服務器上,已實現(xiàn)雙備份。
備份步驟
安裝并配置vsftpd
使用yum直接安裝即可。
yum -y install vsftpd
修改配置,由于要進行上傳操作,所以要允許用戶上傳。為安全性考慮,不建議匿名用戶操作。
修改配置后,將不必要的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ào)一下,其作用是對用戶登錄權限進行限制,即所有本地用戶登錄vsftpd時只能在自己的家目錄下,這是基于安全的考慮,本實例腳本也會基于這點,要是使用本腳本在實際的生產(chǎn)環(huán)境,需要注意該點。
創(chuàng)建ftp登錄用戶
在備份服務器上創(chuàng)建備份用戶,本次創(chuàng)建用戶svn,并為其分配密碼,還應該將其家目錄更改為備份目錄,本地備份目錄為:/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)都默認安裝了此軟件,如果沒有安裝使用如下命令快速安裝
rpm -qa subversion yum -y install subversion ##創(chuàng)建版本庫 svnadmin create /data/svn //這里的文件目錄自己隨便設置 ##配置svnserve,上述版本庫`/data/svn `建立后在文件夾下會生成conf文件夾,進入`/data/svn/conf`下面會有下面3個文件 [root@private svn]# ls conf/ authz passwd svnserve.conf ##需要修改`svnserve.conf`修改以下幾個部分: anon-access = read auth-access = write password-db = passwd authz-db = authz ##修改`passwd`文件為: [users] username = password //這里的username和password自己設置 ##配置文件`authz`最后加上以下兩行(這兩行解決了 SVN客戶端解決authorization failed問題) [/] * = rw ##啟動svnserve即可: svnserve -d -r /home/myrepos/
備份腳本
本腳本設置輪詢周期為30天一次,Shell會自動刪除30天以前的文件。在vsftpd建立相應的備份用戶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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
linux安裝jdk并設置環(huán)境變量的方法教程(看這一篇夠了)
這篇文章主要介紹了linux安裝jdk并設置環(huán)境變量的相關資料,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02Linux服務使用寶塔面板搭建網(wǎng)站并發(fā)布公網(wǎng)訪問
寶塔面板作為簡單好用的服務器運維管理面板,它支持Linux/Windows系統(tǒng),本文我們將演示使用寶塔面板快速簡單搭建本地web網(wǎng)站,并做內(nèi)網(wǎng)穿透,實現(xiàn)不在同個局域網(wǎng)下的用戶也可以訪問到本地web站點,無需公網(wǎng)IP,也不用設置路由器,需要的朋友可以參考下2023-08-08linux系統(tǒng)安裝zookeeper 服務的方法
這篇文章主要介紹了linux 系統(tǒng)安裝zookeeper 服務的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-11-11centos7.6批量增加修改刪除虛擬網(wǎng)卡操作介紹
大家好,本篇文章主要講的是centos7.6批量增加修改刪除虛擬網(wǎng)卡操作介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下2021-12-12