zoukankan      html  css  js  c++  java
  • 第六天 基本文件管理与XFS文件系统备份恢复

     

    • 1.1  Linux系统目录结构,相对/绝对路径。
    • 1.2  创建/复制/删除文件,rm -rf / 意外事故
    • 1.3 查看文件内容
    • 1.4 xfs文件系统的备份和恢复

    在Linux当中一切都是文件

    1.1.1  linux系统目录结构

    /   /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@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  显示多少行

    [root@xuegod60 ~]# useradd nginx

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

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

    [root@xuegod60 ~]#

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

      

    复制文件:

    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): n                                             #创建一个新的分区

    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 命令

    [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/

  • 相关阅读:
    【转】NHibernate主键类型介绍
    【转】NHibernate 各种数据库配置
    NHibernate常见错误
    NHibernate 设置主键不自增长
    Oracle 同名字段的该行数据按照创建时间最新的隐藏其他
    不用第三个变量就能交换两个变量值的五个方法
    Java IO 要点总结
    Java API 各个包的内容解释
    Ways to 优化JAVA程序设计和编码,提高JAVA性能
    Java菜鸟入坑学习要点
  • 原文地址:https://www.cnblogs.com/tinfeng/p/6097792.html
Copyright © 2011-2022 走看看