天天看點

基本檔案管理,針對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

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

/   /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  檢視檔案名字

    使用光标鍵可以向上翻頁

    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): 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 指令,需要安裝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"

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

繼續閱讀