Ubuntu Server 20.04 系统安装(九):ubuntu server系统备份及恢复

背景

最近想把自己的服务器系统迁移到另一台笔记本上。

A机器上系统备份

cd /
su root
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /
tar -cvpzf /data/backup.tar.gz --exclude=/data --exclude=/proc --exclude=/sys --exclude=/mnt --exclude=/lost+found --exclude=/home/wyr/anaconda3/envs --one-file-system /

/etc:这个目录用来存放所有的系统管理所需要的配置文件和子目录。此目录非常重要,绝大多数系统和相关服务的配置文件都保存在这里,这个目录的内容一般只能由管理员进行修改。像密码文件、设置网卡信息、环境变量的设置等都在此目录中。

/home:此目录是所有普通用户的宿主目录所在地,在一般情况下,如果想要对用户进行磁盘限额功能,最好将此目录单独分区。

/bin :此目录中放置了所有用户能够执行的命令。

/sbin:此目录中放置了一般是只有系统管理有才能执行的命令。

/dev:此目录中保存了所有设备文件,例如,使用的分区:/dev/hda\1,/dev/cdrom 等。

/mnt:此目录主要是作为挂载点使用。

/usr:此目录包含了所有的命令、说明文件、程序库等,此目录下有很多重要的目录:
/usr/bin 存放着许多应用程序;
/usr/sbin 给超级用户使用的一些管理程序就放在这;
/usr/include LINUX下开发和编译应用程序需要的头文件,在这找;
/usr/lib 存放一些常用的动态链接共享库和静态档案库;
/usr/local 这个目录包含管理员自己安装的程序这是提供给一般用户的/usr目录,在这安装软件最适合;
/usr/share 包含文件的帮助文件;
/usr/src LINUX开放的源代码,就存在这个目录;

/var:包含了日志文件、计划性任务和邮件等内容。

/lib:这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的.dll文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:包含了系统修复时的回复文件。这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所。

/tmp:包含了临时的文件。

/boot:系统的内核所在地,也是启动分区。

/media:主要用于挂载多媒体设备。

/root:系统管理员的宿主目录。

/opt:给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下

/proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。它放置的数据都是在内存当中,例如系统内核,进程等

/sys这个目录跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与内核相关的信息。这个目录同样不占硬盘容量

/run 最常用的就是存放进程的ID。要特别注意的是:它使用tmpfs文件系统,这是一种存储在内存中的临时文件系统,当机器关闭的时候,文件系统会被清空

/srvsrv是service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录。常见的服务有WWW, FTP等。比如WWW服务需要的网页数据就可以放在/srv/www/目录下

补充
/proc目录下的一些信息很有用,这里再补充下
/proc目录下有许多以数字命名的目录,这些目录对应的是相应进程号的进程的虚拟映像,里面保存着这个进程相关的一些信息,先cd /proc/$processid/,下面又有许多文件和目录,这里列举几个感觉比较有趣的
cmdline 这个文件记录了启动进程时的命令行
exe 这个是一个软链接,指向具体的进程文件
fd 这个目录下保存了打开的句柄,一般来说是指向打开文件的软链接
maps 查看进程虚拟空间使用情况,加载库的位置等等
sched 包含调度相关的信息,有个字段为nr_switches 代表主动切换和被动切换的累计次数,若长时间此计数无增长,可确定挂住是死循环问题
stack 这里可以看内核调用栈的信息
 

A机器上拷贝备份文件到外置硬盘

# 查看外置硬盘盘符
sudo fdisk -l
# 安装exfat文件系统
sudo apt-get update
sudo apt-get install exfat-utils fuse-exfat
# 挂在外置硬盘
sudo mount /dev/sdb2 /home/fangqi/xiaomi
# 拷贝文件到外置硬盘
sudo cp /backup.tgz /home/fangqi/xiaomi

从外置硬盘拷贝备份文件到B机器

# 查看外置硬盘盘符
sudo fdisk -l
# 安装exfat文件系统
sudo apt-get update
sudo apt-get install exfat-utils fuse-exfat
# 挂在外置硬盘
sudo mount /dev/sdb2 /home/fangqi/xiaomi
# 拷贝文件到/目录
sudo cp /home/fangqi/xiaomi/backup.tgz /

记录B机器上原始的UUID

# 查看原系统uuid
vi /etc/fstab

将文件中的信息记录下来以备后来使用,主要是/、/boot分区的挂载位置。

B机器上恢复系统

cd /
su root
tar xvpfz backup.tgz -C /

B机器修复UUID

sudo vi /etc/fstab
# 按照B机器上的原始内容匹配具体分区的uuid值,修改并保存。

B机器修复GRUB

查看硬盘分区

ls

查找/分区的位置

ls (hd0,gpt2)

如果正常显示了该分区的目录,看到有/或者/boot分区,这就是我们要找的。

临时设置grub启动系统

set root=(hd0,gpt2)
set prefix=(hd0,gpt2)/grub
insmod normal
normal

重新安装grub

sudo update-grub2  
sudo grub-install /dev/sda

/dev/sda 后面不要加分区号,例如 sda1,sda2 之类的。


 




# 排除目录
# 排除目录后不接“/”,排除目录成功。
[root@osker /]# tar -czvf ces.tar.gz /test --exclude=/test/t1
tar: Removing leading `/' from member names
/test/
/test/t2/
/test/t2/file1.txt
/test/t2/file2.txt
/test/t2/file3.txt
/test/t3/
/test/t3/file1.txt
/test/t3/file2.txt
/test/t3/file3.txt
 
 
# 排除目录后接“/”,排除目录失败。
[root@osker /]# tar -czvf ces.tar.gz /test --exclude=/test/t1/

总结:
1、tar命令下的--exclude后面可以跟”=“或者空格,效果一样。
2、tar命令下的--exclude后面跟文件名,会排除所有和此名相同的文件。
3、tar命令下的--exclude后面跟排除文件的路径为绝对路径的时候,打包路径也必须为绝对路径。
4、tar命令下的--exclude后面跟排除文件的路径为相对路径的时候,打包路径为相对或者绝对路径都可以。
5、tar命令下的--exclude-from后面排除文件里的路径为绝对路径的时候,打包路径也必须为绝对路径。
6、tar命令下的--exclude-from后面排除文件里的路径为相对路径的时候,打包路径为相对或者绝对路径都可以。
7、排除目录时候,排除的目录后面不能接“/”。



ubuntu server系统备份及恢复 - 简书

Ubuntu Server服务器备份与还原备份命令分享 - 番茄系统家园

tar命令下的--exclude_WinJayX的博客-CSDN博客

ubuntu常用目录解读_ubuntu /sys /run 目录_香蕉割草机的博客-CSDN博客 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值