利用svn钩子进行客户端更新并打印日志

来源:互联网 发布:淘宝信用卡套现 编辑:程序博客网 时间:2024/06/05 07:50

当我们在进行版本库更新后却无法及时告知远程客户端自动更新版本,我们可以利用svn钩子实现,但前提是服务器端和客户端可以进行无密码传输,以便于我们利用svn钩子直接执行svn up。

下面我们看一个脚本:

#!/bin/sh

# 库的路径

REPOS="$1"

# 新提交的版本号

REV="$2"

#程序目录

svn_bin=/usr/bin

svn_data_path=/data/svn

APP=/data/app

test_ip=192.168.1.2

exec 1>>"$LOGFILE"

exec 2>&1

date=`date "+%Y-%m-%d %H:%M:%S"`

author=`svnlook author -r $REV "$REPOS"`

function myecho()

{
        echo "$date" "$*"
}

myecho "提交版本号: $REV 作者: $author"

for changed_dir in `$svn_bin/svnlook dirs-changed $svn_data_path`

do
        update_path=`echo $changed_dir | awk -F / '{print $1}'`

        myecho "Update: $changed_dir"

        if [ "$update_path" = "test ];then

/usr/bin/sshroot@$test_ip "export LANG=en_US.UTF-8 ; cd $APPS/$changed_dir ; svn up"

                myecho "Svn up: $changed_dir totest_ip $test_ip"

else

                myecho "Svn up: $changed_dir has not been uploaded."

fi

done

1 0