2019独角兽企业重金招聘Python工程师标准>>>

本操作需要使用到php执行sudo命令的权限,相关设置可以参考:
apache/Nginx下的PHP/Ruby执行sudo权限的系统命令

通过Svn的钩子功能,可以在我们执行SVN操作时,同时自动执行一些操作,比较常见的操作有:
1,本地更新并提交代码时,在测试环境或者线上环境同时将代码更新到最新版
2,在更新Svn时,如果有数据库相关的操作,可以同时将SQL发给远程钩子程序执行相关的SQL

这个实例是我们项目组用到的一个片段,实现在本地开发代码测试通过以后,往线上提交SVN时,自动将代码更新到线上,或者执行导出打包的工作

<?php
//先切换到程序部署的目录
$path = dirname(__FILE__);
exec("cd {$path}");exec("sudo /usr/bin/svn up", $output);
print_r($output);

这里需要将apache加入sudoer组

为此,修改sudo配置文件,直接键如visudo命令编辑配置文件:

1. 注释Defaults requiretty
Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端。
否则会出现sudo: sorry, you must have a tty to run sudo

2. 增加行 Defaults visiblepw
否则会出现 sudo: no tty present and no askpass program specified

3. 赋予apache用户执行svn权限
如,增加行:apache ALL=(ALL) NOPASSWD: /usr/bin/svn
注:NOPASSWD可以使在命令执行时不需要交互输入apache用户的密码

最后一步,即在SVN钩子中添加提交SVN时,自动访问远程链接“http://www.4wei.cn/yoursvnfile.php”

转载于:https://my.oschina.net/u/998304/blog/516637

使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码相关推荐

  1. 自动 更新SVN目录文件.bat

    将以下代码部分拷贝至 "自动 更新SVN目录文件.bat"保存,并放在需要常更新的SVN目录下 ==========自动 更新SVN目录文件.bat================ ...

  2. 利用SVN的post-commit钩子实现多项目自动同步

    svn的post-commit钩子脚本在每次提交(commit)之后运行,我们可以在这个脚本里实现一些比较实用的功能,比如发送邮件提醒.自动备份版本库,自动同步代码到web服务器等. 这里用post- ...

  3. python svn模块_使用Python实现一键批量更新SVN/Git模块的脚本

    现在我们开发的过程中,大都是模块化的工作方式,咱们的工程源码结构就是N个模块,N个SVN/Git地址,如果需要更新就得手动一个个的操作,弄起来实在太麻烦了,之前我都是写批处理来实现批量更新的,现在来使 ...

  4. java svn 版本号_eclipse中的Java文件自动根据svn版本号生成注释

    经常在java代码中看到以下的注释($Rev: $Date),是不是很酷,怎么生成的呢? /** * A FilterChain is an object provided by the servle ...

  5. SVN 使用hooks 自动更新到远程的web目录下

    为什么80%的码农都做不了架构师?>>>    环境: A机器192.168.1.10  作为SVN的服务端     (环境 apache svn ssh) 环境: B机器 192. ...

  6. git主要命令 及与svn的对比

    场景 Svn Git 1 下载代码 svn checkout git clone 2 加入版本控制 svn add git add 3 本地提交 - git commit 4 提交到服务器 svn c ...

  7. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...

    一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...

  8. (转)一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)...

    转自:http://www.cnblogs.com/mrblue/p/3885043.html 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码 ...

  9. unity多人开发,更新svn后材质丢失(模型贴图全变紫)的问题

    关于这个问题,以下的内容是通过询问的方式了解到的,不能百分百确定原理就是这样,发出来可供参考. 导致问题的原因: unity工程中的的meta文件和guidmapper(在Library中)是对应的, ...

最新文章

  1. 【Java面试题视频讲解】字符个数统计
  2. 语言nomogram校准曲线图_医学统计与R语言:Meta 回归作图(Meta regression Plot)
  3. 《Arduino实战》——2.5 小结
  4. 6.携程架构实践 --- 数据库
  5. 文件加密新招--WinRAR文件加密(上)
  6. 差分贴片晶振使最强军事武器出世
  7. 图像校色 白平衡调整
  8. 普通人的第一个Linux发行版-安装Deepin20.5
  9. 劳动与社会保障法-作业
  10. 网上商城所需软硬件架构分析
  11. SSH-keygen linux教程
  12. linux cp 性能,linux性能监控以及优化之CPU
  13. 小程序微信授权登录服务器异常,微信小程序授权登录流程(强制绑定手机号码)...
  14. aix xmanager oracle,AIX上启动xmanager界面
  15. 微信小程序常见面试题
  16. 微信上线新功能 看到这个提醒一定要接听
  17. 2021-基于深度学习的人脸检测综述文献-摘要
  18. poj 3208 Apocalypse Someday(数位dp)
  19. python实现PDF文件合并操作,附可直接使用的exe文件
  20. 服务器凌晨莫名奇妙自动重启解决方案

热门文章

  1. java parseint(12.0),如何实现一个parseInt
  2. mysql数据库管理系统模式_MYSQL命令行模式管理MySql的一点心得
  3. 骁龙660是32位还是64位_微软公布v2004最低处理器要求,放弃32位系统,你的CPU还能支持吗?...
  4. hbase 按时刻查询_Hbase查询工具类,根据时间查询数据
  5. linux下c代码调用.so,Linux下C程序调用.so(动态链)的一个例子
  6. a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...
  7. 指针 是否相同_算法一招鲜——双指针问题
  8. linux开发板 pc 通讯_从51单片机到Linux 开发板运行hello world(教程4)
  9. python测验5 函数和代码_测验5: 函数和代码复用 (第5周)-单选题
  10. 释放tcp连接的命令是_最实用的6个网络命令,网络故障不求人