国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

詳解Linux運維CentOS系統SVN雙備份Shell腳本

2024-09-05 23:03:58
字體:
來源:轉載
供稿:網友

前言

SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,采用了分支管理系統。說得簡單一點SVN就是用于多個人共同開發同一個項目,共用資源的目的。

作為一個代碼管理工具,備份操作顯得尤為重要,這里采取這樣的備份策略:在執行本地備份的同時,讓Shell腳本自動上傳數據到另一臺FTP備份服務器中,這種異地備份策略成本比較小,無需存儲,而且安全系統高,想到與雙備份,本地和異地同時出現數據損壞的概率是低很多的。

備份策略說明

使用CentOS 6系列系統,安裝vsftpd,修改配置參數。此外vsftpd的備份目錄可以做RAID1或RAID5。
執行腳本將svn項目進行本地目錄備份,然后將備份文件上傳到FTP服務器上,已實現雙備份。

備份步驟

安裝并配置vsftpd

使用yum直接安裝即可。

yum -y install vsftpd

修改配置,由于要進行上傳操作,所以要允許用戶上傳。為安全性考慮,不建議匿名用戶操作。

修改配置后,將不必要的vsftpd.conf參數屏蔽,顯示為:

[root@private ~]# grep -v "^#" /etc/vsftpd/vsftpd.conf | grep -v "^$"anonymous_enable=NOlocal_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YESchroot_local_user=YESlisten=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES

chroot_local_user=YES這條語句需要重點強調一下,其作用是對用戶登錄權限進行限制,即所有本地用戶登錄vsftpd時只能在自己的家目錄下,這是基于安全的考慮,本實例腳本也會基于這點,要是使用本腳本在實際的生產環境,需要注意該點。

創建ftp登錄用戶

在備份服務器上創建備份用戶,本次創建用戶svn,并為其分配密碼,還應該將其家目錄更改為備份目錄,本地備份目錄為:/data/backup/svn-backup/,這樣更方便備份工作,以下腳本以此類推。

[root@private ~]# useradd -d /data/backup/svn-backup/ svn[root@private ~]# echo "svnpasswd" | passwd --stdin svnChanging password for user svn.passwd: all authentication tokens updated successfully.

配置svn倉庫

首先檢查操作系統上面是否安裝了subversion,一般centos操作系統都默認安裝了此軟件,如果沒有安裝使用如下命令快速安裝

rpm -qa subversionyum -y install subversion##創建版本庫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腳本內容如下:

#!/bin/bashSVNDIR="/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 svndo  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 2doneHOST=localhostFTP_USERNAME=svnFTP_PASSWORD=Haiyuancd ${BACKDIR}/${DATE}ftp -i -n -v <<!open ${HOST}user ${FTP_USERNAME} ${FTP_PASSWORD}bincd ${OLDDATE}mdelete *cd ..rmdir ${OLDDATE}mkdir ${DATE}cd ${DATE}mput *bye

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南澳县| 襄樊市| 宜昌市| 兴化市| 桦南县| 时尚| 苍山县| 包头市| 炉霍县| 秦皇岛市| 监利县| 米脂县| 江孜县| 保靖县| 五大连池市| 临夏市| 南木林县| 屏边| 隆昌县| 保亭| 南木林县| 九龙坡区| 桐乡市| 金沙县| 五家渠市| 白河县| 河曲县| 永平县| 昌黎县| 白玉县| 攀枝花市| 华坪县| 荥经县| 巩义市| 安吉县| 石门县| 四会市| 万全县| 宜春市| 石狮市| 崇仁县|