小白建站网站备份实操,防止源码丢失
网站源码丢失最常见的原因不是黑客攻击,而是误删文件、服务器到期释放、磁盘故障和升级操作失误。
只要提前做好一份可用的备份,大多数损失都能避免。
下面按零基础也能照做的步骤,讲清用宝塔面板和命令行备份网站源码与数据库的完整流程,并给出自动备份和恢复验证方法。
备份前先确认这三件事
开始操作前,先登录服务器或宝塔面板,确认以下信息,否则备份文件可能不完整。
- 网站根目录位置:宝塔面板中进入「网站」→ 点击站点名称→「网站目录」,常见路径为
/www/wwwroot/你的域名。 - 数据库名称和账号:进入「数据库」页面,记录站点使用的数据库名、用户名和密码,备份时需要用到。
- 磁盘剩余空间:在宝塔「首页」或终端执行
df -h,确保剩余空间大于网站和数据库体积的 2 倍。
如果网站使用 WordPress、Typecho 等程序,源码通常只占几十到几百 MB,数据库可能几百 MB,备份压力不大。
用宝塔面板手动备份源码和数据库
宝塔面板自带备份功能,适合不熟悉命令行的新手。
备份网站源码:
- 登录宝塔面板,左侧点击「网站」。
- 找到目标站点,点击右侧「备份」。
- 在弹出窗口中选择「备份网站」,等待进度条完成。
- 备份文件默认存放在
/www/backup/site/目录下,文件名类似域名_20250101_120000.tar.gz。
备份数据库:
- 左侧点击「数据库」。
- 找到对应数据库,点击右侧「备份」。
- 备份文件默认存放在
/www/backup/database/目录下,格式为.sql.gz。
手动备份完成后,建议把备份文件下载到本地电脑或另一台服务器,只留在同一台服务器上不算真正的备份。
命令行备份更适合批量操作
如果站点较多或想写脚本自动执行,可以用命令行打包。
以下命令在宝塔终端或 SSH 中执行。
打包网站源码:
cd /www/wwwroot
tar -czf /www/backup/site/example.com_$(date +%Y%m%d).tar.gz example.com
把 example.com 替换为你的网站目录名。
执行后可用 ls -lh /www/backup/site/ 查看文件大小,确认不是 0 字节。
导出数据库:
mysqldump -u 数据库用户名 -p 数据库名 | gzip > /www/backup/database/example.com_$(date +%Y%m%d).sql.gz
输入密码后等待完成。
如果提示 command not found,说明 MySQL 客户端路径未加入环境变量,可改用完整路径 /www/server/mysql/bin/mysqldump。
设置自动备份,避免忘记
宝塔面板计划任务可以按天或按周自动备份,建议至少保留最近 7 份。
操作路径:宝塔面板→「计划任务」→「添加任务」。
- 任务类型选择「备份网站」或「备份数据库」。
- 执行周期建议选「每天」凌晨 3 点左右,避开访问高峰。
- 保留份数根据磁盘空间设置,一般 7 到 15 份。
如果希望备份到远程存储,可以在计划任务中启用「备份到阿里云 OSS」「腾讯云 COS」等选项,按面板实际支持情况配置。
远程备份能防止服务器整机故障导致备份一起丢失。
容易踩坑的几个地方
- 只备份源码不备份数据库:网站文章、用户数据都在数据库里,缺一不可。
- 备份文件放在网站根目录:攻击者可能直接下载,应放在
/www/backup/等非 Web 目录。 - 备份后从不验证:损坏的备份等于没有备份,建议每月抽查一次恢复流程。
- 自动备份任务失败无提醒:在计划任务中开启邮件或钉钉通知,或定期手动检查备份文件时间戳。
- 磁盘满了导致备份中断:
df -h查看使用率,超过 85% 时先清理旧备份。
验证备份是否真的能用
备份完成后,至少做一次恢复测试,确认文件完整。
验证源码包:
tar -tzf /www/backup/site/example.com_20250101.tar.gz | head
能列出文件列表说明压缩包未损坏。
验证数据库备份:
zcat /www/backup/database/example.com_20250101.sql.gz | head -20
能看到 CREATE TABLE 或 INSERT INTO 语句说明导出正常。
恢复时,把源码解压到网站目录,数据库用 mysql -u 用户名 -p 数据库名 < 备份文件.sql 导入,然后访问网站首页和后台,确认页面、图片、登录都正常。
常见疑问
备份文件应该保存多久?
建议至少保留最近 7 天和每月 1 份归档。
具体时长根据磁盘空间和业务重要程度调整,没有统一标准。
宝塔面板备份和命令行备份哪个更好?
新手用面板更直观,站点多或需要定制脚本时用命令行更灵活。
两者可以结合使用,面板做日常自动备份,命令行做迁移前的手动全量备份。
网站太大,备份很慢怎么办?
可以先排除缓存目录、日志文件和 node_modules 等非必要内容,只打包核心源码和上传目录,数据库单独导出。
备份到同一台服务器有用吗?
有用,但只能应对误删和程序升级回滚。
服务器整机故障或到期释放时,同机备份会一起丢失,所以至少保留一份异地或对象存储备份。
做好网站备份不是一次性任务,而是建站后要长期保持的习惯。
先把手动备份跑通,再配置自动任务,最后定期验证恢复,源码丢失的风险就能降到很低。