32期 完全互動式磁碟配額免配置指令碼beta

2021-08-26 03:48:19 字數 1437 閱讀 8317

注:用本指令碼做測試的兄弟,一定要做好備份,備份的檔案是

/etc/fstab

提示輸入資訊的內容要完全輸入正確,否則在重寫/etc/fstab這個檔案時,你提交的資訊也都是錯的。如果重啟機器,你系統就掛了。已經宣告,掛了的兄弟用光碟模式恢復一下。但是安全的就是做備份。

今天寫了個關於磁碟配額的shell指令碼,免除了手工進行檔案配置和重新掛載、編輯使用者的繁瑣步驟,完全採用互動方式,輸入那你的資訊,即可完成配置。

其中輸入的資訊包括:第一步:掛載目錄(你想要磁碟配額的目錄,寫絕對路徑)

第二步:分割槽名(與掛載目錄相對應的裝置分割槽,例/dev/sda1根據個人情況 )

第三步:輸入預配額的使用者名稱

第四步:輸入預配額空間大小 (數字)

第五步:輸入可建立檔案數 (數字)

舉例:如果想在/web目錄中進行磁碟配額 (前提是這個/web目錄本身就是乙個磁碟分割槽), 限定使用者 zhang 在/web目錄只能使用50m 的空間,請啟動指令碼

sh 這個指令碼

提示一:輸入 /web

提示二:輸入 /dev/sdb2 (假設對應的裝置分割槽是這個)

提示三:輸入 zhang

提示四:輸入 51200

提示五:輸入 16

到此指令碼執行完畢,磁碟配額就做好了。。

現在用「 quota 使用者名稱 」 這個命令 ,卻查不到使用者的配額資訊,但是配額的功能卻生效了,找了半天沒找到原因,希望兄弟們研究研究。

你可以試一下,看是不是具有50m的限定

切換到zhang這個使用者

然後執行命令 dd if=/dev/zero of=/web/a.test bs=1024 count=1024000 (說句題內話,zhang 對/web這個目錄一定要有寫許可權啊!不然寫不進去)

看看命令的返回結果吧,如下

sdb1: write failed, user block limit reached.

dd: writing `/apache/ddj': disk quota exceeded

51137+0 records in

51136+0 records out

52363264 bytes (52 mb) copied, 6.03849 seconds, 8.7 mb/s

切換到root 再執行一下 quota zhang 卻能檢視到磁碟配額資訊了。

[root@localhost test]# quota zhang

disk quotas for user zhang (uid 516):

filesystem blocks quota limit grace files quota limit grace

/dev/sdb1 51200* 0 51200 2 0 12

想要新增一些迴圈控制語句,使指令碼做的更完美,但是由於時間有限,半天沒弄出來,水平有限吧,兄弟們來完善吧。

互動式介面

互動式介面 啟動終端後,在終端裝置附加乙個互動式應用程式 runlevel 顯示當前執行的模式 root vm 163 113 centos runlevel n 3init 3 切換至命令列 init 0 停機 千萬不能把initdefault 設定為0 init 1 單使用者模式 init 2 ...

互動式 非互動式,登入式 非登入式Shell

互動式shell和非互動式shell 互動式模式 在終端上執行,shell等待你的輸入,並且立即執行你提交的命令。這種模式被稱作互動式是因為shell與使用者進行互動。這種模式也是大多數使用者非常熟悉的 登入 執行一些命令 退出。當你退出後,shell也終止了。非互動式模式 以shell scrip...

互動式 vs 非互動式 登入式 vs 非登入式

方式 區別區分方法 互動式與使用者互動 echo 返回值有i 非互動式 與script互動 echo 返回值沒有i 方式 登入區別 退出區別 區分方法 登入式需要username pwd logout exit echo 0 返回是 bash 非登入式 無需要username pwd exit ec...