侧边栏壁纸
博主头像
棋飞博客 博主等级

硅基文明终将统治地球

  • 累计撰写 10 篇文章
  • 累计创建 13 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

halo博客本地备份&远程备份

棋飞
2024-11-17 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

Preface

为了防止服务器坏掉导致博客数据丢失,需要对我的halo博客数据进行备份。我的做法是先在本地自动备份,再备份到远端(比如百度网盘)。

所谓备份就是为了防止数据丢失而采取的保存数据的行为。

在 Halo 运行的时候会在系统当前用户目录下产生一个 .halo2 的文件夹,绝对路径为 ~/.halo2。这个工作目录是固定的,里面通常包含下列目录或文件:

  • db:存放 H2 Database 的物理文件,如果你使用其他数据库,那么不会存在这个目录。
  • themes:里面包含用户所安装的主题。
  • plugins:里面包含用户所安装的插件。
  • attachments:附件目录。
  • logs:运行日志目录。
  • application.yaml:配置文件。

因此备份halo博客非常简单,只要备份好家目录的.halo2目录即可~

本地备份

可以在本地建一个目录专门存放备份脚本和备份目录:

[root@centos blogData]# tree .
. 
├── backup //这个目录存放本地备份的压缩包 
│ └── wwwrootbak20230526.tar.gz 
├── push2baiducloud.sh //将压缩包传到百度网盘 
└── wwwroot_backup.sh //将~/.halo2文件夹压缩到backup/

编写本地备份脚本文件

文件名:/root/blogData/wwwroot_backup.sh

#!/bin/sh
BK_DR=/root/blogData/backup    #备份文件存放路径
DB_DR=/root/.halo2 #需要备份的文件夹
DAYS=30                    #DAYS=30代表删除30天前的备份,即只保留最近30天的备份
LINUX_USER=root           #系统用户名
date=` date +%Y%m%d `
tar zcvf $BK_DR/wwwrootbak$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者
find $BK_DR -name "wwwrootbak*" -type f -mtime +$DAYS -exec rm {} \;  #删除30天前的备份文件(注意:{} \;中间有空格)

运行这个脚本文件可以将halo博客的所有数据(处于~/.halo2)都压缩到~/blogData/backup/中,命名为wwwrootbakxxxxxxxx.tar.gz,其中x…为日期信息。

更改脚本文件权限:

chmod +x /data/wwwroot_backup.sh

修改/etc/crontab

[root@centos blogData]# vi /etc/crontab

在底部加入:

40 12 * * * root /root/blogData/wwwroot_backup.sh

表示在每天12:40,cron程序会自动帮我们运行这个脚本。
重启cron使其生效:

/bin/systemctl restart crond.service #重启服务
systemctl enable crond.service #设为开机启动
/bin/systemctl start crond.service #启动   

本地自动备份到此大功告成。

远端备份

bybp百度网盘传输服务

为了防止服务器突然挂掉了,可以使用 bypy 工具,将Linux本地文件传到百度网盘。

安装:

pip3 install requests 
pip3 install bypy

使用:

第一次使用时,随便输入下面的bypy相关的一条命令,会叫你申请账号认证,跟着它的英文提示做就行了。

bypy info #显示信息 
bypy upload xxx #上传文件到百度云

编写远程备份脚本文件

文件名:/root/blogData/push2baiducloud.sh
#!/bin/sh
BK_DR=/root/blogData/backup
DB_DR=/root/.halo2
DAYS=30
LINUX_USER=root
date=` date +%Y%m%d `
bypy upload $BK_DR/wwwrootbak$date.tar.gz

同时像刚才那样,使脚本自动化,如图所示。
image.png
自此自动备份博客大功告成。

查看cron日志

vim /var/log/cron

image.png

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区