linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复

摘要:
XFS提供xfsdump和xfsrestore工具来帮助备份XFS文件系统中的数据。Xfsdump按inode顺序备份XFS文件系统。备份正在使用的XFS文件系统可以确保图像的一致性。

XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。
centos7选择xfs格式作为默认文件系统,而且不再使用以前的ext,仍然支持ext4,xfs专为大数据产生,每个单个文件系统最大可以支持8eb,单个文件可以支持16tb,不仅数据量大,而且扩展性高。还可以通过xfsdump,xfsrestore来备份和恢复。
与传统的UNIX文件系统不同,XFS不需要在备份前被卸载;对使用中的XFS文件系统做备份就可以保证镜像的一致性。XFS的备份和恢复的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地
首先了解一下xfsdump的备份级别有以下两种,默认为0(即完全备份)
0 级别代表: 完全备份
1 到9级别代表: 增量备份

使用 xfsdump 时,请注意下面下面的几个限制:
1、xfsdump 不支持没有挂载的文件系统备份!所以只能备份已挂载的!
2、xfsdump 必须使用 root 的权限才能操作 (涉及文件系统的关系)
3、xfsdump 只能备份 XFS 文件系统
4、xfsdump 备份下来的数据 (档案或储存媒体) 只能让 xfsrestore 解析
5、xfsdump 是透过文件系统的 UUID 来分辨各个备份档的,因此不能备份两个具有相同 UUID 的文件系统

环境声明:

系统CENTOS7.2 添加一块虚拟硬盘(准备一个测试分区)
正常使用一块磁盘过程如下:
添加磁盘大小:20Gà分区à格式化挂载

[root@harry63 ~]# fdisk /dev/sdb

linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复第1张

欢迎使用fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符0x06d5a427 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n #创建一个新的分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p #创建一个主分区
分区号 (1-4,默认 1):
起始 扇区(2048-41943039,默认为 2048):#
将使用默认值2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G #指定分区大小
分区 1 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):p #打印分区表
磁盘/dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x06d5a427
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输入 m 获取帮助):w #保存
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

[root@rich七哥 ~]# ls  /dev/sdb*

  /dev/sdb  /dev/sdb1

使用新的分区,格式化分区,并进行挂载

linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复第2张

[root@harry63 ~]# mkfs.xfs /dev/sdb1
[root@harry63 ~]# mkdir /sdb1     #创建挂载点
[root@harry63 ~]# mount /dev/sdb1 /sdb1   #挂载
准备备份测试文件
[root@harry63 ~]# cd /sdb1/
[root@harry63 sdb1]# cp /etc/passwd ./
[root@harry63 sdb1]# mkdir test
[root@harry63 sdb1]# touch test/a
[root@harry63 sdb1]# tree /sdb1/
[root@harry63 sdb1]# tree /sdb1/
/sdb1/
├──passwd
└── test
    └── a

  

开始备份

1、备份整个分区。 (这个功能就像是虚拟机的快照,服务器被黑后,进行快速恢复)
xfsdump -f 备份存放位置 要备份路径或设备文件
注意:此软件在需要安装,备份的路径这里不能写成/sdb1/。 可以是/dev/sdb1 或/sdb1
[root@harry63 sdb1]#yum install -y xfsdump
[root@harry63 sdb1]# xfsdump -f /opt/dump_sdb1 /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.4 (dump format 3.0) - type ^C for status and control
========== dump label dialog ==============================
please enter label for this dump session (timeout in 300 sec)
-> dump_sdb1 指定备份会话标签
session label entered: "dump_sdb1"
--------------------------------- end dialog ---------------------------------
xfsdump: level 0 dump of harry63.cn:/sdb1
xfsdump: dump date: Fri Nov 17 12:24:53 2017
xfsdump: session id: b5a25fcd-d43d-4308-bf29-142066f89d9a
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
============== media label dialog =============================
please enter label for media in drive 0 (timeout in 300 sec)
-> sdb1 指定设备标签,就是对要备份的设备做一个描述
media label entered: "sdb1"
--------------------------------- end dialog --------------------------------
xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 24544 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 46 seconds elapsed
xfsdump: Dump Summary:
xfsdump: stream 0 /opt/dump_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS
2、 指定备份时免交互操作,方便后期做定时备份
[root@harry63 sdb1]# xfsdump -f /opt/dump_passwd /sdb1 -L dump_passwd -M media1
-L :xfsdump 纪录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明
-M :xfsdump 可以纪录储存媒体的标头,这里可以填写此媒体的简易说明

3、指定只备份分区中某个目录
参数:-s 文件路径 只对指定的文件进行备份,-s指定时,路径写的是相对路径(-s可以是文件或目录)
[root@harry63 sdb1]# xfsdump -f /opt/dump_grub2 -s grub2/grub.cfg /boot -L dump_grub2 -M boot-sda1
4、查看备份信息与内容
备份成功后,我们就可以在/var/lib/xfsdump/inventory目录下看到生成的档案信息
[root@harry63 opt]# xfsdump -I(字母大写i)

测试恢复:先删除之前创建的内容
[root@harry63 sdb1]# ls
passwd test
[root@harry63 sdb1]# pwd
/sdb1
[root@harry63 sdb1]# rm -rf ./*

4.4.3 文件系统恢复

语法:xfsrestore -f 指定恢复文件的位置 指定存放恢复后的文件的路径
[root@harry63 opt]# xfsrestore -f /opt/dump_sdb1 /sdb1
查看恢复情况
[root@harry63 ~]# ls /sdb1/
恢复单个文件如下:
[root@harry63 ~]# mkdir /var/test/
[root@harry63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2/grub.cfg/var/test/
[root@harry63 ~]# xfsrestore -f /opt/dump_grub2 -s grub2/var/test/ #恢复目录

恢复成功!

END

免责声明:文章转载自《linux系统中不小心执行了rm -rf ./* 怎么办?解决:文件系统的备份与恢复》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇「Unity」键盘、鼠标,检测按键输入事件vmware迁移到华三(H3C CAS 虚拟化平台)云平台下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Centos7 LVM管理的逻辑卷根目录扩容和/var目录扩容

Centos7 LVM管理的逻辑卷根目录扩容 fdisk /dev/sdb #对新加磁盘进行分区操作pvcreate /dev/sdb1 #创建一个物理卷vgs #查看现有的卷组vgextend centos /dev/sdb1 #将创建的物理卷扩展至现有的root...

DM7 备份还原、作业、DM 开发

备份还原 备份作用? 1、防止误操作。 2、软硬件故障,做恢复 3、防止天灾。 备份的方式:物理备份和逻辑备份 备份的介质:磁盘,磁带,光盘 集群:数据守护 ,dsc(rac) 也支持第三方的备份软件:上海爱数,鼎甲 物理备份 冷备和热备 冷备:DMAP服务是打开的,数据库实例是关闭的); 方式: 利用控制台工具去备 DMRMAN工具备份: 冷备份,...

20款免费备份文件软件

      经常对电脑中资料进行备份的重要性已不用多说,但每次都辛苦地逐个目录拷贝、或花半天时间整理目录和文件、更不能想象重装系统后繁复的系统设置调整。如果你曾经因为这些而对系统备份工作有所迟疑,那么现在让你彻底告别这些顾虑! 1. Areca Backup 7.1.10 Areca Backup 是一个开源的备份软件,用 Java 写成。Areca B...

KVM基本功能管理

 一、KVM基础功能管理 1、查看命令帮助 virsh -h 2、查看 KVM 的配置文件存放目录(CENTOS7.0.xml是虚拟系统实例的配置文件) ls /etc/libvirt/qemu                 //属性配置文件路径 ls /virtual/KVM/                     //虚拟机磁盘镜像文件路径 3、查...

MySQL日志系统(redo log、undo log、binlog)

1.redo log(重做日志) InnoDB引擎特有的日志   当数据库对数据做修改的时候,需要把数据页从磁盘读到buffer pool中,然后在buffer pool中进行修改,那么这个时候buffer pool中的数据页就与磁盘上的数据页内容不一致,称buffer pool的数据页为dirty page 脏数据,如果这个时候发生非正常的DB服务重启...

linux 新添加的硬盘格式化并挂载到目录下

需求: 新增加一块硬盘sdb,将sdb分区,只分一个区,格式化,挂载到目录/ssd下。 1、  查看现在已有的分区状态   # df –l     图中显示,没有看到sdb硬盘 2、  查看服务器安装的硬盘状态(包括格式化和未格式化) # fdisk –l   图中显示,有sdb硬盘,但是没有分区。 3、  添加新分区   # fdisk /dev/sdb...