chatgpt一步步教您:如何轻松备份您的网站到阿里云盘

当你shiyongwordpress建站或者其他方式建站,肯定会遇到定期备份网站的问题,今天分享一个定时自动进行网站备份的操作方法,自动将整站文件和数据库文件备份至阿里云盘。此方法适用于大部分网站备份方法,部分方法在咨询chatgpt后给出完善解决方案。

 

要在Debian系统上安装阿里云盘CLI(aliyunpan CLI),您可以按照以下步骤操作:

1.添加阿里云盘的存储库

sudo curl -fsSL http://file.tickstep.com/apt/pgp | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/tickstep-packages-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/tickstep-packages-archive-keyring.gpg arch=amd64,arm64] http://file.tickstep.com/apt aliyunpan main" | sudo tee /etc/apt/sources.list.d/tickstep-aliyunpan.list > /dev/null


2.更新存储库并安装aliyunpan

sudo apt-get update
sudo apt-get install -y aliyunpan

关于您的第二个问题,是的,上面输出的代码应该保存为一个以.sh后缀的文件。您可以将这个文件放置在任何您方便访问的位置。通常,为了组织和安全考虑,您可以放在例如/home/yourusername/scripts这样的目录下。

登录aliyunpan

如何获取RefreshToken

第一种

需要通过浏览器获取refresh_token。这里以Chrome浏览器为例,其他浏览器类似。
打开 阿里云盘网页 并进行登录,然后F12按键打开浏览器调试菜单,选择Console按照下面步骤进行

JSON.parse(localStorage.getItem("token")).refresh_token

输出上面代码后 按回车 然后就会出现token

chatgpt一步步教您:如何轻松备份您的网站到阿里云盘

 

获取到token后接下来进行脚本编写。

编写上传脚本

脚本规则为备份你的网站以及网站对应的数据库同时都已tar格式进行上传,这样有利于备份速度,网站如果已目录方式备份文件较多备份速度慢。

将下面文件命名为backup.sh

#!/bin/bash

# 配置变量
DOMAIN_NAME="www.baizi.net"                     # 你的域名
WEB_PATH="/www/wwwroot/$DOMAIN_NAME"            # 网站根目录
MYSQL_USER="www.baizi.net"                      # 数据库用户名
MYSQL_PASSWORD="11111111password"               # 数据库密码
MYSQL_HOST="localhost"                          # 数据库主机
MYSQL_PORT="3306"                               # 数据库端口
MYSQL_DB="www.baizi.net"    				    # 数据库名称
BACKUP_DIR="/www/wwwroot/backup"                # 本地备份文件存储目录
ALIYUNPAN_PATH="/Databackup/$DOMAIN_NAME"       # 阿里云盘中的目标文件夹路径
DATE=$(date +%Y%m%d%H%M)                        # 生成日期字符串用于文件命名



# 创建本地备份目录
mkdir -p $BACKUP_DIR

# 登录aliyunpan
# 浏览器开发者模式下console执行以下命令按回车:JSON.parse(localStorage.getItem("token")).refresh_token
aliyunpan login -RefreshToken="980[TOKEN]77"

# 检查并创建阿里云盘目标文件夹
if ! aliyunpan ls "$ALIYUNPAN_PATH"; then
    aliyunpan mkdir "$ALIYUNPAN_PATH"
fi

# 备份数据库
#mysqldump -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -P$MYSQL_PORT --all-databases > $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql
#mysqldump -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -P$MYSQL_PORT $MYSQL_DB > $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql
#mysqldump -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -P$MYSQL_PORT $MYSQL_DB | gzip > $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.gz
mysqldump -h$MYSQL_HOST -u$MYSQL_USER -p$MYSQL_PASSWORD -P$MYSQL_PORT $MYSQL_DB > $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql
gzip $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql

if [ $? -eq 0 ]; then
    echo "数据库备份成功"
else
    echo "数据库备份失败"
    exit 1
fi

# 上传备份文件到阿里云盘
#aliyunpan upload $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.gz $ALIYUNPAN_PATH
#aliyunpan upload $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql $ALIYUNPAN_PATH
aliyunpan upload $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql.gz $ALIYUNPAN_PATH
#tar -czf $BACKUP_DIR/${DOMAIN_NAME}_web_backup_$DATE.tar.gz $WEB_PATH
#忽略错误的情况下上传备份文件到阿里云盘
tar --warning=no-file-changed -czf $BACKUP_DIR/${DOMAIN_NAME}_web_backup_$DATE.tar.gz $WEB_PATH
if [ $? -eq 0 ]; then
    echo "网站文件备份成功"
else
    echo "网站文件备份失败"
    exit 1
fi

# 使用aliyunpan上传备份文件
#aliyunpan upload $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.gz $ALIYUNPAN_PATH
aliyunpan upload $BACKUP_DIR/${DOMAIN_NAME}_web_backup_$DATE.tar.gz $ALIYUNPAN_PATH
if [ $? -eq 0 ]; then
    echo "文件上传成功"
else
    echo "文件上传失败"
    exit 1
fi

# 清理本地备份文件(可选)
# rm -rf $BACKUP_DIR/${DOMAIN_NAME}_db_backup_$DATE.sql $BACKUP_DIR/${DOMAIN_NAME}_web_backup_$DATE.tar.gz

echo "备份流程完成"

 

上传脚本到服务器

例如上传脚本文件到/path/to/your/backup.sh后,

cd /root/backup

给backup.sh脚本赋予权限执行以下代码

 

chmod +x backup.sh

然后运行backup.sh即可实现备份,运行备份脚本代码如下:

 

bash backup.sh

即可实现备份,见下图

chatgpt一步步教您:如何轻松备份您的网站到阿里云盘

自动备份方法

1.服务器执行一下命令即可实现自动备份

要实现定期自动备份,您需要将这个脚本添加到cron任务计划中。例如,要每天凌晨1点运行备份脚本,可以使用以下步骤:

  1. 打开crontab配置:
    crontab -e
  2. 添加以下行到文件中:
    0 1 * * * /path/to/your/backup.sh

    代码含义解释

    0 1 * * * /path/to/your/script.sh 是一个cron任务计划的格式,它的含义如下:

    • 0 1 * * *:这部分指定了任务的执行时间。
      • 0 表示分钟,这里设置为 0 意味着在小时的开始时刻。
      • 1 表示小时,这里设置为 1 意味着凌晨1点。
      • 第三个星号代表“每一天”。
      • 第四个星号代表“每个月”。
      • 第五个星号代表“每个星期的任何一天”。
    • /path/to/your/script.sh:这是要执行的脚本的路径。

    综合起来,这行命令的意思是“在每天凌晨1点执行位于 /path/to/your/script.sh 的脚本”。

    这里/path/to/your/backup.sh是您保存的脚本文件的完整路径。

确保在实施这些步骤之前,您已经在安全环境中测试了脚本,以确保它按照您的期望运行。

2.宝塔面板计划任务实现自动备份

  1. 登录宝塔面板: 打开宝塔面板,并登录到您的账户。
  2. 进入计划任务界面: 在宝塔面板的界面上找到“计划任务”功能,通常在面板的左侧菜单中。
  3. 添加新的计划任务: 点击“添加计划任务”或类似的按钮来创建一个新的任务。
  4. 配置任务
    • 任务类型:选择执行脚本或命令。
    • 任务命令:输入bash /path/to/your/script.sh。这将告诉系统执行您的备份脚本。
    • 执行周期:根据您的需要设置任务的执行频率,如每天、每周等。

chatgpt一步步教您:如何轻松备份您的网站到阿里云盘

5.保存并启用任务: 确认所有设置正确无误后,保存并启动这个计划任务。

请确保您的脚本在执行前已经正确设置了执行权限(例如,使用命令chmod +x /path/to/your/script.sh)。在宝塔面板中设置计划任务后,系统将按照您指定的频率自动执行备份脚本。

chatgpt一步步教您:如何轻松备份您的网站到阿里云盘

下载backup.sh文件

特别提醒注意:

如果在执行备份过程中出现以下错误

mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

针对您遇到的 mysqldump 权限问题,以下是一个解决方案的步骤概要,基于 Dan Langille's Other Diary 中的文章​​​​​​​​:

  1. 检查现有权限: 首先,通过运行 SHOW GRANTS FOR 'your_mysql_user'@'localhost'; 检查当前数据库用户的权限。
  2. 首先执行以下代码后输入数据库管理密码,如果你使用宝塔面板注意数据库root密码
mysql -u root -p

chatgpt一步步教您:如何轻松备份您的网站到阿里云盘

 

  1. 添加 PROCESS 权限: 如果发现用户权限不足,您需要为该用户添加 PROCESS 权限。可以通过执行以下 MySQL 命令来实现:
    GRANT PROCESS ON *.* TO 'your_mysql_user'@'localhost';
  2. 重新尝试备份: 授予 PROCESS 权限后,再次尝试运行 mysqldump 命令备份数据库。
  3. 权限回退(可选): 如果您想在备份后回退所赋予的额外权限,可以使用 REVOKE 命令:
    REVOKE PROCESS ON *.* FROM 'your_mysql_user'@'localhost';

请确保在执行这些操作时小心谨慎,特别是在修改数据库用户权限时。这些操作通常需要具有相应权限的数据库管理员身份来执行。在应用任何更改之前,建议您先备份数据库和账户权限设置。

本内容需要 登录 后才能查看

 

版权声明:本文内容采用 CC BY-NC-SA 4.0 协议许可,转载请注明
文章名称:chatgpt一步步教您:如何轻松备份您的网站到阿里云盘
文章链接:https://www.baizi.net/chatgpt/235.html
文章链接:https://www.baizi.net/chatgpt/235.html
根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24小时内从您的设备中彻底删除下载内容,否则一切后果请您自行承担,如果您喜欢该程序,请购买注册正版以得到更好的服务。
联系方式(#替换成@):serverr#baizi.net

THE END
分享
二维码
海报
chatgpt一步步教您:如何轻松备份您的网站到阿里云盘
当你shiyongwordpress建站或者其他方式建站,肯定会遇到定期备份网站的问题,今天分享一个定时自动进行网站备份的操作方法,自动将整站文件和数据库文件备份至……
<<上一篇
下一篇>>