新手也能搭:Linux服务器系统备份策略完整教程

为什么你需要一套系统备份策略

服务器数据一旦丢失,恢复成本极高。Linux服务器系统备份策略 就是通过全量、增量或差异备份,把系统文件、数据库和配置定期复制到安全位置。
对于新手来说,最怕操作复杂或备份失败而不自知。
本文会从零开始,讲清楚每一步命令和要点。

开始前需要准备什么

  • 一台 Linux 服务器(本教程以 Ubuntu 20.04 为例,其他发行版命令类似)
  • 备份目标目录(本地磁盘或远程 NFS 挂载,路径如 /backup
  • root 权限或 sudo 权限
  • 已安装 rsynccron(一般系统自带,没有则用 apt install rsync 安装)

重点: 备份目标磁盘容量要大于待备份数据总量的1.5倍,否则增量备份也会撑爆。

动手配置第一个备份脚本

1. 创建全量备份脚本

使用 tar 打包系统关键目录(排除 /proc, /sys, /dev, /run 等虚拟目录):

sudo mkdir -p /backup/full
sudo vim /usr/local/bin/full_backup.sh

写入以下内容:

#!/bin/bash
DATE=$(date +%Y%m%d)
tar --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
    --exclude=/mnt --exclude=/media --exclude=/lost+found \
    -czf /backup/full/full_backup_$DATE.tar.gz /

赋予执行权限:

sudo chmod +x /usr/local/bin/full_backup.sh

2. 创建增量备份脚本

这里用 rsync 实现基于快照的增量备份(硬链接方式),节省空间和传输时间:

sudo mkdir -p /backup/incremental/current
sudo vim /usr/local/bin/incremental_backup.sh

写入:

#!/bin/bash
DATE=$(date +%Y%m%d_%H%M)
BACKUP_DIR=/backup/incremental
rsync -av --delete --link-dest=$BACKUP_DIR/current \
    / $BACKUP_DIR/$DATE
rm -f $BACKUP_DIR/current
ln -s $BACKUP_DIR/$DATE $BACKUP_DIR/current

同样赋予执行权限:

sudo chmod +x /usr/local/bin/incremental_backup.sh
解释: --link-dest 让 rsync 对没有变化的文件创建硬链接(不占用额外空间),只有变化部分才复制。冷知识:每次运行后软链接 current 会指向最新备份目录。

3. 设置定时任务(cron)

编辑 crontab:

sudo crontab -e

建议每周一次全量备份,每天一次增量备份:

# 每周日 02:00 执行全量备份
0 2 * * 7 /usr/local/bin/full_backup.sh

# 每天 03:00 执行增量备份(周日除外)
0 3 * * 0-6 /usr/local/bin/incremental_backup.sh

保存后,cron 会自动生效。

备份过程中的常见坑

  • 磁盘空间不足: 全量备份一次可能十几 GB,建议备份完成后用 du -sh /backup 查看用量,并设置磁盘告警。
  • 权限错误: rsync 默认保留权限,但访问 /proc 等虚拟目录会报错。使用 --exclude 排除后加 2>/dev/null 或重定向错误日志。
  • 增量备份硬链接断开: 如果手动删除 current 软链接,后续备份会重新全量复制。务必保留该软链接。
  • 忘记测试恢复: 备份后不验证等于白做。每月至少从备份中恢复一个文件测试。

如何确认备份是有效的

验证全量备份包完整性

tar -tzf /backup/full/full_backup_20250101.tar.gz | head -20

如果输出文件列表,没有错误,说明包未损坏。

验证增量备份一致性

随机抽取一个文件,检查是否可读:

ls -la /backup/incremental/20250101_0300/etc/hosts

对比原始文件:

sudo diff /etc/hosts /backup/incremental/20250101_0300/etc/hosts

无输出表示完全一致。

高频问题解答

Q:备份占用太多空间,怎么办?
A:调高全量备份间隔(如每两周一次),并设置保留最近N份备份的脚本自动删除过期文件。

Q:备份到远程服务器呢?
A:rsync 支持远程路径,将增量脚本中的目标路径改为 user@remote:/backup,并配置 SSH 免密登录。

Q:我的网站是宝塔面板,有差别吗?
A:宝塔自带计划任务,可调用上述脚本。主要差别是目录:你的网站数据通常在 /www/wwwroot,数据库在 /www/server/data 或使用宝塔插件备份。可以单独备份这些目录。

总结

一套基础的 Linux服务器系统备份策略 并不复杂:先做全量快照,再用 rsync 增量跟进,配上 cron 自动执行,最后定期验证。
从这篇教程动手,你就能避免“数据丢了才后悔”的情况。
遇到异常时,优先回看避坑部分和常见问题。

分享到:
上一篇
WP网站伪静态错误排查:新手也能解决的5个步骤
下一篇
Docker部署Yarn一次搞定:新手也能按步骤完成
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意