方案
目前采用的是git同步
- 代码放在coding,每次生成后上传整个目录(带public)
- nginx的发布的是public文件夹
- 设置定时任务每过一分钟同步git仓库
操作步骤
- 上传博客项目到git,然后在服务器
/opt/hugo/myBlog
,git pull。 - 编写定时任务执行的脚本,测试脚本。
- 添加定时任务,测试定时任务。
Linux每次使用git pull/git push都需输入密码解决
操作命令:
//执行这两条命令
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
,查看定时任务日志即可看到定时任务是否成功执行。
「真诚赞赏,手留余香」
真诚赞赏,手留余香
使用微信扫描二维码完成支付