[备忘]Linux CentOS git每分钟pull代码,git定时更新代码

8 篇文章 0 订阅
7 篇文章 0 订阅

(N天后仍然有该需求,按照下面步骤操作,搞定! ^ ^)

(文章已经悄悄优化了呢)

回忆:

凭着记忆写下来,因为不常用,以后肯定会忘记的,到时候捡起来快一些。

现在,从零开始在服务器上实现这个功能。

原理分析:让系统自动更新代码,那么肯定需要git来pull,然后肯定需要定时器。

需求:

  1. 操作系统:linux CentOS7.*
  2. 仓库管理软件:git
  3. bash脚本(这一步是做了之后才知道的)
  4. crontab定时任务管理器
  5. (让系统记住git账号密码)

开始:

操作步骤:

  1. 在系统某一目录中创建文件夹,用于存放git拉下来的代码,下文用 /www/wwwroot/project路径作为例子说明。
    1. 进入该目录 cd /www/wwwroot
    2. 创建文件夹:mkdir project(你的项目)
    3. git pull代码下来(这里还未记住密码)
  2. 编写bash脚本,下文用pullcoding.sh作为命令文件。
    1. 新建脚本文件夹sh_file,存放命令脚本
    2. cd /www/
    3. mkdir sh_file ,进入sh_file目录:cd sh_file
    4. vim pullcoding.sh创建并打开脚本文件
  3. 编辑以下代码(还是复制快一些,哈哈~,记得把项目路径替换掉):
    #!/bin/bash
    cd /www/wwwroot/yuzhounews.playone.cn/yuzhounews_playone_cn/
    # 将执行结果追加到日志文件
    git pull >> /tmp/git.log
    # 为方便查看,追加一行日期
    date >> /tmp/git.log
    # 同样,追加分割线
    echo "==========" >> /tmp/git.log

       

  4. :wq保存并退出

  5. 测试:执行pullcoding.sh。输入命令:./pullcoding.sh 之后按回车执行,会出现pull代码的提示。(如果不成功,先把上面步骤搞清楚)
    可能执行会报权限错误,这是因为当前目录下没有执行.sh文件的权限
    解决,执行指令:chmod u+x pullcoding.sh

  6. 使用定时任务执行脚本

  7. 配置定时任务: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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SDL大华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值