Halo Backup

2021-02-13   


写在前面

这里我将halo的数据备份到github,因此需要一个github账户,并为其配置好ssh(github如何配置ssh,这里不再赘述,目的是不用每次输入用户名和密码)。

环境

服务器 centos7.6并安装Git

安装Git

使用默认的yum源安装,但不一定保证Git是最新的。

# 安装git
[root@10-23-202-173 ~]# yum install -y git

# 查看版本
[root@10-23-202-173 ~]# git version
git version 1.8.3.1

# 配置git用户名
[root@10-23-202-173 ~]# git config --global user.name "owye"

[root@10-23-202-173 ~]# git config --global user.email "my.cherish@outlook.com"

# ssh设置生成公钥
ssh-keygen -t rsa -C "your email" //后续只需要按回车即可

# 进入用户目录查看公钥
[root@10-23-202-173 /]# cd ~/.ssh
[root@10-23-202-173 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub

# 查看公钥内容,配置到码云或github
[root@10-23-202-173 .ssh]# cat id_rsa.pub


去 Github 配置 `ssh key`。目的是在 `push` 的时候不需要输入用户名和密码。

# 最后验证是否配置成功
[root@10-23-202-173 ~]# ssh -T git@github.com

备份脚本

自动提交的脚本,将其写入到一个 sh 文件里面,如 halo-backup.sh

[root@10-23-202-173 ~]# cd /bin
[root@10-23-202-173 bin]# vi halo-backup.sh

将以下内容复制粘贴到 halo-backup.sh 中,远程地址使用SSH,不要使用HTTPS

#! /bin/bash
message=`date -u +"%Y_%m_%d_%H_%M"`
cd /root/.halo
rm -rf .git
git init
git remote add origin git@github.com:owye/halo-backup.git
git add application.yaml upload/ db/
git commit -m "`date '+%D'`"
git push -f origin master

定时任务配置


# 初始化 ~/.halo 仓库
cd ~/.halo & git init

# 赋予执行权限 
[root@10-23-202-173 bin]# chmod +x halo-backup.sh
[root@10-23-202-173 bin]# crontab -e

# 设置备份执行时间
# 执行 crontab -e 添加 00 03 * * * /bin/sh halo-backup.sh 2>autoupdate.err 的绝对路径
# (00 03 * * * 表示每天三点执行)
crontab -e

# 使定时任务生效
service crond restart

完结撒花!

Q.E.D.


如果你不是特别幸运,那么请你特别努力!