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