第六天 基本文件管理與XFS文件系統備份恢復

 

  • 1.1  Linux系統目錄結構,相對/絕對路徑。
  • 1.2  建立/複製/刪除文件,rm -rf / 意外事故
  • 1.3 查看文件內容
  • 1.4 xfs文件系統的備份和恢復

在Linux當中一切都是文件node

1.1.1  linux系統目錄結構

 

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

/   根分區,全部的文件和目錄的起始點,只有root用戶對此目錄擁有寫權限。linux

/etc  配置文件  包含全部應用程序的配置文件nginx

/boot 存放Linux系統啓動時須要加載的文件, Kernel、grub等文件都存放在此。bash

/var  一個可增加的目錄,包含很常常變的文件,例如,/var/log(系統日誌)、/var/lib (包文件)服務器

/root  root用戶的家目錄session

/tmp  臨時文件存儲位置  ,不能存放重要的數據,默認會定時清除多線程

/usr  usr表示的是unix software source     /usr/src   源代碼目錄less

/bin  命令  此目錄包含二進制可執行文件,普通用戶命令ide

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

相關文章
相關標籤/搜索