(N天后仍然有该需求,按照下面步骤操作,搞定! ^ ^)
(文章已经悄悄优化了呢)
回忆:
凭着记忆写下来,因为不常用,以后肯定会忘记的,到时候捡起来快一些。
现在,从零开始在服务器上实现这个功能。
原理分析:让系统自动更新代码,那么肯定需要git来pull,然后肯定需要定时器。
需求:
- 操作系统:linux CentOS7.*
- 仓库管理软件:git
- bash脚本(这一步是做了之后才知道的)
- crontab定时任务管理器
- (让系统记住git账号密码)
开始:
操作步骤:
- 在系统某一目录中创建文件夹,用于存放git拉下来的代码,下文用 /www/wwwroot/project路径作为例子说明。
- 进入该目录 cd /www/wwwroot
- 创建文件夹:mkdir project(你的项目)
- git pull代码下来(这里还未记住密码)
- 编写bash脚本,下文用pullcoding.sh作为命令文件。
- 新建脚本文件夹sh_file,存放命令脚本
- cd /www/
- mkdir sh_file ,进入sh_file目录:cd sh_file
- vim pullcoding.sh创建并打开脚本文件
- 编辑以下代码(还是复制快一些,哈哈~,记得把项目路径替换掉):
#!/bin/bash cd /www/wwwroot/yuzhounews.playone.cn/yuzhounews_playone_cn/ # 将执行结果追加到日志文件 git pull >> /tmp/git.log # 为方便查看,追加一行日期 date >> /tmp/git.log # 同样,追加分割线 echo "==========" >> /tmp/git.log
-
:wq保存并退出
-
测试:执行pullcoding.sh。输入命令:./pullcoding.sh 之后按回车执行,会出现pull代码的提示。(如果不成功,先把上面步骤搞清楚)
可能执行会报权限错误,这是因为当前目录下没有执行.sh文件的权限。
解决,执行指令:chmod u+x pullcoding.sh -
使用定时任务执行脚本
-
配置定时任务:crontab -e (就一行代码,一行注释),crontab -l 查看一下。(Ubuntu系统需要重载定时任务,CentOS有的需要有的不需要,反正过两分钟看一下git.log有没有日志就知道了)
重启指令:service crond restart#pull code # 这里表示每2分钟执行一次pullcoding.sh脚本,并将执行结果输出到git.log文件中 2 * * * * /www/sh_file/pullcoding.sh >> /tmp/git.log # 下面的全部不要了,可以删除!优化一下,把下面的功能写到pullcoding.sh里面 # 每2分钟写入执行时间 #(特别注意:根据centos版本不同,echo可能不需要。 # 如:我测试的centos版本是7.1,所以我在写面这行代码时会去掉echo) #2 * * * * ehco date >> /tmp/git.log #每3个月28号23点59分清除日志文件(防止系统爆炸! ememem, 这点日志怎么可能?但这是好习惯.) 59 23 28 */3 * > /tmp/git.log
定时任务的时间设置
* * * * * 每分钟执行
*/1 * * * * 每分钟执行
0 5 * * * 每天五点执行
0-59/2 * * * * 每隔两分钟执行,且是偶数分钟执行,比如2,4,6
1-58/2 * * * * 每隔两分钟执行,且是奇数分钟执行,比如3,5,7
0 0 1,5,10 * * 每个月1号,5号,10号执行
0 0 1-5 * * 每个月 1到5号执行
OK,到这里该做的都做了,但是!任务虽然在执行,但新修改的代码是不会pull下来的。
原因就是:系统并不知道你的git账号密码。
让系统记住你的账号密码:
操作步骤:
1、进入根目录,输入命令:cd /
2、创建记录账号密码的文件,指令:touch .git-credentials
3、用vim打开文件,指令:vim .git-credentials
4、按i,进入编辑模式
5、输入https://{username}:{password}@github.com。说明:将{username}替换为你的账号;{password}替换为你的密码;https://.......@github.com替换为你的git仓库地址
(替换结果:举个例子,http://zhangsan:456123@自动替换为仓库地址),都是自动替换的,只需要编辑好这一句就行了(复制吧)。
eg:
https://382372337@qq.com:love0000@gitee.com
6、按Esc键,然后按:wq,保存并退出
7、让git读取刚才建立的文件,指令:git config --global credential.helper store
8、执行一次git操作,比如git clone xxxxxx,然后输入账号密码,这次账号密码将会被记录下来,以后不用再输入了;说明:在你的项目文件夹下执行git pull并输入账号密码更新一下就可以啦,这里说用git clone命令是因为之前没有pull过代码的情况。
到这里就结束啦,快修改代码提交到仓库,看看一分钟之后是否有效果吧。
END