Linux系统备份从入门到实操:零基础也能掌握的完整方案

为什么需要Linux系统备份?

无论你是运行个人网站还是企业服务,Linux系统备份都是最后一道防线。
数据丢失、误删文件、硬盘故障、勒索攻击——任何意外都可能让业务中断。
与其事后慌乱,不如花半小时搭建一套靠谱的备份方案。
本文直接讲怎么操作,不扯理论,所有命令你可以直接复制到终端执行。

备份前需要准备什么?

开始之前,确认你的服务器满足以下条件:

  • 已安装常用工具tarrsync 多数系统默认自带。如果没有,用包管理器安装:
  • Ubuntu/Debian:sudo apt install tar rsync -y
  • CentOS/RHEL:sudo yum install tar rsync -y
  • 有足够的存储空间:建议单独挂载一块磁盘(如 /backup),不要和系统盘混在一起。可用 df -h 查看剩余空间。
  • 拥有root或sudo权限:备份系统关键目录需要高权限。

如果你使用宝塔面板,以下命令可以直接通过SSH执行,部分路径已经帮你预设好。

三种主流备份方式(附命令示例)

1. 用 tar 做全量备份

最直观的方法,将整个目录打包压缩。
例如备份 /var/www 网站数据:

sudo tar -czf /backup/www-$(date +%Y%m%d).tar.gz /var/www

这条命令会生成一个带日期的压缩包,方便按天留存。
如果要备份系统配置目录 /etc,改成对应路径即可。

2. 用 rsync 做增量备份

只复制变化的文件,适合每天定时跑。
例如将 /home 同步到备份盘:

sudo rsync -avz --delete /home/ /backup/home/

--delete 会删除备份目录中源端已不存在的文件,保持完全一致。
建议第一次先不带 --delete 运行,确认无误再加。

3. 备份 MySQL/MariaDB 数据库

使用 mysqldump 导出所有数据库:

sudo mysqldump -u root -p --all-databases > /backup/db-$(date +%Y%m%d).sql

输入密码后即可导出。
如果数据库较大,可以压缩:

sudo mysqldump -u root -p --all-databases | gzip > /backup/db-$(date +%Y%m%d).sql.gz

设置定时自动备份

手动备份不够可靠,必须用 crontab 实现自动化。
执行 crontab -e 打开任务表,加入以下示例:

# 每天凌晨3点备份网站数据和数据库
0 3 * * * tar -czf /backup/www-$(date +\%Y\%m\%d).tar.gz /var/www > /dev/null 2>&1
0 3 * * * mysqldump -u root -pYourPassword --all-databases | gzip > /backup/db-$(date +\%Y\%m\%d).sql.gz > /dev/null 2>&1

重要提醒crontab% 需要转义,否则会解析错误。
如果密码包含特殊字符,建议用配置文件保存。
或者把备份命令写成一个脚本,crontab 只调用脚本,更安全。

脚本示例(/usr/local/bin/mybackup.sh):

#!/bin/bash
# 备份网站
sudo tar -czf /backup/www-$(date +%Y%m%d).tar.gz /var/www
# 备份数据库(密码写在脚本中注意权限)
mysqldump -u root -p'YourPassword' --all-databases | gzip > /backup/db-$(date +%Y%m%d).sql.gz

然后 chmod +x /usr/local/bin/mybackup.sh,crontab 中写:

0 3 * * * /usr/local/bin/mybackup.sh

避坑指南:新手最容易犯的五个错误

  1. 备份文件存在同一块硬盘上:如果物理磁盘损坏,备份和数据一起丢失。必须存到不同的分区或远程服务器。
  2. 忘记验证备份可用性:压缩包只是文件,能不能用?至少每月解压一次看看内容是否完整。
  3. crontab 中路径写错:crontab 默认环境变量很少,命令尽量写绝对路径(如 /usr/bin/tar)。
  4. 数据库密码明文暴露:如果脚本包含密码,请设置 chmod 600 且只允许root读取。
  5. 备份频率过高吃爆磁盘:每天全量备份会迅速填满空间。建议每周一次全量 + 每日增量(rsync)。

如何验证备份是否有效?

验证不是看文件存在,而是真正还原测试。
简单方法:

  • tar包:在测试目录解压
  mkdir /tmp/testrestore && cd /tmp/testrestore
  tar -xzf /backup/www-20250320.tar.gz
  ls -la  # 检查文件结构是否正常
  • 数据库:导入到测试库
  mysql -u root -p testdb < /backup/db-20250320.sql

然后登录MySQL查看数据表是否正常。

  • rsync备份:直接对比源与备份目录的文件数量和大小:
  diff -r /home/ /backup/home/ 2>/dev/null | head -20

没有输出表示完全一致。

只有经过还原测试的备份才是可靠的。
建议至少每季度做一次完整演练。

写在最后

Linux系统备份不是一件复杂的事,只要把 tar、rsync、crontab 这三个工具用好,就能构建起自动化的备份体系。
千万不要备份完就不管了——定期检查空间、验证恢复,才能在真正出事时救你一命。
如果你刚开始接触,先按本文步骤在测试环境走一遍,再应用到生产服务器。
遇到报错先检查路径、权限和磁盘空间,大部分问题都能自己解决。

分享到:
上一篇
Linux SELinux配置从零到上手:改模式、排错与验证
下一篇
Linux数据恢复实操指南:误删文件后如何一步步找回
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意