家用住宅主机Linux服务器备份一键脚本实战教程

很多新手朋友在家里用旧电脑跑Linux服务器,存了重要文件、照片、甚至网站数据。
一旦硬盘坏了或者手误删了文件,恢复起来很痛苦。
其实用家用住宅主机Linux服务器备份一键脚本就能自动化完成数据保护。
本文从零开始,教你写一个简单的备份脚本,并设置每天自动运行。

理解一键备份脚本的核心

一键脚本的本质是将备份命令封装到一个文件中,运行它就能完成所有操作。
常用工具有rsync(增量同步)和tar(打包压缩)。
家用环境建议先用tar打包再复制到外部硬盘或NAS,简单可靠。

准备备份环境

开始之前,确保以下条件满足:

  • 一台装了Linux的服务器(本文以Ubuntu 22.04为例,其他发行版通用)。
  • 连接好外部硬盘,并挂载到一个固定目录,例如/mnt/backup
  • 拥有sudo权限的用户账号。
  • 明确要备份的目录,比如/home/var/www,以及数据库(如有)。

挂载外部硬盘的示例命令:

sudo mount /dev/sdb1 /mnt/backup

编写一键备份脚本

创建脚本文件backup.sh

nano ~/backup.sh

粘贴以下内容(根据实际路径微调):

#!/bin/bash
# 家用住宅主机Linux服务器备份一键脚本
# 备份源目录列表
SOURCE_DIRS="/home /var/www /etc"
# 备份目标路径(自动添加主机名和时间戳)
DEST="/mnt/backup/`hostname`_backup_$(date +%Y%m%d_%H%M)"
# 创建目标文件夹
mkdir -p "$DEST"
# 逐目录打包压缩
for dir in $SOURCE_DIRS; do
    tar -czf "$DEST/$(echo $dir | tr '/' '_' | cut -c2-).tar.gz" "$dir" 2>/dev/null
    if [ $? -eq 0 ]; then
        echo "已备份 $dir"
    else
        echo "备份 $dir 时出错,请检查权限"
    fi
done
# 如果有数据库,也可在此加入 mysqldump 命令
# mysqldump -u root --all-databases > /tmp/all_db.sql 2>/dev/null
# cp /tmp/all_db.sql "$DEST/"
echo "备份完成,文件保存在 $DEST"

保存并退出(Ctrl+O → Enter → Ctrl+X)。
赋予执行权限:

chmod +x ~/backup.sh

运行脚本并验证效果

直接执行:

cd ~ && ./backup.sh

看到“备份完成”即成功。
检查目标目录:

ls -lh /mnt/backup/

进入生成的文件夹,用以下命令测试一个压缩包是否完整:

tar -tzf /mnt/backup/你的主机名_时间/home.tar.gz | head -5

如果列出文件列表,说明备份可用。

设置自动定时备份

利用crontab让脚本每天凌晨3点运行:

crontab -e

选择nano(第一次会提示),在文件末尾添加一行:

0 3 * * * /home/你的用户名/backup.sh

保存退出。
查看定时任务:

crontab -l

避坑说明

  • 路径写错:脚本中用$SOURCE_DIRS变量,但tar命令直接用了绝对路径,不要混淆。
  • 磁盘空间不足:备份前执行df -h确认目标盘有足够空间。
  • 权限问题:如果备份/etc等系统目录,普通用户可能报错。可以用sudo ./backup.sh运行,或改用su -c
  • 数据库备份:若启用mysqldump,需提前创建~/.my.cnf写入密码,避免交互。
  • 增量需求:如果文件变化频繁,建议改用rsync脚本,本文的tar方式每次全量打包。

高频问题解答

Q1:备份脚本里的目录怎么改成我自己的?
打开backup.sh,修改SOURCE_DIRS变量中的路径,用空格分隔。

Q2:不想压缩,直接复制文件可以吗?
可以,将tar -czf换成cp -a,注意目标路径保持一致。

Q3:怎么备份到远程服务器?
使用rsync,先将目标改为user@ip:/remote/path,并配置SSH免密登录。

Q4:如何记录备份日志?
crontab中将输出重定向:0 3 * * * /home/用户名/backup.sh >> /var/log/backup.log 2>&1

总结

本文手把手教你为家用住宅主机Linux服务器备份一键脚本编写、测试并设置定时任务。
只要照着做,你的家庭服务器数据就能每天自动备份到外部硬盘,再也不怕意外丢失。
建议每季度手动恢复一次备份,确认文件完整性。
如果你需要更高级的增量备份方案,可以搜索“rsync 增量备份教程”继续学习。

分享到:
上一篇
外贸站宝塔面板伪静态失效页面404修复方案
下一篇
跨境独立站宝塔面板多PHP版本切换兼容程序
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意