Ubuntu 域名网站备份实操指南
一 核心思路与准备
df -h、du -sh /var/www、du -sh /etc/apache2sudo mkdir -p /var/web_backup二 方案一 服务器侧打包备份与定时任务
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 保留权限。mysqldump -u USER -p'PASS' dbname | gzip > /var/web_backup/db-dbname-$(date +%F).sql.gzmysqldump -u root -p --all-databases | gzip > /var/web_backup/db-all-$(date +%F).sql.gzsudo -u postgres pg_dumpall | gzip > /var/web_backup/pg-all-$(date +%F).sql.gz0 2 * * * /usr/local/bin/backup_site.sh(脚本中需包含上述 tar 与 mysqldump/pg_dumpall 命令)find /var/web_backup -name "web-*.tar.gz" -mtime +30 -delete 清理 30 天前备份。三 方案二 增量同步与异地备份
rsync -azP --delete /var/web_backup/ backupuser@backup.example.com:/backup/web/-a 归档模式(保留权限/属主/时间)、-z 压缩传输、-P 显示进度并支持断点续传、--delete 使两端一致(谨慎使用,建议先 --dry-run 验证)。ssh-keygen -t rsa -b 4096ssh-copy-id webuser@yourdomain.com,之后 rsync/ssh 无需交互密码。四 方案三 仅静态站点的镜像备份
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)。gunzip < db-all-2025-08-01.sql.gz | mysql -u root -ppsql -U postgres -f pg-all-2025-08-01.sql