Linux-定时备份网站数据文件到阿里云盘

Aliyunpan介绍

阿里云盘CLI.仿Linux shell文件处理命令的阿里云盘命令行客户

支持以下特色功能:

  • 多平台支持,支持Windows,macOS,linux(x86/x64/arm)等
  • 阿里云盘多用户支持
  • 支持文件网盘,相册网盘无缝切换
  • 支持导入/导出功能,快速备份(导出)和恢复(导入)网盘的文件
  • 下载网盘内文件,支持多个文件或目录下载,支持断点续传和单文件并行下载
  • 上传本地文件,支持多个文件或目录上传,支持排除指定文件夹/文件(正则表达式)功能
  • 备份本地文件,支持备份本地文件夹到网盘中,保持本地文件和网盘文件同步.常用于嵌入式或者NAS等设备.
### 以下有部分操作图片中没有,按照教程来就可以
 # 进入opt目录
 cd /opt
 # 下载安装包
 wget https://download.fastgit.org/tickstep/aliyunpan/releases/download/v0.0.2/aliyunpan-v0.0.2-linux-amd64.zip
 # 解压
 unzip aliyunpan-v0.0.2-linux-amd64.zip
 # 重命名文件夹
 mv aliyunpan-v0.0.2-linux-amd64/ aliyunpan/
 # 进入aliyunpan目录
 cd aliyunpan/
 # 运行aliyunpan
 ./aliyunpan

登录

首先,必须先登录.目前支持使用RefreshToken进行登录,RefreshToken可以参考以下步骤获取,以Chrome浏览器为例,其他浏览器类似.打开阿里云盘网页并进行登录,然后F12按键打开浏览器调试菜单,选择应用,在左边选择本地存储,找到token

使用login -RefreshToken=你的RefreshToken值登录

之后输入exit退出

编写脚本

# 新建shell文件
vim /opt/backup.sh


#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:  backup.sh
# Describe:  用于备份网站相关数据
# Revision:  终极版
# Date:    2021/09/26
# Author:  江霁月的私人小屋
# 设置mysql的登录用户名和密码(根据实际情况填写)
WEB_PATH=/home/www.jiangjiyue.com #网站根目录
ALIYUNPAN_PATH=/backup         #阿里网盘内的文件夹路径
MYSQL_USER="root"                #数据库用户
MYAQL_PASSWORD=""       #数据库密码
MYSQL_HOST="localhost"           #数据库IP(本地)
MYSQL_PORT="3306"                #数据库端口
BACKUP_DIR=/opt/wordpress/backup          #备份到哪个目录
DATE=`date +%Y%m%d%H%M`          #时间
#14天前的时间
ALI_DATE=`date +%Y%m%d%H%M -d '-14 day'`
#删除云端数据(14天以前的数据)
MYSQL_ALI="mysql_backup_$ALI_DATE.sql"
WEB_ALI="WEB_$ALI_DATE.tar.gz"
/opt/aliyunpan/aliyunpan rm $ALIYUNPAN_PATH/$MYSQL_ALI $ALIYUNPAN_PATH/$WEB_ALI
# 删除本地备份数据(删除7天以前的备份数据)
echo "正在删除7天以前的本地备份数据!!!"
find $BACKUP_DIR -mtime +7 -type f -name '*.sql' -exec rm -rf {} \;
find $BACKUP_DIR -mtime +7 -type f -name '*.tar.gz' -exec rm -rf {} \;
# 备份全部数据库
mysqldump -h$MYSQL_HOST -u$MYSQL_USER -p$MYAQL_PASSWORD -P$MYSQL_PORT --all-databases >$BACKUP_DIR/mysql_backup_$DATE.sql
if [ $? -eq 0 ]; then
    echo "备份成功,时间:" $(date +"%Y-%m-%d %H:%M:%S")
    #备份html文件
    tar zcPf $BACKUP_DIR/WEB_${DATE}.tar.gz $WEB_PATH
    if [ $? -eq 0 ]; then
        echo "备份网站根目录成功,路径:$BACKUP_DIR/WEB_${DATE}.tar.gz"
        if [ $? -eq 0 ]; then
        # 调用aliyunpan上传备份的文件
        /opt/aliyunpan/aliyunpan upload $BACKUP_DIR/mysql_backup_$DATE.sql $BACKUP_DIR/WEB_${DATE}.tar.gz $ALIYUNPAN_PATH
        else
            echo "上传文件出错,请检查日志!!!"
        fi
    else
        echo "备份网站根目录出错,请检查日志!!!"
    fi
else
    echo "备份数据库出错,请检查日志!!!"
fi




# 修改backup.sh文件权限
chmod 755 /opt/backup.sh

Crontab

vim /etc/crontab
#每天早上2点执行数据库和html备份脚本
0 2 * * * root /opt/backup.sh > /opt/backup.log 2>&1 &

查看阿里网盘上传是否成功.

文件名对不上是因为这个脚本被我改版过很多次,图片截图时间也不一样略过就好

下载阿里网盘文件/目录

# aliyunpan download <网盘文件或目录的路径1> <文件或目录2> <文件或目录3> ...
# 将阿里云盘中2021-09-25 08:22的WEB和数据库文件下载到本地
/opt/aliyunpan/aliyunpan download /backup/WEB_202109250813.tar.gz /backup/mysql_backup_202109250813.sql
# 下面这个和上面一样不过命令简短
# aliyunpan d <网盘文件或目录的路径1> <文件或目录2> <文件或目录3> ...

下载路径请看输出信息!!!

版权声明:
作者:江霁月
链接:https://www.jiangjiyue.com/maintenance/linux/527.html
来源:江霁月的私人小屋
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录