用云盘备份hexo

备份

运行环境

  • Ubuntu 20LTS版本
  • 公网ip
  • 有自己域名

0x01 下载阿里云linux客户端

进入opt目录

1
cd /opt

下载安装包

1
wget https://download.fastgit.org/tickstep/aliyunpan/releases/download/v0.2.1/aliyunpan-v0.2.1-linux-amd64.zip

安装解压工具

1
apt install unzip

解压

1
unzip aliyunpan-v0.2.1-linux-amd64.zip

重命名文件夹

1
mv aliyunpan-v0.2.1-linux-amd64/ aliyunpan/

0x02 登录

进入aliyunpan目录并运行

1
2
cd aliyunpan/
./aliyunpan

通过token登录

1
2
login -RefreshToken=你的RefreshToken值  # 登录
exit # 退出

RefreshToken值获取方法

0x03 备份准备

创建备份文件

1
2
cd /opt
vim blogBackup.sh

复制下面的备份脚本进入文件

  • 注意看命令后的备注,需要提前创建一些目录
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #!/bin/bash
    # -------------------------------------------------------------------------------
    # FileName: blogBackup.sh
    # Describe: Used for blog backup
    # Revision: 1.0
    # Date: 2022/09/21
    # Author: luyublog
    WEB_PATH=/root/blog/source # 要备份的目录
    ALIYUNPAN_PATH=/www/blogBackup/ #阿里网盘内的文件夹路径 提前创建好
    BACKUP_DIR=/opt/blog/backup #备份到哪个目录 提前创建好
    DATE=`date +%Y%m%d%H` #时间
    # 删除本地备份数据(删除7天以前的备份数据)
    echo "正在删除7天以前的本地博客备份数据!!!"
    find $BACKUP_DIR -mtime +7 -type f -name '*.tar.gz' -exec rm -rf {} \;
    # 备份博客源文件目录
    echo "删除成功,正在备份博客数据!!!"
    tar zcPf $BACKUP_DIR/BLOG_${DATE}.tar.gz $WEB_PATH
    # 调用aliyunpan上传备份的文件
    echo "备份成功,上传云盘"
    /opt/aliyunpan/aliyunpan upload $BACKUP_DIR/BLOG_${DATE}.tar.gz $ALIYUNPAN_PATH

保存退出后执行看看能不能运行

1
bash blogBackup.sh 
  • 这里多说一句,如果你是先把代码复制到windows环境下再导入到linux机器里的话会执行失败
    建议看下这篇文章

0x04 定时执行

设置定时任务

1
vim /etc/crontab

把以下内容复制到最后一行

1
2
#每天早上2点执行备份脚本
0 2 * * * root /opt/blogBackup.sh > /opt/blogBackup.log 2>&1 &

保存退出后重启一下cron

1
service cron restart

恢复

最后说一下恢复。把hexo、nginx重新安装好,然后把备份文件下载好后解压到博客source文件夹下即可

参考链接
参考博主博客