前言
由于前段时间在做一个自动化部署开发环境的项目需要重复安装多种服务以及中间件,但是公司的服务器不像自己的虚拟机可以使用快照,如果直接操作会导致每次测试完就要重装系统,这肯定行不通,于是开始想办法做系统快照备份。
工具对比
tar:
保留权限
适合备份整个目录
可以选择不同的压缩方式
如果选择不压缩还能实现增量备份,部份还原,参考man tar
dd:
对块进行操作,能备份整个硬盘,包括分区表以及其他Linux不能很好支持的文件系统
可以进行压缩
经过大量测试发现tar最适合我现在的测试场景
以下测试基于Rocky Linux系统 使用tar进行备份恢复操作
系统快照备份
创建备份
# 创建备份目录
mkdir backup/
# 全量系统备份实例
tar -g snapshot -cvpzf
/backup/full_backup.tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/mnt \
--exclude=/sys \
--exclude=/media \
--exclude=/backup \
/
# 增量系统备份实例(改下备份文件名即可)
tar -g snapshot -cvpzf
/backup/diff_backup.tar.gz \
--exclude=/proc \
--exclude=/lost+found \
--exclude=/mnt \
--exclude=/sys \
--exclude=/media \
--exclude=/backup \
/
# 注释
--exclude:忽略备份的目录复制
系统快照恢复
本机系统备份恢复
# 全量备份恢复
tar -g snapshot -zxvpf backup/full_backup.tar.gz -C etc home run usr var root
# 增量备份恢复
tar -g snapshot -zxvpf backup/diff_backup.tar.gz -C etc home run usr var root
# 恢复SELinux文件属性
restorecon -Rv etc home run usr var root
# 保险起见在执行一下
restorecon -Rv
# 重启电脑
reboot复制
本机系统备份恢复至其他机器
# 全量备份恢复
tar -g snapshot -zxvpf backup/full_backup.tar.gz -C etc home run usr var root
# 增量备份恢复
tar -g snapshot -zxvpf backup/diff_backup.tar.gz -C etc home run usr var root
# 恢复SELinux文件属性
restorecon -Rv etc home run usr var root
# 保险起见在执行一下
restorecon -Rv
# 查看/boot 挂载位置
df -h
# 本次测试挂载位置
/dev/sda2 1014M 188M 827M 19% boot
# 查看/dev/sda2 的 uuid
blkid
# 本次测试 UUID="11e22d15-8d1f-4f12-ae62-7c2048e190f9"
/dev/sda2: UUID="11e22d15-8d1f-4f12-ae62-7c2048e190f9" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="c21f8a20-b8d8-528d-acab-a2ba9a76115d"
# 修改 /etc/fstab 文件中UUID值修改为上面查到的UUID 可使用vim等编辑工具或者使用sed替换
sed -i "s/old UUID/new UUID/g" /etc/fstab
# 注:仔细观察fstab其他挂载目录是否正确 如不正确修改为本机实际挂载位置
# 如果系统装有mysql,删除以下文件,默认如下
mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.back
# 重启电脑
reboot复制
使用脚本进行备份恢复
备份系统or普通文件目录
# 备份系统
# 快照及备份文件存储到/data/test/
system_snapshot.sh backup /data/test/snapshot /data/test/systembackup / /proc /lost+found /mnt /sys /media /data
# 备份普通目录或文件
# 实例:备份/data/整个目录 快照及备份文件存储到/backup/
system_snapshot.sh backup /backup/snapshot /backup/data-bak /data /backup/复制执行格式:
system_snapshot.sh backup 快照绝对路径 备份文件绝对路径 备份目录 需要过滤的目录(多个目录空格隔开)
执行实例:
恢复系统or普通文件目录
# 恢复系统备份快照 /data/test/systembackup_20221230-175555.tar.gz
system_snapshot.sh restore /data/test/snapshot /data/test/systembackup_20221230-175555.tar.gz / etc home run usr var root
# 恢复/data/目录备份快照/backup/data-bak_20221230-175720.tar.gz
system_snapshot.sh restore /backup/snapshot /backup/data-bak_20221230-175720.tar.gz /复制执行格式:
system_snapshot.sh restore 快照绝对路径 备份文件绝对路径 恢复目录 需要恢复的文件或目录
执行实例:
设置定时备份系统
# 每天凌晨1点备份/data目录 忽略备份full_backup.tar.gz文件
00 01 * * * system_snapshot.sh backup /backup/snapshot /backup/data-bak /data /backup/ >> /bak/crontab.log 2>&1复制脚本可实现自动增量备份系统或普通文件目录
结语
以上就是本人测试linux本机系统一键备份恢复、linux本机系统备份不同机器恢复、增量备份恢复 的全过程。
如有操作或者其他问题欢迎去我的博客(www.loganjin.cn)留言或者微信公众号(Python技术交流圈)留言交流哦。
文章转载自Python技术交流圈,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
首个系统级MCP上线!多步骤工作AI一键完成,开启全新智能交互方式
统信软件
82次阅读
2025-05-06 10:19:37
10分钟搞定达梦数据库灾备!Linux神器rsync高阶玩法全解析
国产数据库学堂
58次阅读
2025-05-03 00:01:00
ES集群备份恢复
IT那活儿
48次阅读
2025-04-21 10:35:04
【故障案例分享】Linux服务器报错mount/recovery failed error -117无法进入操作系统的解决方案
小周的数据库进阶之路
43次阅读
2025-04-18 17:28:42
分离是为了更好的团聚:华为数据湖存储的最新进展
数据库应用创新实验室
41次阅读
2025-04-21 10:13:00
Flink 源码编译
伦少的博客
40次阅读
2025-04-25 10:10:08
[译]使用免费的 Leapp Lab 升级 Oracle Linux
秦朝阳
33次阅读
2025-04-25 11:51:27
PostgreSQL 17 中的增量备份
王语嫣
30次阅读
2025-04-28 10:40:44
上下五千年最齐全、最完整、最牛的sqlserver在linux环境上安装实操
青年数据库学习互助会
26次阅读
2025-04-24 09:53:06
[译]在 Oracle Linux 8 上构建 KVM 自检静态二进制文件
王语嫣
22次阅读
2025-04-30 11:21:20
热门文章
歌华链路由器GHL 使用 Docker 编译 OpenWrt Lede 固件 最详细教程
2022-08-14 9197浏览
解决Docker容器内安装chrome浏览器无法正常启动bug
2021-12-09 3231浏览
docker一键私有部署 zerotier 构建私有plant moon 突破50台设备限制 内外穿透 异地组网
2022-10-24 2620浏览
Mac系统 RESP(原RDM)Redis客户端最新版安装闪退无法打开解决方案
2022-10-25 2073浏览
解决Docker容器内安装chrome浏览器无法启动bug
2021-12-08 1867浏览
最新文章
python开发基于ChatGPT智能机器人,欢迎大家来问ChatGPT各种奇葩问题,哈哈哈
2023-02-16 182浏览
Mac系统 RESP(原RDM)Redis客户端最新版安装闪退无法打开解决方案
2022-10-25 2073浏览
docker一键私有部署 zerotier 构建私有plant moon 突破50台设备限制 内外穿透 异地组网
2022-10-24 2620浏览
歌华链路由器GHL 使用 Docker 编译 OpenWrt Lede 固件 最详细教程
2022-08-14 9197浏览
Docker 部署clickhouse-server及添加用户配置密码
2022-04-21 1850浏览