当前位置:网站首页 >  攻略

普通人零成本搞定网站全量备份加定期自动异地存储实操指南

时间:2026年06月12日 17:32:02 来源:易频IT社区
前置准备:确认你的网站基础环境 开始操作前,先通过2种最直接的方式确认环境,10秒就能搞定: 1. 如果是虚拟主机/云建站(如阿里云速成美站、腾讯云中小企业建站):联系服务商后台客服或查看控制台左侧菜单「备份」「数据管理」选项,99%的主流虚拟主机自带自动备份,下面教程仅补充虚拟主机手动全量取文件的操作,自动同步异地无需额外配置; 2. 如果是自己搭建的云服务器(如阿里云ECS、腾讯云CVM、华为云ECS):先登录服务器后台,执行以下命令确认系统是CentOS/Ubuntu(这两个系统覆盖95%以上自建站): ```bash cat /etc/os-release ``` 记住`ID`字段的值是`centos`还是`ubuntu`即可。 第一部分:所有网站通用的手动全量备份 全量备份=网站所有文件(代码、图片、插件等)+数据库(用户数据、文章内容、订单等),两个缺一不可,恢复时必须同时恢复。 1.1 手动备份网站文件 场景A:云服务器建站 用SFTP工具(FileZilla,完全免费)下载,步骤如下: 1. 下载FileZilla:直接从官方安全渠道下载,Windows/macOS/Linux都有对应版本:https://filezilla-project.org/download.php?type=client 2. 配置FileZilla连接云服务器: - 打开FileZilla,点击顶部菜单栏「文件」→「站点管理器」→「新站点」; - 协议选SFTP - SSH File Transfer Protocol(别选FTP,不安全); - 主机填云服务器的公网IP; - 端口一般留空(默认22),如果你的云服务器改了SSH端口就填改后的; - 登录类型选密钥文件(推荐,更安全)或密码; - 选密钥文件的话:用户名为`root`(CentOS)或`ubuntu`(Ubuntu),密钥文件选购买云服务器时下载的`.pem`私钥(如果没有生成过,去云服务器控制台「密钥对」生成并绑定服务器后重启即可); - 选密码的话:用户名为`root`(CentOS)或`ubuntu`(Ubuntu),密码是服务器登录密码; - 点击「连接」,第一次连接会弹出「未知主机密钥」,勾选「始终信任此主机」后点击「确定」; 3. 找到并下载网站根目录: - 绝大多数云服务器用的面板(如宝塔面板、小皮面板)或默认部署环境的根目录: - 宝塔面板:`/www/wwwroot/你的域名`(比如我的是`/www/wwwroot/example.com`); - 小皮面板:`/home/wwwroot/你的域名`; - 无面板Apache默认:`/var/www/html`; - 无面板Nginx默认:`/usr/share/nginx/html`; - 右侧窗口显示远程服务器文件,左侧显示本地电脑,选中右侧的整个根目录文件夹,右键→「下载」,等待进度条走完即可。 场景B:虚拟主机/云建站 直接从控制台操作,以阿里云ECS虚拟主机为例(其他服务商逻辑完全一致): 1. 登录阿里云控制台→左侧「产品与服务」→「云虚拟主机」; 2. 找到对应主机,点击「管理」→左侧「网站搬家/网站数据」→「文件管理」→「文件下载」; 3. 勾选整个`htdocs`文件夹(虚拟主机的通用根目录),点击「打包下载」,等待压缩完成后点击「下载压缩包」即可。 1.2 手动备份网站数据库 场景A:云服务器(带面板/无面板都可用) 用`mysqldump`命令(MySQL/MariaDB自带,无需额外安装),步骤如下: 1. 登录云服务器终端:可以用云服务器控制台自带的「远程连接」→「VNC」,也可以用Xshell/PuTTY(同样推荐FileZilla自带的终端,不需要换工具); 2. 查找数据库信息:先找到网站根目录的配置文件(不同程序路径不同): - WordPress:根目录下的`wp-config.php`; - 织梦CMS:根目录下的`data/common.inc.php`; - Discuz:根目录下的`config/config_global.php`; - 其他程序:一般文件名包含`config`、`database`、`common`; - 以WordPress为例,用FileZilla下载`wp-config.php`到本地,用记事本打开,找到以下3个信息: ```php define('DB_NAME', '你的数据库名'); // 第1个 define('DB_USER', '你的数据库用户名'); // 第2个 define('DB_PASSWORD', '你的数据库密码'); // 第3个 ``` 3. 执行备份命令:在终端输入(注意替换引号里的内容,密码如果有特殊字符(如$、&)要加反斜杠转义,或者密码前后加单引号更简单): ```bash 备份并保存到根目录下的backup文件夹(先创建backup文件夹) mkdir -p /www/backup CentOS/Ubuntu通用命令,替换引号里的内容 mysqldump -u'你的数据库用户名' -p'你的数据库密码' '你的数据库名' > /www/backup/$(date +%Y%m%d)_你的数据库名.sql ``` 执行后如果没有报错,就说明备份成功; 4. 下载数据库备份文件:用FileZilla连接云服务器,找到`/www/backup`文件夹,下载刚才生成的`.sql`文件即可。 场景B:虚拟主机/云建站 还是以阿里云ECS虚拟主机为例: 1. 登录主机管理后台→左侧「网站数据」→「数据库管理」→「phpMyAdmin」(点击登录按钮,会自动跳转,无需输入密码); 2. 在phpMyAdmin左侧选中你的数据库,点击顶部「导出」; 3. 导出方法选「快速」,格式选「SQL」,点击「执行」,浏览器会自动下载`.sql`文件。 第二部分:云服务器自动+免费异地备份(零成本,推荐长期用) 本地备份丢了没用,必须异地存,用开源免费工具`Restic`+国内免费云存储`阿里云对象存储OSS免费额度`(每月5GB存储+5GB下载流量,个人小站完全够用)。 2.1 注册阿里云OSS并创建存储桶 1. 注册/登录阿里云账号:https://account.aliyun.com/ 2. 开通OSS免费额度:https://free.aliyun.com/product/oss 3. 创建存储桶(Bucket): - 登录OSS控制台→左侧「Bucket列表」→「创建Bucket」; - Bucket名称:随便填(全网唯一,比如`my-website-backup-2025`); - 地域:选离你最近的非服务器地域(比如服务器在杭州,选上海,异地存储); - 存储类型:选「标准存储」; - 读写权限:选「私有」(重要,防止别人访问你的备份); - 其他选项默认,点击「确定」; 4. 创建AccessKey(用于Restic连接OSS): - 点击阿里云右上角头像→「AccessKey管理」→「开始使用子用户AccessKey」(别用主账号,不安全); - 点击「创建用户」→登录名称填`restic-backup`→显示名称随便填→勾选「OpenAPI调用访问」→点击「确定」; - 创建成功后弹出的「AccessKey ID」和「AccessKey Secret」一定要保存到本地记事本,只显示一次; - 点击刚才创建的子用户→「权限管理」→「添加权限」→系统策略搜索「AliyunOSSFullAccess」→选中后点击「确定」。 2.2 安装并配置Restic 安装Restic ```bash CentOS/RHEL/Fedora yum install -y restic Ubuntu/Debian apt update && apt install -y restic ``` 初始化Restic仓库 在终端输入(注意替换所有带<>的内容,包括<>符号): ```bash 设置环境变量(临时生效,后面会配置永久生效) export AWS_ACCESS_KEY_ID=<你的子用户AccessKey ID> export AWS_SECRET_ACCESS_KEY=<你的子用户AccessKey Secret> export RESTIC_REPOSITORY=s3:oss-cn-<你的OSS地域代码>.aliyuncs.com/<你的Bucket名称> export RESTIC_PASSWORD=<你自己设置的仓库密码(必须复杂,至少8位,包含数字字母符号,恢复时要用)> 初始化仓库(只执行一次) restic init ``` 如果显示「created restic repository ...」就说明成功了。 2.3 配置自动备份脚本 1. 创建永久环境变量文件: ```bash 用vim编辑器创建文件 vim /etc/restic-env.sh ``` 按`i`键进入插入模式,复制粘贴以下内容(替换所有带<>的内容): ```bash export AWS_ACCESS_KEY_ID=<你的子用户AccessKey ID> export AWS_SECRET_ACCESS_KEY=<你的子用户AccessKey Secret> export RESTIC_REPOSITORY=s3:oss-cn-<你的OSS地域代码>.aliyuncs.com/<你的Bucket名称> export RESTIC_PASSWORD=<你自己设置的仓库密码> 设置数据库临时保存路径(和之前备份的一致) export DB_BACKUP_DIR=/www/backup 设置网站根目录(和之前备份的一致) export WEB_ROOT=/www/wwwroot/<你的域名> ``` 按`Esc`键退出插入模式,输入`:wq`保存并退出; 2. 给环境变量文件加权限: ```bash chmod 600 /etc/restic-env.sh ``` 3. 创建自动备份脚本: ```bash vim /usr/local/bin/website-backup.sh ``` 按`i`键进入插入模式,复制粘贴以下完整脚本: ```bash !/bin/bash 加载环境变量 source /etc/restic-env.sh 创建临时备份目录(如果不存在) mkdir -p $DB_BACKUP_DIR 清空临时目录的旧备份(防止占空间) rm -f $DB_BACKUP_DIR/.sql 备份数据库(替换引号里的内容) mysqldump -u'你的数据库用户名' -p'你的数据库密码' '你的数据库名' > $DB_BACKUP_DIR/$(date +%Y%m%d_%H%M%S)_你的数据库名.sql 用Restic备份网站文件+数据库临时目录 restic backup $WEB_ROOT $DB_BACKUP_DIR --exclude '.git' --exclude 'node_modules' --exclude '.log' 删除30天前的备份(可以自己改天数) restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune ``` 按`Esc`键退出插入模式,输入`:wq`保存并退出; 4. 给脚本加执行权限: ```bash chmod +x /usr/local/bin/website-backup.sh ``` 5. 测试脚本: ```bash bash /usr/local/bin/website-backup.sh ``` 执行后如果没有报错,去OSS控制台看Bucket里有没有生成备份文件。 2.4 设置定时任务 用Linux自带的`crontab`设置每天凌晨2点自动备份: 1. 打开crontab编辑界面: ```bash crontab -e ``` 2. 按`i`键进入插入模式,在最后一行添加: ```bash 0 2 /usr/local/bin/website-backup.sh >> /var/log/restic-backup.log 2>&1 ``` (解释:0=分钟,2=小时,=每天/每周/每月,最后一行是把日志保存到`/var/log/restic-backup.log`,方便排查问题) 3. 按`Esc`键退出插入模式,输入`:wq`保存并退出; 4. 确认定时任务添加成功: ```bash crontab -l ``` 如果显示刚才添加的那一行就说明成功了。
标签 网站备份

相关推荐

最新

热门

推荐

精选

标签

易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。

Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图