VPS没有快照功能?教你如何完整导出所有数据

数据备份概念图

数据备份是保护数据安全的重要手段

最近看到有朋友在问:手里的VPS不支持快照功能,万一想换个地方或者重装系统,怎么才能把所有数据都导出来?确实,对于玩折腾的朋友来说,快照虽然方便,但不是每家云厂商都标配的。特别是那些主打“性价比”的便宜鸡,省成本往往就省在了这些高级功能上。

今天就来细说一下,在没有快照的情况下,我们如何通过老手的方式来“打包带走”所有数据。无论是博客数据、代码仓库还是配置文件,都能稳稳落地。

一、 最基础的方案:文件打包传输

如果没有快照,最原始但也最通用的办法,就是把数据打包后传出来。虽然听起来笨拙,但这是所有备份的基石。

命令行操作示意图

使用命令行进行文件打包

1. 打包网站目录

如果你的VPS上跑的是Web环境(比如LNMP or LAMP),核心数据通常都在 /www/wwwroot 或者 /var/www/html 下。

使用 tar 命令打包是首选,因为它能保留权限信息,这对于之后恢复运行至关重要。

tar -czvf website_backup_$(date +%Y%m%d).tar.gz /var/www/html

这里加个日期后缀是个好习惯,防止搞混。

2. 压缩并传输

打包好后,怎么拿下来?如果文件不大,直接 scp 或者本地开个 SFTP 软件拖下来就行。但如果文件有好几个G,直接传可能会卡死。

方案A:直接 SCP

scp root@your_vps_ip:/root/website_backup.tar.gz .

方案B:先压缩再传(针对大文件) 如果觉得传输过程中断很烦人,可以用 rsync,它支持断点续传。

rsync -avzP --progress root@your_vps_ip:/root/website_backup.tar.gz ./

二、 别忘了数据库!单独备份

网站文件能打包,但数据库里的内容可不在文件系统里。很多人备份完文件才发现忘了备库,欲哭无泪。

1. 使用 mysqldump 导出

最稳妥的方法是用 mysqldump 导出为 .sql 文件。

mysqldump -u root -p your_database_name > backup_database_$(date +%Y%m%d).sql

如果想一次性备份所有数据库,加上 --all-databases 参数:

mysqldump -u root -p --all-databases > all_databases_$(date +%Y%m%d).sql

2. 导出的文件别忘了压缩

SQL文件如果是文本,有时候体积惊人,记得再打个包:

gzip backup_database_20260520.sql

三、 进阶方案:系统级打包镜像

如果你不仅想导出数据,还想把现在的环境(包括安装的软件、系统配置等)原封不动地搬走,那简单的打包文件就不行了,你需要打包整个根文件系统。

1. 排除不必要的目录

在打包根目录 / 时,千万不能把 procsysdev 等虚拟文件系统打进去,否则解压会报错或者把新机器搞挂。/tmp/var/tmp 也建议排除。

tar -czpvf backup_full_system.tar.gz \
    --exclude=/proc \
    --exclude=/sys \
    --exclude=/dev \
    --exclude=/run \
    --exclude=/mnt \
    --exclude=/media \
    --exclude=/lost+found \
    --exclude=/tmp \
    --exclude=/var/tmp \
    /

2. 解压与恢复

拿到新机器上,解压到根目录即可。不过要注意,这套方法主要用于同版本操作系统的迁移。如果是 CentOS 搬到 Ubuntu,虽然文件能搬过去,但服务启动命令、依赖库全都不一样,大概率起不来。这时候就更推荐Docker化你的应用,把容器导出(docker export),换环境跑起来更容易。

四、 偷懒且稳健的自动化方案

如果你觉得每次手动敲命令太累,或者怕忘记,可以上一些自动化的脚本或第三方工具。

1. 编写简单的备份脚本

写个简单的 Shell 脚本,放进 crontab 里每天跑一次。脚本逻辑就是:备份数据库 -> 打包文件 -> 删除3天前的旧备份。

2. Rclone 配合网盘

很多便宜的VPS带宽虽然足,但本地硬盘小。你可以把备份好的文件,直接用 rclone 传到 Google Drive、OneDrive 或者 S3 兼容的对象存储里。这样即使VPS跑路了(你知道我在说哪家),数据还在云端躺着。

五、 总结与建议

没有快照并不代表数据就裸奔了。“快照是懒人的福音,但手动备份是老王的护身符。”

  • 日常备份:养成定期备份数据库和核心代码的习惯。
  • 迁移前:先用 tar 打包测试,确保能在本地解压。
  • 大文件:善用 rsync 的断点续传。
  • 数据异地化:重要数据务必传到本地或其他的云存储,不要只存在VPS里。

希望这几个方法能帮到那些手里拿着“毛坯房”VPS的朋友们。你们平时都是怎么备份数据的?有没有什么独门秘籍?欢迎在评论区交流!

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭