一、备份的核心概念与类型
1. 按备份内容划分
- 文件 / 目录备份:针对特定文件或目录(如
/home用户数据、/etc配置文件),最常用,灵活性高。 - 分区备份:对整个磁盘分区(如
/dev/sda1)创建镜像,包含分区内所有数据和文件系统结构。
Linux 备份与还原涉及文件目录、分区及数据库的备份策略。常用工具包括 tar 进行归档压缩,rsync 实现增量同步,dd 用于底层磁盘镜像克隆,以及 mysqldump 处理数据库一致性备份。通过 crontab 可实现定时自动化任务,确保数据安全与快速恢复。操作时需关注权限保留、目标路径指定及断点续传等关键细节。

/home用户数据、/etc配置文件),最常用,灵活性高。/dev/sda1)创建镜像,包含分区内所有数据和文件系统结构。/dev/sda)备份,包含分区表、所有分区及数据,适合系统迁移或全盘恢复。mysqldump)确保数据一致性。tar 是 Linux 默认的归档工具,可打包目录并压缩(结合gzip/bzip2),支持全量备份,适合文件级备份。
备份命令格式:
tar [选项] 备份文件名.tar.gz 目标路径
常用选项:
-c:创建备份。-v:显示过程(verbose)。-f:指定备份文件。-z:用 gzip 压缩(生成.tar.gz)。-j:用 bzip2 压缩(生成.tar.bz2,压缩率更高但较慢)。-p:保留文件权限(重要,确保还原后权限不变)。示例 1:全量备份/home目录和/etc配置文件
# 备份/home 和/etc 到/backup 目录,文件名含日期(便于区分版本)
tar -czvpf /backup/home_etc_$(date +%Y%m%d).tar.gz /home /etc
$(date +%Y%m%d):自动添加当前日期(如20250816)。-p:保留文件原有权限(如sudoers的特殊权限)。还原示例(从 tar 备份恢复):
# 查看备份内容(无需解压)
tar -tzvf /backup/home_etc_20250816.tar.gz
# 还原到原路径(注意:会覆盖现有文件,需谨慎)
tar -xzvpf /backup/home_etc_20250816.tar.gz -C /
# -C /:指定解压到根目录,确保文件回到原路径(如/etc/hosts 还原到/etc)
rsync 是用于文件同步的工具,通过'增量传输'(只传输变化的部分)实现高效备份,支持本地备份和远程备份(通过 SSH),适合定期增量备份。
核心特点:
常用命令格式:
rsync [选项] 源路径 目标路径
关键选项:
-a:归档模式(递归 + 保留权限 / 时间戳等,推荐必加)。-v:显示过程。-z:传输时压缩(适合远程备份,节省带宽)。-P:断点续传(大文件传输中断后可继续)。--delete:删除目标中源不存在的文件(确保完全同步)。示例 2:本地增量备份/home到外部硬盘/mnt/backup_disk
# 首次备份(全量),后续执行相同命令即为增量备份
rsync -avP /home /mnt/backup_disk/
示例 3:远程增量备份到另一台服务器(通过 SSH)
# 备份本地/home 到远程服务器(192.168.1.100)的/backup 目录
rsync -avzP /home [email protected]:/backup/
# 需输入远程服务器 root 密码,或配置 SSH 免密登录(更适合定时任务)
还原示例(从 rsync 备份恢复):
# 从本地备份目录还原到/home
rsync -avP /mnt/backup_disk/home/ /home/
# 从远程服务器还原到本地
rsync -avzP [email protected]:/backup/home/ /home/
dd 是底层数据复制工具,可对分区(如/dev/sda1)或整个磁盘(如/dev/sda)创建'字节级'镜像,包含文件系统、分区表等所有数据,适合系统崩溃后的完整还原。
特点:
示例 4:备份分区/dev/sda1到镜像文件
# 创建 sda1 分区的镜像(可压缩节省空间)
dd if=/dev/sda1 of=/backup/sda1_image_$(date +%Y%m%d).img bs=4M status=progress
# if=输入文件(源分区),of=输出文件(镜像路径),bs=块大小(4M 效率较高),status=progress 显示进度
示例 5:备份整个磁盘/dev/sda(含分区表)
dd if=/dev/sda of=/backup/full_disk_image.img bs=4M status=progress
还原示例(从 dd 镜像恢复分区 / 磁盘):
# 还原分区镜像到 sda1(需确保 sda1 未挂载,否则数据混乱)
dd if=/backup/sda1_image_20250816.img of=/dev/sda1 bs=4M status=progress
# 还原整盘镜像到新磁盘(如替换故障硬盘后)
dd if=/backup/full_disk_image.img of=/dev/sdb bs=4M status=progress
数据库需保证'一致性备份'(避免备份时数据写入导致的混乱),常用mysqldump工具:
备份示例:
# 备份所有数据库(含结构和数据),并压缩
mysqldump -u root -p --all-databases | gzip > /backup/mysql_all_$(date +%Y%m%d).sql.gz
# 输入 root 密码后执行
还原示例:
# 先解压,再导入
gunzip < /backup/mysql_all_20250816.sql.gz | mysql -u root -p
通过crontab设置定时任务,实现自动备份(如每天凌晨 3 点执行增量备份)。
示例:每天凌晨 3 点用 rsync 备份/home到远程服务器
>> /var/log/backup_home.log 2>&1:将备份日志写入文件,方便排查错误。配置crontab定时任务:
crontab -e # 编辑当前用户的定时任务
# 添加一行(每天凌晨 3 点执行)
0 3 * * * /usr/local/bin/backup_home.sh >> /var/log/backup_home.log 2>&1
给脚本添加执行权限:
chmod +x /usr/local/bin/backup_home.sh
创建备份脚本/usr/local/bin/backup_home.sh:
#!/bin/bash
# 远程服务器信息
REMOTE_USER="root"
REMOTE_IP="192.168.1.100"
REMOTE_DIR="/backup/home"
# 执行 rsync 增量备份
rsync -avzP /home ${REMOTE_USER}@${REMOTE_IP}:${REMOTE_DIR}/

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online