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