17.磁碟容量配額和軟硬方式連結
1.quota:進行磁碟容量配額管理,從而限制使用者的硬碟可用容量或所能建立的最大檔案個數。
軟限制和硬限制的功能。
軟限制:當達到軟限制時會提示使用者,但仍允許使用者在限定的額度內繼續使用。
硬限制:當達到硬限制時會提示使用者,且強制終止使用者的操作。
Centos7 系統中已經安裝了quota 磁碟容量配額服務程式包,但儲存裝置卻預設沒有開啟對quota 的支援,此時需要手動編輯配置檔案,讓Centos 7 系統中的/boot 目錄能夠支援quota磁碟配額技術。
在重啟系統後使用mount命令檢視,即可發現/boot 目錄已經支援quota 磁碟配額技術了:
[root@Centos ~]# vim /etc/fstab #/etc/fstab # Created by anaconda on Wed Jul 29 13:24:21 2020 # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info/dev/mapper/centos_centos-root / xfs defaults 0 0 UUID=5290d0be-c146-4107-b0da-1dff813fe4f1 /boot xfs defaults,uquota0 0 /dev/mapper/centos_centos-swap swap swap defaults 0 0 /dev/sdb1 /newFS xfs defaults 0 0 /dev/sdb2 swap swap defaults 0 0
[root@Centos ~]# reboot [root@Centos ~]# mount | grep boot /dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,usrquota)
2.xfs_quota :專門針對XFS 檔案系統來管理quota 磁碟容量配額服務而設計的命令,格式為“quota [引數] 配額檔案系統”。
其中,-c 引數用於以引數的形式設定要執行的命令;-x引數是專家模式,讓運維人員能夠對quota 服務進行更多複雜的配置。
舉例:建立一個用於檢查quota 磁碟容量配額效果的使用者tom,並針對/boot 目錄增加其他人的寫許可權,保證使用者能夠正常寫入資料:
使用xfs_quota命令來設定使用者tom 對/boot 目錄的quota 磁碟容量配額。具體的限額控制包括:硬碟使用量的軟限制和硬限制分別為3MB 和6MB;建立檔案數量的軟限制和硬限制分別為3 個和6 個。
[root@Centos ~]# useradd tom [root@Centos ~]# chmod -Rf o+w /boot
[root@Centos ~]# xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 tom' /boot [root@Centos ~]# xfs_quota -x -c report /boot User quota on /boot (/dev/sda1) Blocks User ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 149140 0 0 00 [--------] tom 0 3072 6144 00 [--------] [root@Centos ~]# su - tom [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=5M count=1 1+0 records in 1+0 records out 5242880 bytes (5.2 MB) copied, 0.0404283 s, 130 MB/s [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1 dd: error writing ‘/boot/tom’: Disk quota exceeded 1+0 records in 0+0 records out 6291456 bytes (6.3 MB) copied, 0.0270056 s, 233 MB/s
3.edquota :編輯使用者的quota 配額限制,格式為“edquota [引數] [使用者] ”。
-u引數表示要針對哪個使用者進行設定;
-g 引數表示要針對哪個使用者組進行設定。
edquota 命令會呼叫Vi 或Vim 編輯器來讓root 管理員修改要限制的具體細節。
舉例:把使用者tom 的硬碟使用量的硬限額從6MB 提升到8MB:
[root@Centos ~]# edquota -u tom Disk quotas for user tom (uid 1114): Filesystem blocks soft hard inodes soft hard /dev/sda1 8192 3072 8192 1 3 6
[root@Centos ~]# su - tom Last login: Tue Aug 18 17:57:35 CST 2020 on pts/0 [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=8M count=1 1+0 records in 1+0 records out 8388608 bytes (8.4 MB) copied, 0.0126815 s, 661 MB/s [tom@Centos ~]$ dd if=/dev/zero of=/boot/tom bs=10M count=1 dd: error writing ‘/boot/tom’: Disk quota exceeded 1+0 records in 0+0 records out 8388608 bytes (8.4 MB) copied, 0.0234795 s, 357 MB/s
4.在 Linux 系統中存在硬連結和軟連線兩種檔案。
1)硬連結(hard link):可以將它理解為一個“指向原始檔案inode 的指標”,系統不為它分配獨立的inode 和檔案。所以,硬連結檔案與原始檔案其實是同一個檔案,只是名字不同。我們每新增一個硬連結,該檔案的inode 連線數就會增加1;而且只有當該檔案的inode 連線數為0 時,才算徹底將它刪除。換言之,由於硬連結實際上是指向原檔案inode 的指標,因此即便原始檔案被刪除,依然可以通過硬連結檔案來訪問。需要注意的是,由於技術的侷限性,我們不能跨分割槽對目錄檔案進行連結。
2)軟連結(也稱為符號連結[symbolic link]):僅僅包含所連結檔案的路徑名,因此能連結目錄檔案,也可以跨越檔案系統進行連結。但是,當原始檔案被刪除後,連結檔案也將失效,從這一點上來說與Windows 系統中的“快捷方式”具有一樣的性質。
ln :建立連結檔案,格式為“ln [選項] 目標”
為了更好地理解軟連結、硬連結的不同性質,接下來建立一個類似於Windows 系統中快捷方式的軟連結。這樣,當原始檔案被刪除後,就無法讀取新建的連結檔案了。
[root@Centos ~]# echo "Hello, world" > hello.txt [root@Centos ~]# ln -s hello.txt hi.txt [root@Centos ~]# cat hi.txt Hello, world [root@Centos ~]# ll hello.txt -rw-r--r--. 1 root root 13 Aug 18 18:31 hello.txt [root@Centos ~]# rm -f hello.txt [root@Centos ~]# cat hi.txt cat: hi.txt: No such file or directory
接下來針對一個原始檔案建立一個硬連結,即相當於針對原始檔案的硬碟儲存位置建立了一個指標,這樣一來,新建立的這個硬連結就不再依賴於原始檔案的名稱等資訊,也不會因為原始檔案的刪除而導致無法讀取。同時可以看到建立硬連結後,原始檔案的硬碟連結數量增加到了2。
[root@Centos ~]# echo "hello ,what's your name" > meet.txt [root@Centos ~]# ln meet.txt nice.txt [root@Centos ~]# cat nice.txt hello ,what's your name [root@Centos ~]# cat meet.txt hello ,what's your name [root@Centos ~]# ll nice.txt -rw-r--r--. 2 root root 24 Aug 18 18:35 nice.txt [root@Centos ~]# rm -rf meet.txt [root@Centos ~]# cat nice.txt hello ,what's your name