情况如下:
我在ubuntu server 14.04 上面安装了gitlab,来托管项目代码。然后想通过gitlab的web hook
功能来做测试服务器代码自动化更新代码功能。现在遇到一个问题:就是我客户端在master分支上面push代码的时候,我测试服务器的代码目录并没有自动更新。我的shell脚本如下:

!/bin/bash
echo 'haha:::==' >> /tmp/wtz.log

cd /srv/www/bfar-ng

echo 'my name is gitlab'>> /tmp/wtz.log

git checkout master

git pull origin master >> /srv/www/deploy/info.log

git pull origin master

echo 'you are so cute!!!::'>> /tmp/wtz.log

查看wtz.log 后发现echo 'my name is gitlab'>> /tmp/wtz.log 和echo 'you
are so cute!!!::'>> /tmp/wtz.log
都成功写入到日志文件中。但测试服务器项目原代码就是没有自动更新。除非手动git pull origin master 或者 在终端里面直接执行
上面的shll。它才会更新。
ps:项目目录我都设置777权限了。

求教为啥无法执行git命令。

之前正好搞过这个,主要还是权限的问题,最好用 sudo git pull origin master, 然后参照这个 http://stackoverflow.com/questions/3173201/sudo-in-php-exec 将 PHP 的执行用户加到 sudo 免密输入的列表中...

https://www.v2ex.com/t/201342

gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。的更多相关文章

  1. shell脚本中判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...

  2. [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功

    shell脚本中判断上一个命令是否执行成功  shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...

  3. shell 中如何判断前一个命令是否执行成功

    shell 中如何判断前一个命令是否执行成功 通过判断返回值来解决: if [ $? -eq 0 ];then 命令正确的分支 else   命令失败的分支 fi

  4. 链接脚本在编程中的高级运用之二——执行时库和C++特性支持

    我们在链接脚本在编程中的高级运用之中的一个可变长数组中已经讲述了编译链接的原理,并且以uboot命令为例具体介绍链接脚本怎样实现可变长数组. 本章在前者的基础上继续讲述链接脚本在执行时库中的高级应用技 ...

  5. shell 从函数文件中调用函数的方法

    你可以把所有的函数存储在一个函数文件中 你可以把所有的文件函数加载到当前脚本或命令行 加载函数文件中所有函数的方法: source xxx.sh

  6. 使用了gitlab管理pipeline,Jenkinsfile 中在出现克隆命令流水线执行会混乱

    Jenkins_pipeline关闭默认检出 问题描述 在使用 Pipeline(流水线)过程中,如果使用了(Pipeline script from SCM)远程 Git 的 Jenkinsfile ...

  7. PHP通过exec执行git pull

    目标 项目没有使用Jenkins部署,使用的是Gitlab+ECS,要实现代码的自动部署 想法 使用Gitlab的钩子,当某个分支的代码提交之后,访问一个URL,实现代码的自动部署.这里使用PHP的e ...

  8. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  9. 在Java中调用Python代码

    极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

随机推荐

  1. Google 翻译(中英,英中)

    网上找了好久, 终于弄好了, 免费的谷歌翻译,直接上代码,不懂留言: //翻译 app.get('/google', function (req, res, next) { var content = ...

  2. DOM基础练习代码(二)

    上一篇给大家的三段代码不知到大家有没有练习呢?今天再给大家带来两段DOM的练习! 4.封装函数,实现children功能,最好哎原型链上编程 Element.prototype.getChildren ...

  3. BZOJ3165: [Heoi2013]Segment(李超线段树)

    题意 题目链接 Sol 李超线段树板子题.具体原理就不讲了. 一开始自己yy着写差点写自闭都快把叉积搬出来了... 后来看了下litble的写法才发现原来可以写的这么清晰简洁Orz #include& ...

  4. cf711D. Directed Roads(环)

    题意 题目链接 \(n\)个点\(n\)条边的图,有多少种方法给边定向后没有环 Sol 一开始傻了,以为只有一个环...实际上N个点N条边还可能是基环树森林.. 做法挺显然的:找出所有的环,设第\(i ...

  5. 【读书笔记】iOS-定位服务与地图应用开发

    一,定位服务. iOS设备能提供3种不同的定位途径: 1,WiFi定位,通过查询一个WiFi路由器的地理位置的信息,比较省电:iPhone,Ipod touch 和iPad都可以. 2,蜂窝式移动电话 ...

  6. page、request、session和application有什么区别?

    转自:http://liuyuru.iteye.com/blog/773367 1.简单说 page指当前页面.在一个jsp页面里有效 2.request 指从http请求到服务器处理结束,返回响应的 ...

  7. JavaScript判断当前手机是Android还是iOS系统

    $(function () { var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf(' ...

  8. ConstraintLayout (约束布局)属性详情

    本文部分内容来自于网络,点击浏览原文 app:layout_constraintLeft_toLeftOf //Constrains the left side of a child to the l ...

  9. 基于MSMQ绑定的WCF服务实现总结

    一. 创建消息队列    1 1) 创建一个非事物性的私有队列    1 2)设置消息队列访问权限    2 二.创建WCF服务并绑定消息队列    4 1)创建HelloService服务    4 ...

  10. PHP的CURL的POST/GET访问

    本文出至:新太潮流网络博客 /** * [curl以GET的方式访问] * @E-mial wuliqiang_aa@163.com * @TIME 2017-04-07 * @WEB http:// ...