安装工具

安装pip

安装虚拟环境创建工具:

sudo apt install python3-venv

创建一个新的虚拟环境:

python3 -m venv ~/myvenv

激活虚拟环境:

source ~/myvenv/bin/activate

安装bypy

pip install bypy

安装requests

pip install requests

bypy设置

授权登录

bypy info
  1. 将Please visit下的链接粘贴到浏览器去登录
  2. 在浏览器中打开链接,输入账号密码登录,然后授权,即可获取授权码,如下。然后复制授权码,粘贴到终端,按下回车,过一会大概率就成功了

bypy基本操作

把本地当前目录下的文件同步到百度云盘:

bypy info     #空间使用信息
bypy list     #目录信息
bypy upload    #上传根目录所有文件
bypy downdir    #把云盘上的内容同步到本地
bypy compare    #比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:

shell备份脚本

将 数据路径, 网站根目录名称,数据库名称,数据库密码替换为自己的

#!/bin/bash

web_path="/var/www" # 数据路径
web_arry=("alist" "bitwarden" "blog") # 网站根目录名称
mysql_arry=("blog") # 数据库名称
date_time=$(date +"%Y_%m_%d") # 日期格式
year=$(date +"%Y") #年份
user="root" # 数据库用户名
password="lsy22.com" # 数据库密码
original_dir=$(pwd) # 记录原始目录

# 组合备份
for item in "${mysql_arry[@]}"; do
    # 创建SQL备份
    mysqldump -u $user -p$password ${item} > "${item}_${date_time}.sql"
    
    # 检查是否有同名的网站目录
    if [[ " ${web_arry[@]} " =~ " ${item} " ]]; then
        # 切换到网站目录进行压缩
        cd "${web_path}/${item}/" || exit
        zip -r "${item}_web_${date_time}.zip" .
        # 移动压缩文件回原始目录
        mv "${item}_web_${date_time}.zip" "$original_dir"
        # 返回原始目录
        cd "$original_dir" || exit
        # 将数据库SQL文件和网站压缩包一起压缩
        zip "${item}_${date_time}.zip" "${item}_${date_time}.sql" "${item}_web_${date_time}.zip"
        # 删除临时的网站压缩包
        rm "${item}_web_${date_time}.zip"
    else
        # 否则,只压缩数据库
        zip "${item}_${date_time}.zip" "${item}_${date_time}.sql"
    fi
    rm "${item}_${date_time}.sql"
    # 上传到云存储
    bypy upload "${item}_${date_time}.zip" "/${item}/${year}/"
    rm "${item}_${date_time}.zip"
done

# 单独备份那些没有同名数据库的网站目录
for item in "${web_arry[@]}"; do
    if [[ ! " ${mysql_arry[@]} " =~ " ${item} " ]]; then
        # 切换到网站目录进行压缩
        cd "${web_path}/${item}/" || exit
        zip -r "${item}_${date_time}_data.zip" .
        # 移动压缩文件回原始目录
        mv "${item}_${date_time}_data.zip" "$original_dir"
        # 返回原始目录
        cd "$original_dir" || exit
        # 上传到云存储
        bypy upload "${item}_${date_time}_data.zip" "/${item}/${year}/"
        rm "${item}_${date_time}_data.zip"
    fi
done

设置定时任务

  1. 编辑crontab -e
    加入以下内容
    0 0 1 * * /var/webbackups/backups.sh

    将路径替换为自己的
    /var/webbackups/backups.sh 这个脚本在每个月的第一天的午夜(00:00)执行一次。
  2. 重启cron服务
    systemctl restart cron
最后修改:2024 年 05 月 04 日
如果觉得我的文章对你有用,请随意赞赏