linux脚本实现更新git库代码、并拷贝到指定目录,再更新git库的配置文件
我们给脚本取一个名字: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