1. 程式人生 > >centos7 svn hook 自動同步程式碼到 web 目錄

centos7 svn hook 自動同步程式碼到 web 目錄

非指令碼,只是命令合集

#!/usr/bin/env bash
## svn 同步 指令碼

## yum 安裝 svn
yum install -y subversion >> ~/svn_install_log.log

## 檢測安裝版本
svnserve --version|grep "版本"

echo "建立 svn 倉庫目錄: /var/svn"
mkdir -p /var/svn
cd /var/svn
pwd


echo 建立版本庫
svnadmin create /var/svn/project
cd project
pwd
echo "會看到自動生成的版本庫檔案"
ls -al ./


echo
"vim /var/svn/project/conf/authz" cat >/var/svn/project/conf/authz<<EOF [groups] alliance = store,wholesaler, logistics,platform [project:/] @alliance = rw EOF echo "vim /var/svn/project/conf/passwd" cat >/var/svn/project/conf/passwd<<EOF [users] store = store wholesaler = wholesaler logistics = logistics platform = platform EOF echo
"vim /var/svn/project/conf/svnserve.conf" # anon-access = none //匿名使用者訪問許可權:無 sed -i 's/# anon-access = read/anon-access = none/g' /var/svn/project/conf/svnserve.conf # auth-access = write //普通使用者訪問許可權:讀、寫 sed -i 's/# auth-access = write/auth-access = write/g' /var/svn/project/conf/svnserve.conf # password-db = passwd //密碼檔案
sed -i 's/# password-db = passwd/password-db = passwd/g' /var/svn/project/conf/svnserve.conf # authz-db = authz //許可權配置檔案 sed -i 's/# authz-db = authz/authz-db = authz/g' /var/svn/project/conf/svnserve.conf # realm = /var/svn/project //版本庫所在1 sed -i 's/# realm = My First Repository/realm = \/var\/svn\/project/g' /var/svn/project/conf/svnserve.conf #### 注意:所有以上的配置項都需要頂格,即前面不能預留空格,否則報錯 #### echo "啟動svn服務:" killall svnserve svnserve -d -r /var/svn echo "測試伺服器" mkdir -p /home/wwwroot/svntest # 這裡的目錄應該隨自己專案做出修改 cd /home/wwwroot/svntest # 如果手動檢出可以這樣 # svn co svn://localhost/project --username store # 手動輸入密碼,或在指令碼中這樣寫: svn co svn://localhost/project --username store --password store <<EOF yes EOF ## svn 客戶端儲存文字密碼 sed -i 's/# store-plaintext-passwords = no/store-plaintext-passwords = yes/g' /root/.subversion/servers cd project touch README.md svn add README.md svn commit README.md -m "測試提交檔案" ## 下面新增 post hook cat >/var/svn/project/hooks/post-commit<<EOF #!/bin/sh export LANG=en_US.utf8 SVN_PATH=/usr/bin/svn WEB_PATH=/home/wwwroot/svntest/project \$SVN_PATH update \$WEB_PATH --username 'store' --password 'store' --no-auth-cache EOF ## 修改 hook 指令碼使用者、組 為www,這裡的使用者組與 web 目錄要一致 chown www:www /var/svn/project/hooks/post-commit ## 新增執行許可權 chmod 755 /var/svn/project/hooks/post-commit ## 下面檢驗成果 mkdir -p /home/wwwroot/testhook cd /home/wwwroot/testhook svn co svn://localhost/project --username wholesaler --password wholesaler <<EOF yes EOF cd project touch HOOKTEST.md svn add HOOKTEST.md svn commit HOOKTEST.md -m "hook test" ls -al /home/wwwroot/svntest/project

ps:經過測試功能木有問題,已經改過一些地方,還是有些不盡人意的地方,今天太晚了,該休息了,就這樣吧。