基本文件管理,针对Centos7的XFS文件系统备份恢复(需要更改)

  • 1.1  Linux系统目录结构,相对/绝对路径。

  • 1.2  创建/复制/删除文件,rm -rf / 意外事故

  • 1.3 查看文件内容

  • 1.4 xfs文件系统的备份和恢复

在Linux当中一切都是文件


1.1.1  linux系统目录结构

[root@centos7 /]# ll

total 32

lrwxrwxrwx.   1 root root    7 Aug 17 01:00 bin -> usr/bin

dr-xr-xr-x.   5 root root  4096 Nov  9 16:45 boot

drwxr-xr-x.  20 root root  3260 Dec 26 17:07 dev

drwxr-xr-x.  86 root root  8192 Nov 30 20:09 etc

drwxr-xr-x.   5 root root  157 Oct 31 19:03 home

lrwxrwxrwx.   1 root root    7 Aug 17 01:00 lib -> usr/lib

lrwxrwxrwx.   1 root root    9 Aug 17 01:00 lib64 -> usr/lib64

drwxr-xr-x.   2 root root    6 Nov  5  2016 media

drwxr-xr-x.   2 root root    6 Nov  5  2016 mnt

drwxr-xr-x.   2 root root    6 Nov  5  2016 opt

dr-xr-xr-x. 108 root root    0 Dec 26 17:06 proc

dr-xr-x---.  10 root root  4096 Dec 25 10:02 root

drwxr-xr-x.  25 root root  680 Dec 27 11:12 run

lrwxrwxrwx.   1 root root    8 Aug 17 01:00 sbin -> usr/sbin

drwxr-xr-x.   2 root root    6 Nov  5  2016 srv

dr-xr-xr-x.  13 root root    0 Dec 26 17:07 sys

drwxrwxrwt.  23 root root  4096 Dec 27 03:42 tmp

drwxr-xr-x.  13 root root  155 Aug 17 01:00 usr

drwxr-xr-x.  20 root root  278 Nov  9 10:09 var


基本文件管理,针对Centos7的XFS文件系统备份恢复(需要更改)


***************************************************************************************************************************


/   /home   /root   /dev   /usr   /etc   /boot   /lib    /var   /tmp   /proc  /bin /sbin

/   根分区,所有的文件和目录的起始点,只有root用户对此目录拥有写权限。

/etc   配置文件  包含所有应用程序的配置文件

/boot  存放Linux系统启动时需要加载的文件, Kernel、grub等文件都存放在此。

/var  一个可增长的目录,包含很经常变的文件,例如,/var/log(系统日志)、/var/lib (包文件)

/root  root用户的家目录

/tmp  临时文件存储位置  ,不能存放重要的数据,默认会定时清除

/usr  usr表示的是unix software source     /usr/src   源代码目录

/bin  命令  此目录包含二进制可执行文件,普通用户命令

/sbin  系统命令 ,系统管理员使用,以进行系统维护

/dev  包含设备文件。在Linux中,一切都被看做文件,如/dev/sda。

/home  普通用户的家目录  

/srv  srv 代表服务包含服务器特定服务相关的数据。例如,/srv/cvs包含cvs相关的数据。

/sys 应该是存放的系统硬件的固定信息

/proc  这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。


查看咱们的内存信息,CPU信 

cat /proc/meminfo  | grep “Mem”

cat /proc/cpuinfo


/lib   存放系统的库文件

lib***.a是静态库

lib***.so是动态库 


静态库在编译时被加载到二进制文件中

动态库在运行时加载到进程的内存空间中


简单的说,这些库就是为了让你的程序能够正常编译运行的。

其作用类似于Windows里的.dll文件。几乎所有的应用程序都须要用到这些共享库。


小结:

· 本地管理员大多数情况下将额外的软件安装在/usr/local目录下,并符号连接在/usr/local/bin下的主执行程序。

· 系统的所有设置在/etc目录下。

· 不要修改根目录(“/”)或/usr目录下的任何内容,目录最好和LINUX发布时保持一致。

· 大多数工具和应用程序安装在目录:/bin, /usr/sbin, /sbin,

· 所有的文件在单一的目录树下。没有所谓的“驱动符”。


 1.1.2 绝对路径和相对路径


路径:

 在我们平时使用计算机时要找到需要的文件就必须知道文件的位置,而表示文件的位置的方式就是路径。


绝对路径:     

 在Linux中,绝对路径是从”/”开始的,比如/usr、/etc/passwd。如果一个路径是从/开始的,它一定是绝对路径.

 pwd  判断位置

 [root@localhost ~]# pwd           注:判断用户当前所处的位置,也就是说他到底位于哪?

 /root                        #用户当前位于/root;


 [root@localhost ~]# cd /etc/sysconfig/network-scripts

  注:我们以绝对路径方式进入/目录下


 相对路径:


  相对路径是以 . 或 .. 开始的,

  .   表示用户当前操作所处的位置

  ..  表示上级目录


 在路径中

 .表示用户当前所处的目录,    ..上级目录.


 要把.和..当做目录来看。


1.2.  创建/查看/复制/删除 文件和文件夹

   1.2.1-1  创建文件和文件夹

    touch   作用:常用来创建空文件

    语法: touch 文件名

    [root@xuegod60 ~]# touch a.txt


    mkdir    作用:创建目录

    语法:mkdir 目录名

    [root@xuegod60 ~]# mkdir test

    [root@xuegod60 ~]# mkdir -p test/a/b/c        #-p 再创建时连通父目录一起创建


1.3 查看文件

    cat       作用:查看文件内容

    语法:cat 文件名


    分页查看    more  +  文件名

    例:       more  /etc/passwd

    按下回车刷新一行,按下空格刷新一屏


    q 退出


    less  查看文件名字


    q 退出


    使用光标键可以向上翻页


    linux中more与less的区别

     more:不支持后退,但几乎不需要加参数,空格键是向下翻页,Enter键是向下翻一行,在不需要后退的情况下比较方便。

     less:支持前后翻滚,既可以向上翻页(pageup按键),也可以向下翻页(pagedown按键)。,空格键是向下翻页,Enter键是向下翻一行


    head    -n 数字    显示多少行

   [root@xuegod60 ~]# head -3 /etc/passwd

    root:x:0:0:root:/root:/bin/bash

    bin:x:1:1:bin:/bin:/sbin/nologin

    daemon:x:2:2:daemon:/sbin:/sbin/nologin


   tail   从第后一行开始,查看文件,默认显示最后10行   

    -n  显示多少行  

    -f  动态显示数据(不关闭)  常用来查看日志

    [root@xuegod60 ~]# useradd nginx

    [root@xuegod60 ~]# tail -1 /etc/passwd

    nginx:x:1002:1002::/home/nginx:/bin/bash 


   复制文件:  cp    作用:复制文件

   语法:cp 源文件 目标文件

       -r 包含子目录和文件  。

    [root@xuegod60 ~]# cp -r /boot/grub2/ /root/


   重命名: mv 

   语法:mv 源:文件或目录名    目标:文件或目录名

   [root@xuegod60 ~]# mv rm.txt mk.txt


   删除文件和文件夹  rm  

   作用: 删除文件或目录

   语法: rm -rf  文件或目录名

        -r  递归删除(可以删除目录和目录里面的东西)

        -f  强行删除


1.4 实战:xfs文件系统的备份和恢复

   XFS提供了 xfsdump 和 xfsrestore 工具协助备份XFS文件系统中的数据。xfsdump 按inode顺序备份一个XFS文件系统。

   与传统的UNIX文件系统不同,XFS不需要在dump前被卸载;对使用中的XFS文件系统做dump就可以保证镜像的一致性。这与XFS对快照的实现不同,XFS的dump和restore的过程是可以被中断然后继续的,无须冻结文件系统。xfsdump 甚至提供了高性能的多线程备份操作——它把一次dump拆分成多个数据流,每个数据流可以被发往不同的目的地。


   首先了解一下xfsdump的备份级别有以下两种,默认为0(即完全备份)

   0   完全备份

   1   增量备份


   参数说明

   -f  指定备份文件目录

   -L  指定 标签 session label

   -M  指定 设备标签 media label

   单个文件备份:

   -s 参数可以备份单个文件,但是

      xfsdump -f /opt/dump_passwd -s /sdb1/passwd -L dump_passwd -M passwd

   -s 后面不能直接跟路径,应该是下面这样的:

      xfsdump -f /opt/dump_passwd -s passwd /sdb1 -L dump_passwd -M passwd


  实验环境 系统RHEL7.2 添加一块虚拟硬盘

  准备一个测试分区

  首先添加一块硬盘/dev/sdb,格式化为xfs文件系统

  正常使用一块磁盘

  添加磁盘à分区à格式化à挂载

  [root@xuegod60 ~]# fdisk /dev/sdb                            #指定分区的设备

  Welcome to fdisk (util-linux 2.23.2).


  Changes will remain in memory only, until you decide to write them.

  Be careful before using the write command. 


  Command (m for help):                                    #创建一个新的分区

  Partition type:

   p   primary (2 primary, 0 extended, 2 free)                     #创建主分区

   e   extended                                          #创建扩展分区

  Select (default p):

  Using default response p

  Partition number (3,4, default 3):                                  #指定分区号 

  First sector (25593856-41943039, default 25593856):                   #指定分区的开始柱面

  Using default value 25593856

  Last sector, +sectors or +size{K,M,G} (25593856-41943039, default 41943039): +1G    #指定分区大小

  Partition 3 of type Linux and of size 1 GiB is set


  Command (m for help): p                                          #打印分区表


  Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors

  Units = sectors of 1 * 512 = 512 bytes

  Sector size (logical/physical): 512 bytes / 512 bytes 

  I/O size (minimum/optimal): 512 bytes / 512 bytes

  Disk label type: dos

  Disk identifier: 0x00083333


   Device Boot      Start         End      Blocks   Id  System

    /dev/sdb1        25593856    27691007     1048576   83  Linux


   Command (m for help): w                                            #保存

  The partition table has been altered!


Calling ioctl() to re-read partition table.


WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

The kernel still uses the old table. The new table will be used at

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.


格式化分区,并进行挂载

建立了一个名为sdb1的目录,把/dev/sdb1挂载在其目录下,并在下面创建两个文件做测试

  [root@xuegod60 ~]# mkfs.xfs /dev/sdb1                            #格式化分区

  [root@xuegod60 ~]# mkdir /sdb1                                 #创建挂载点

  [root@xuegod60 ~]# mount /dev/sdb1 /sdb1/                         #挂载


准备备份测试文件

  [root@xuegod60 ~]# cp /etc/passwd /sdb1/

  [root@xuegod60 ~]# mkdir /sdb1/test

  [root@xuegod60 ~]# ls /sdb1/

  passwd  test


1)对整个分区进行备份

2)如果没有找到xfsdump 命令,需要安装xfsdump:  yum install xfsdump -y


[root@xuegod60 ~]# xfsdump -f /opt/dump_sdb1 /sdb1

注意:备份的设备这里不能写成/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 xuegod60.cn:/sdb1

xfsdump: dump date: Thu Jan 28 22:01:25 2016

xfsdump: session id: 29356f1f-8957-4fe0-ad70-2ae087f27abe

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: 25536 bytes

xfsdump: /var/lib/xfsdump/inventory created


 ============================= media label dialog =============================


please enter label for media in drive 0 (timeout in 300 sec)

 -> media0


#指定设备标签

media label entered: "media0"


 


 --------------------------------- 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 24232 bytes

xfsdump: dump size (non-dir files) : 2592 bytes

xfsdump: dump complete: 48 seconds elapsed

xfsdump: Dump Summary:

xfsdump:   stream 0 /opt/dump_sdb1 OK (success)

xfsdump: Dump Status: SUCCESS


删除刚刚备份的文件

非交互式进行备份

[root@xuegod60 ~]# xfsdump -f /opt/dump_sdb1 /sdb1 -L dump_sdb1 -M media0


注意:passwd  /sdb1中间有空格,前后都不能加“/”


针对指定文件或目录进行备份

[root@xuegod60 ~]# xfsdump -f /opt/dump_passwd -s passwd /sdb1 -L dump_sdb1_passwd -M media1 


查看备份文件是否生成

[root@xuegod60 opt]# ls


查看备份信息

[root@xuegod60 ~]# xfsdump -I  (大写)


文件系统恢复


首先,模拟数据被删除

[root@xuegod60 ~]# rm -rf /sdb1/*


恢复

[root@xuegod60 ~]# xfsrestore -f /opt/dump_sdb1 /sdb1/


只恢复单个的目录或文件

[root@xuegod60 ~]# xfsrestore -f /opt/dump_sdb1_passwd  /sdb1/



本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2055035

上一篇:Ubuntu Linux中使用快捷键截图选定区域


下一篇:《自己动手写Docker》书摘之三: Linux UnionFS