gitlab webhook php exec 调用 shell 脚本。shell 脚本中调用 git pull 命令无法执行。
情况如下:
我在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 命令无法执行。的更多相关文章
- shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 示例 ...
- [shell]上一个命令执行完成,才执行下一个操作 | shell脚本中判断上一个命令是否执行成功
shell脚本中判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败.结合if-else语句实现判断上一个命令是否执行成功. 场 ...
- shell 中如何判断前一个命令是否执行成功
shell 中如何判断前一个命令是否执行成功 通过判断返回值来解决: if [ $? -eq 0 ];then 命令正确的分支 else 命令失败的分支 fi
- 链接脚本在编程中的高级运用之二——执行时库和C++特性支持
我们在链接脚本在编程中的高级运用之中的一个可变长数组中已经讲述了编译链接的原理,并且以uboot命令为例具体介绍链接脚本怎样实现可变长数组. 本章在前者的基础上继续讲述链接脚本在执行时库中的高级应用技 ...
- shell 从函数文件中调用函数的方法
你可以把所有的函数存储在一个函数文件中 你可以把所有的文件函数加载到当前脚本或命令行 加载函数文件中所有函数的方法: source xxx.sh
- 使用了gitlab管理pipeline,Jenkinsfile 中在出现克隆命令流水线执行会混乱
Jenkins_pipeline关闭默认检出 问题描述 在使用 Pipeline(流水线)过程中,如果使用了(Pipeline script from SCM)远程 Git 的 Jenkinsfile ...
- PHP通过exec执行git pull
目标 项目没有使用Jenkins部署,使用的是Gitlab+ECS,要实现代码的自动部署 想法 使用Gitlab的钩子,当某个分支的代码提交之后,访问一个URL,实现代码的自动部署.这里使用PHP的e ...
- 如何在Java中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- 在Java中调用Python代码
极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...
随机推荐
- AJAX通过HTML请求C#一般处理程序
AJAX通过HTML请求C#一般处理程序 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"&g ...
- org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException Line 47 in
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 47 in XML document from ...
- 阿里云服务器(ECS)从购买到配置NodeJS环境
本人入门级前端,对服务器不熟悉,这是自己摸索的过程,可能会有错误! 1.购买 阿里云服务器有个活动是新用户前六个月可以免费试用,但是每天早上发放一定的名额,但为了方便,我买了18RMB的捆绑套餐,也是 ...
- 【读书笔记】iOS-网络-负载
负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web S ...
- MySQL——优化ORDER BY语句
本篇文章我们将了解ORDER BY语句的优化,在此之前,你需要对索引有基本的了解,不了解的朋友们可以先看一下我之前写过的索引相关文章.现在让我们开始吧. MySQL中的两种排序方式 1.通过有序索引顺 ...
- Bootstrap源码分析系列之整体架构
作为一名合格的前端工程师,你肯定听说过Bootstarp框架.确实可以说Bootstrap框架是最流行的前端框架之一.可是也有人说Bootstrap是给后端和前端小白用的,我认为只要学习它能给我们前端 ...
- CSS揭秘(一)引言
借了一本CSS揭秘,国外的一本书,应该是目前相关书目里最好的了,内容非常扎实,不得不说图灵教育出的书真的不错,不然不是很厚的一本书卖到99也是.... 国外的这类书总是以问题开始,然后通过解决问题引出 ...
- 超经典sql练习题,在teradata上实现
题目来源:https://blog.csdn.net/flycat296/article/details/63681089 teradata实现: drop table student; create ...
- quarz时间配置
Cron表达式的格式:秒 分 时 日 月 周 年(可选). 字段名 允许的值 允许的特殊字符 秒 ...
- Window10 Linux子系统挂载磁盘
默认情况下, Linux子系统将当前winodws磁盘的盘全部挂载到/mnt/<disk_label>, 但一些新增的盘就需要手动做下了.. 官方参考文档 挂载磁盘 -- DrvFs 挂载 ...