Home » 未分类 » 项目发布部署自动化—文件同步

项目发布部署自动化—文件同步

首先SVN 提交  --->出发SVN的hooks---->post-comit为shell脚本,自动上传文件到服务器。

#!/bin/bash
## 解读diff文件(SVN差异日志)
dirCount=0
for line in $(cat diff)
do
 if [ -e ./${line} ]; then
 if [ -d ./${line} ]; then
 dirList[dirCount++]=${line}
 else
 listFiles="$listFiles ${line}"
 fi
 fi
done
##对目录排序
for (( i=0 ; i<${#dirList[@]} ; i++ ))
do
 for (( j=${#dirList[@]} - 1 ; j>i ; j-- ))
 do
 #echo $j
 if [[ ${#dirList[i]} -ge ${#dirList[j]} ]]
 then
 t=${dirList[j]}
 dirList[j]=${dirList[i]}
 dirList[i]=$t
 fi
 done
done
##创建远程FTP目录
for (( i=0 ; i<${#dirList[@]} ; i++ ))
do
 sh ./ftpmkdir.sh ${dirList[i]}
done
ftp -n<<!
open 11.11.25.22  #你的远程FTP服务器
user yourFtpUserName  yourFtpPassword 
binary
hash
cd /publish/
lcd /usr/local/nginx/html/publish/
prompt
mput $listFiles
close
bye
!

#创建远程目录
#!/bin/sh
dir=$@
ftp -n<<!
open 15.28.12.16
user username password 
binary
hash
cd /publish/
lcd /usr/local/nginx/html/publish/
prompt
mkdir $dir
close
bye
!

#hooook
/usr/bin/svn update /usr/local/nginx/html/publish --username yoursvnusername --password *****
if [ -e /usr/local/nginx/html/publish/diff ]; then 
rm -rf /usr/local/nginx/html/publish/diff
fi 
cd /usr/local/nginx/html/publish/
/usr/bin/svn diff --summarize -r "$((REV-1))":"$REV" > /usr/local/nginx/html/publish/diff
/usr/local/nginx/html/publish/autoftpupload.sh
    分享到: