YiluPHP
这家伙很懒,什么都没有留下...

经验 linux脚本实现更新git库代码、并拷贝到指定目录,再更新git库的配置文件

浏览数 183600 最后修改时间
我们给脚本取一个名字:update_project,把它放在/usr/local/bin/目录里,这样它就成有全局的一个脚本,在任何目录中都可以使用update_project来执行它。

创建并编辑脚本
vim /usr/local/bin/update_project

脚本内容如下

#!/bin/bash
username="你的git登录名"
password="你的git密码"
bootdir="/data"
sourcedir=${bootdir}"/source/project"
targetdir=${bootdir}"/web/project"
configsourcedir=${bootdir}"/source/project_config"

gitpull(){
    expect -c "
        spawn git pull
        expect \"*Username*\" {
            send \"${username}\r\"
        }
        expect \"*Password*\" {
            send \"${password}\r\"
        }
        interact
    "
}

cd ${sourcedir}
gitpull
cp -rf ${sourcedir}/* ${targetdir}

cd ${configsourcedir}
gitpull
cp -rf ${configsourcedir}/* ${targetdir}/config

 
记得给update_project可执行的权限
chmod +x /usr/local/bin/update_project

然后设置update_project为全局可用的命令,这样不管当前用户处在任何目录,都可以直接使用 update_project 命令执行这个脚本。
方法一:
把update_project拷贝到 /usr/sbin 目录里,把给它可执行权限
cp /usr/local/bin/update_project /usr/sbin/update_project
chmod +x /usr/sbin/update_project

方法二:
把 /usr/local/bin 加入到环境变量PATH里
vim /etc/profile

在原来的PATH上增加:/usr/local/bin
PATH=$PATH:/usr/local/php/bin:/usr/local/bin
export PATH

如果原来没有PATH,在最底部则添加
PATH=$PATH:/usr/local/bin
export PATH

保存并退出
然后让它立即生效
source /etc/profile


如果执行脚本时报错 expect 命令不存在,则需要先安装 expect 命令
http://www.weinidai.com/index.php/News/detail/id/178

我来说说