博客推送同步问题

安装配置教程

Posted by kzdgt on Sunday, February 20, 2022

方案

目前采用的是git同步

  • 代码放在coding,每次生成后上传整个目录(带public)
  • nginx的发布的是public文件夹
  • 设置定时任务每过一分钟同步git仓库

操作步骤

  1. 上传博客项目到git,然后在服务器/opt/hugo/myBlog,git pull。
  2. 编写定时任务执行的脚本,测试脚本。
  3. 添加定时任务,测试定时任务。

Linux每次使用git pull/git push都需输入密码解决

Linux每次使用git pull/git push都需输入密码解决_代码,搬运工~叶军军的博客-CSDN博客

操作命令:

//执行这两条命令
cd /
git config --global credential.helper store

执行完命令之后会在.gitconfig文件中多加红色字体

[user]
        name = your name
        email = your email
[credential]
        helper = store

使用:

  cd到项目目录,执行git pull,会提示输入账号密码。输完这一次以后git pull或git push就不在需要输入密码了(会在根目录生成一个 .git-credentials 文件)

编写定时任务执行脚本

[备忘]Linux CentOS git每分钟pull代码,git定时更新代码_SDL大华的博客-CSDN博客_centos git pull

编写脚本

#!/bin/bash
# 打开目录,这一步不可缺少
cd /opt/hugo/myBlog 
# 将执行结果追加到日志文件
git pull >> /tmp/git.log
# 为方便查看,追加一行日期
date >> /tmp/git.log
# 同样,追加分割线
echo "==========" >> /tmp/git.log

授权

chmod u+x pullcoding.sh

执行脚本,会出现pull代码的提示则成功。

配置定时任务

配置定时任务:crontab -e (回车就会进入编辑页面),添加定时任务直接在后面添加代码即可,crontab -l 查看一下。(Ubuntu系统需要重载定时任务,CentOS有的需要有的不需要,反正过两分钟看一下git.log有没有日志就知道了) 重启指令:

systemctl restart crond.service
#pull code
# 这里表示每2分钟执行一次sh脚本,并将执行结果输出到git.log文件中
*/2 * * * * /opt/conf/autoTask/auto_pull_myBlog.sh >> /tmp/git.log
*/2 * * * * /opt/conf/autoTask/auto_pull_myGuide.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

日志打印在/tmp/git.log,查看定时任务日志即可看到定时任务是否成功执行。

「真诚赞赏,手留余香」

kzdgt Blog

真诚赞赏,手留余香

使用微信扫描二维码完成支付