今天把一个网站日常代码更新的任务分给了一个初来员工,但不想把服务器的账号给他,也暂时不想教他Linux命令和怎么rsync之类。于是配置了个自动更新代码的方法,发现还是挺好用的,即使是自己用也很好,以后svn commit之后就可以省了rsync的命令,一劳永逸啊~~~
把下面代码添加了svn/hooks/post-commit里(替换部分路径)。当有svn提交,系统发现提交的代码涉及相关目录,就会通过rsync把代码同步到web服务器。不过这里还需要做一个rsync免输密码的设置。
#!/bin/sh
export LANG=zh_CN.UTF-8 # 这一行可以解决编码问题
lines="$(cd /projects && svn up | wc -l)"
if [ $lines -gt 1 ]
then
cd /projects && rsync -rv * root@myserver.com:/var/www/
fi
记得把上面的文件添加可执行权限,否则会报错:
chmod a+x post-commit
评论