Ubuntu系统备份、恢复到另一台服务器

本文详细介绍了如何在Ubuntu系统中进行服务器备份,并将备份数据恢复到另一台服务器,包括使用root权限,挂载移动硬盘,打包系统文件,解压到目标服务器,以及替换关键配置文件,最终成功启动恢复的系统并进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu系统备份、恢复到另一台服务器

 前言:为了保证服务器数据安全,将服务器系统备份打包到移动硬盘上,为了保证备份的系统数据可用,因此尝试恢复到另一台服务器上,
 然后启动测试确认备份的数据可用性和完整性。

一、准备工作

要进行系统备份的服务器:A
准备的恢复备份系统服务器:B
用来存储备份系统的移动硬盘:C

目的将从A服务器的ubuntu系统进行完全备份,恢复至B服务器,并确保还原的系统能正常在B服务器上运行。

二、打包备份系统

将A服务器的ubuntu系统打包备份

1. 挂在移动存储设备C到A服务器
进入A服务器根目录并切换到root账号

cd /
su

将准备用来做备份使用的移动硬盘C插到A服务器的USB接口上,挂载到服务器上,查看移动硬盘位置路径

新建移动硬盘挂在文件isobackup
mkdir  data
查看系统识别的设备列表,找到挂在的移动硬盘C 例如:/dev/sdb
lsblk
使用mount命令挂载移动硬盘C到isobackup
mount /dev/sdb /isodata
查看移动硬盘挂载情况
df

如果移动硬盘自动挂载到了media,则不用以上操作,确认挂载的移动硬盘的路径即可,例如:/media/admina/C14D581BDA18EBFA

2. 备份A服务器系统数据
备份A服务器系统数据命令如下:

tar -cvpzf /iosbackup/A-name@`date +%Y-%m+%d`.tar.gz --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/lost+found 
-exclude=/media --exclude=/mnt --exclude=/run --exclude=/isobackup  /

等待备份完成,备份完成后会提示“由于前次错误,将以上次错误状态退出”,可忽略
然后移除挂载的移动硬盘C作为备用

umount /isobackup

在B服务器上还原备份的A服务器系统数据

  1. 给B服务器安装与A服务器相同版本的ubuntu系统。
  2. 登陆B服务器,挂载移动硬盘C到创建的目录
切换到root账户
su
创建移动硬盘挂载路径backup
mkidr backup
查看挂载的移动硬盘信息,并挂载
mount /dev/sdb /backup
  1. 备份B服务器Ubuntu系统中/etc目录中的fstab文件和/boot/grub目录下的grub.cfg文件备份到移动硬盘C上留用。
在移动硬盘C里创建文件夹“11”用于存放要备份的fstab和grub.cfg文件
cd /backup
mkdir 11
复制B服务器的fstab文件到“11”文件夹
cp -pdr /etc/fstab /backup/11/
复制B服务器的grub.cfg文件到“11”文件夹,我这里直接备份整个grub文件夹
cp -pdr /boot/grub /backup/11/
  1. 将移动硬盘中备份的A服务器的系统解压到B服务器中
切换到根目录
cd /
解压备份的A服务器系统
tar xvpfz  /A-name@`date +%Y-%m+%d`.tar.gz  -C /
  1. 等待解压完成后,将刚备份的fstab文件和grub.cfg文件替换现有的B服务器的的对应文件
操作步骤:
#cp -pdr /backup/11/fstab  /etc/
#cp -pdr /backup/11/grub/grub.cfg  /boot/grub/
为了确认是否替换成功,可以先查看B服务器现有的fstab和grub.cfg文件,进行替换前后对比。
#cat /etc/fstab
#cat /boot/grub/grub.cfg
  1. 完成替换之后,重启B服务器测试
    #rebooot
    我这边测试发现,重启之后,恢复到B服务器的备份的A服务器系统和应用都能够整成运行。
### 如何在开发板 Ubuntu 系统上执行系统备份 #### 使用 `rsync` 进行增量备份 对于开发板上的 Ubuntu 系统,可以利用 `rsync` 工具来进行高效且灵活的备份操作。此工具支持增量备份,仅传输更改过的部分数据,从而节省时间和带宽。 ```bash sudo rsync -avz --exclude='/proc/*' --exclude='/sys/*' --exclude='/dev/*' \ --exclude='/tmp/*' --exclude='/run/*' / root@backup-server:/path/to/backup/ ``` 上述命令会将根文件系统的大部分内容复制到远程服务器 `/path/to/backup/` 中,排除了一些动态挂载点和临时文件夹[^1]。 #### 利用 `tar` 创建完整的存档文件 另一种常见的做法是通过 `tar` 命令来打包整个文件系统成一个 `.tar.gz` 文件。这种方法适合于一次性全量备份,并便于存储或迁移至其他设备。 ```bash sudo tar czpf /mnt/external_drive/rootfs_backup_$(date +%F).tar.gz --one-file-system / ``` 这条指令会在外部驱动器指定路径下生成当天日期命名的压缩包,其中包含了除挂载点之外的所有文件[^2]。 #### 配置 NFS 或 SSHFS 实现网络共享备份 为了方便管理和访问备份资料,在宿主机(Ubuntu 主机) 上设置NFS (Network File System) 或者SSHFS (Secure Shell FileSystem),使得可以从局域网内的任意一台计算机轻松读取写入这些备份文件。 确保已经安装并配置好相应的服务端组件如 `nfs-kernel-server` 和客户端模块像 `nfs-common` 或者 `sshfs-fuse`[^3]。 #### 安装必要的编译工具链 如果打算自行构建某些特定版本的应用程序,则需要先确认目标平台上是否存在合适的交叉编译环境;如果没有的话可以通过APT源获取所需的工具链: ```bash sudo apt update && sudo apt install gcc-arm-linux-gnueabihf ``` 这一步骤能解决可能出现的找不到 `arm-linux-gnueabihf-gcc` 编译器的问题[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值