自动拉取 GitHub 仓库更新的脚本

这篇具有很好参考价值的文章主要介绍了自动拉取 GitHub 仓库更新的脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验

由于将 HAUE-CS-WIKI 部署到了我自己的服务器上作为国内镜像站,每次在源站更新后都需要手动拉取镜像站的更新实在是太麻烦了,因此产生了编写该脚本的需求(

读者可根据该脚本思路编写属于你自己的定时任务脚本。


脚本思路


  • 编写脚本文件,能够执行 git pull 命令以及 mkdocs build 构建命令。
  • 对这些命令的执行结果和状态需要保存到相应的日志,以便查询执行状态。
  • 利用 cron 守护进程实现定时执行该脚本文件。

编写脚本文件


#!/bin/bash

# 读取用户环境变量
. /etc/profile
source /root/.bashrc
source /root/.profile

# 日志文件路径
LOG_FILE="/wiki/log/update.log"
ERROR_LOG_FILE="/wiki/log/error.log"

# 任务执行时间
update_time=$(date +"%Y-%m-%d %H:%M:%S")

# 进入 haue-cs-wiki 目录
cd /wiki/haue-cs-wiki

# 执行 git pull 操作
git_pull_output=$(git pull 2>&1)
git_pull_status=$?

if [ $git_pull_status -eq 0 ]; then
    echo -e "$update_time: git pull successfully 🤗" >> "$LOG_FILE"
else
    echo -e "$update_time: git pull failed 🥵\n Error: $git_pull_output" >> "$ERROR_LOG_FILE"
fi

# 执行 mkdocs 构建
mk_build_output=$(mkdocs build 2>&1)
mk_build_status=$?

if [ $mk_build_status -eq 0 ]; then
    echo -e "$update_time: mkdocs build successfully 😎\n" >> "$LOG_FILE"
else
    echo -e "$update_time: mkdocs build failed 🤡\n Error: $mk_build_output" >> "$ERROR_LOG_FILE"
fi

注意

  • 所有的文件目录均需要指定为绝对路径,防止脚本执行路径出错。
  • 由于后续 cron 定时任务执行时,不会携带用户的环境变量,因此在脚本中需要读入相应用户的配置文件和环境变量。

设置 cron 定时任务


使用 crontab -e 打开定时任务注册表

第一次使用会提示选择需要使用的编辑器,选择适合自己的即可。

在注册表中编辑:

0 0 * * * /bin/bash /path/script.sh

其中 /path/script.sh 为执行脚本文件所在的绝对路径。

对于执行时间的设置,在 crontab 文件中,时间表达式由五个 * * * * * 字段组成,分别表示分钟、小时、日期、月份和星期几。

对于时间表达式 * * * * *,每个字段的含义如下:

  1. 第一个字段:分钟(取值范围:0-59)

    • * 表示每分钟都匹配,即每分钟触发任务。
  2. 第二个字段:小时(取值范围:0-23)

    • * 表示每小时都匹配,即每小时触发任务。
  3. 第三个字段:日期(取值范围:1-31)

    • * 表示每天都匹配,即每天触发任务。
  4. 第四个字段:月份(取值范围:1-12)

    • * 表示每个月都匹配,即每个月触发任务。
  5. 第五个字段:星期几(取值范围:0-6,其中 0 表示星期日)

    • * 表示每个星期都匹配,即每个星期触发任务。

例如:设置为 0 0 * * * 表示每天 0:00 执行一次该定时任务。文章来源地址https://www.toymoban.com/news/detail-658582.html

到了这里,关于自动拉取 GitHub 仓库更新的脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Github拉取老版本或releases稳定版本的仓库

    方法一:clone 随便进入一个仓库,查看分支信息 针对要拉取的分支版本,输入下面的指令: 以dev为例: 进入到这个 doctest 目录里面,发现我们已经处于 dev 分支下了,说明已经把该分支拉下来了 方法二:checkout 针对在本地已有远程仓库的项目,想要切换到其它分支,可以使

    2024年02月09日
    浏览(26)
  • git关联两个远程仓库,一个仓库(github)拉取代码,另一个仓库(gitlab)推送代码

    有这种情况,小伙伴们在github上下载的开源项目(该开源项目还在继续开发维护),然后自己下载下来进行二次开发,然后又要把项目推送自己的gitlab私服上,这个时候不得不本地代码关联两个远程仓库。接下来我将一步步讲解如何关联两个远程仓库,并拉取github的开源项目

    2024年02月12日
    浏览(55)
  • GitHub操作之远程仓库基本操作(团队内创建,推送,拉取等)

    itHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个

    2024年02月10日
    浏览(44)
  • github拉取自己的私有仓库(Token方式、本地秘钥方式)

    日常开发和学习过程中,经常碰到需要从GitHub或者其他类似网站,拉取私有仓代码的需求。本文将总结常用的两种方式,Token方式和本地秘钥方式,方便后续查阅和优化。 一、HTTPS的Token方式 (1)在GitHub个人主页,点击右上角头像,选择“Setting” (2)拉到最下面,选择“

    2024年02月12日
    浏览(28)
  • 使用TortoiseGit拉取(clone)、提交代码至托管仓库(GitLab、GitHub、Gitee)

    以GitLab为例,假设我们要拉取GitLab上如下路径的代码: Step 1: 获取代码仓库路径 Step 2: 新建文件夹 在本地新建文件夹用于放置拉取的程序文件等: Step 3: Git clone设置 选择代码仓库路径复制到URL,同时设置拉取文件的保存位置即Directory。此外,根据实际情况选择要拉取的代码

    2024年02月02日
    浏览(56)
  • Github仓库代码上传和更新

    准备 下载Git,把git和GitHub账号绑定,详见博客: https://www.cnblogs.com/ttmaoxianjun/articles/14617125.html 一、创建仓库并复制仓库地址 点击new新建仓库  添加仓库名字,创建仓库  复制仓库地址(我用的https,可以用ssh)  二、上传文件到仓库 随便找个文件夹右键打开Git Bash  输入g

    2023年04月08日
    浏览(39)
  • 【Git】本地仓库管理远程库(GitHub)——clone(下载)、commit(添加到本地仓库)、push(提交到远程仓库)、pull(拉取)操作

    目录 使用远程仓库的目的 将本地仓库同步到git远程仓库 1.克隆远程仓库(clone) 2.新建一个文件 3.将工作区的文件添加到暂存区 4.将暂存区的文件添加到本地仓库(commit) 5.提交(同步)到远程仓库(push) 6.远程库拉取到本地库(pull) 7.团队协作开发和跨团队协作开发(开源项目) 作用:备

    2024年01月21日
    浏览(53)
  • 如何使用git从github拉取自己的私有仓库(Token方式、本地秘钥方式)

    创建TOKEN 在GitHub个人主页,点击右上角头像,选择“Setting” 选择“Developer settings” 选择“Personal access tokens”下的“Tokens (classic)” 点击“Generate new token”下的“Generate new token(classic)” 输入内容和勾选选项,点击最下方“Generate token”按钮 复制一下这个token 之后就可以使用这

    2024年02月03日
    浏览(46)
  • Github || 同步更新fork的仓库的代码与原仓库一致

    我因为一些需求需要更新自己fork的仓库与原仓库,在网上搜了一下,有些麻烦,什么又New pull request有创建的,但是实际上开始操作的时候并没有这么麻烦。大约是github的版本变化?总之现在还是相当方便的。 要更新自己fork的代码与原仓库代码保持一致,一般有网页端和本地

    2024年02月03日
    浏览(35)
  • 『python爬虫』github仓库存放脚本结合青龙面板使用(保姆级图文)

    欢迎关注 『python爬虫』 专栏,持续更新中 欢迎关注 『python爬虫』 专栏,持续更新中 订阅或是直接添加任务 名称随意输入,链接是我们的仓库地址+ .git ,定时规则 0 0 7 * * ? 表示每天7点更新一次,也可以自己设置. 添加订阅后运行发现如果没有添加脚本,请检查你的配置,是否接

    2024年04月26日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包