Ubuntu域名如何进行网站备份
导读:Ubuntu 域名网站备份实操指南 一 核心思路与准备 备份对象通常包括:网站文件(如 /var/www/html 或 /var/www)、Web 服务配置(如 /etc/apache2 或 /etc/nginx)、以及数据库(MySQL...
Ubuntu 域名网站备份实操指南
一 核心思路与准备
- 备份对象通常包括:网站文件(如 /var/www/html 或 /var/www)、Web 服务配置(如 /etc/apache2 或 /etc/nginx)、以及数据库(MySQL/MariaDB 或 PostgreSQL)。先确认这些路径与数据库类型。
- 建议遵循 3-2-1 备份原则:保留 3 个副本、使用 2 种不同介质、其中 1 份在异地。
- 检查磁盘空间与目录大小,确保有足够空间:
- 查看磁盘与目录:
df -h、du -sh /var/www、du -sh /etc/apache2 - 创建本地备份目录:
sudo mkdir -p /var/web_backup
- 查看磁盘与目录:
- 如需远程/异地备份,准备一台备份服务器或对象存储,并规划保留周期与清理策略。
二 方案一 服务器侧打包备份与定时任务
- 打包网站文件与配置(示例使用 tar + gzip):
- 基本命令:
sudo tar -cvpzf /var/web_backup/web-$(date +%F).tar.gz -C /var/www . -C /etc/apache2 . - 排除示例:
sudo tar -cvpzf /var/web_backup/web-$(date +%F).tar.gz -C /var/www . -C /etc/apache2 . --exclude=html/example.com/junk --exclude=logs - 说明:
-C切换目录后使用相对路径;排除路径也用相对路径;-p保留权限。
- 基本命令:
- 数据库备份:
- MySQL/MariaDB:
- 单库:
mysqldump -u USER -p'PASS' dbname | gzip > /var/web_backup/db-dbname-$(date +%F).sql.gz - 全部库:
mysqldump -u root -p --all-databases | gzip > /var/web_backup/db-all-$(date +%F).sql.gz
- 单库:
- PostgreSQL:
- 全部库:
sudo -u postgres pg_dumpall | gzip > /var/web_backup/pg-all-$(date +%F).sql.gz
- 全部库:
- MySQL/MariaDB:
- 自动化(cron):
- 每天 02:00 执行:
0 2 * * * /usr/local/bin/backup_site.sh(脚本中需包含上述 tar 与 mysqldump/pg_dumpall 命令) - 保留策略:按日期命名,配合
find /var/web_backup -name "web-*.tar.gz" -mtime +30 -delete清理 30 天前备份。
- 每天 02:00 执行:
三 方案二 增量同步与异地备份
- 使用 rsync 将备份目录增量同步到备份服务器(或另一块磁盘):
- 命令:
rsync -azP --delete /var/web_backup/ backupuser@backup.example.com:/backup/web/ - 选项说明:
-a归档模式(保留权限/属主/时间)、-z压缩传输、-P显示进度并支持断点续传、--delete使两端一致(谨慎使用,建议先--dry-run验证)。
- 命令:
- 免密登录(SSH 密钥):
- 在备份服务器生成密钥:
ssh-keygen -t rsa -b 4096 - 将公钥复制到 Web 服务器:
ssh-copy-id webuser@yourdomain.com,之后 rsync/ssh 无需交互密码。
- 在备份服务器生成密钥:
- 结合方案一,形成“本地打包 + 远程 rsync 同步”的自动化流程,满足 3-2-1 的异地副本要求。
四 方案三 仅静态站点的镜像备份
- 若网站为纯静态(HTML/CSS/JS/图片等),可用 wget 镜像整站到本地或备份机:
- 命令:
wget -p -np -r -k -e robots=off https://www.example.com/ - 参数说明:
-r递归抓取、-np不回溯父目录、-p下载依赖资源、-k转换链接为本地、-e robots=off忽略 robots.txt(仅在合规与授权前提下使用)。
- 命令:
五 恢复与校验
- 恢复网站文件与配置:
- 解压:
sudo tar -xvzpf /var/web_backup/web-2025-08-01.tar.gz -C / - 注意:
-C /会从根目录恢复,确保路径与打包时一致;恢复后检查目录权限与属主(如www-data)。
- 解压:
- 恢复数据库:
- MySQL/MariaDB:
gunzip < db-all-2025-08-01.sql.gz | mysql -u root -p - PostgreSQL:
psql -U postgres -f pg-all-2025-08-01.sql
- MySQL/MariaDB:
- 验证:
- 定期做恢复演练,抽样检查文件是否完整、数据库能否导入、站点能否正常访问;校验备份文件大小与数量是否符合预期。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu域名如何进行网站备份
本文地址: https://pptw.com/jishu/759791.html
