歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix教程

solaris下quota機制對用戶進行磁盤限額控制實踐

    如何使用quota機制對用戶進行磁盤限額控制

    Solaris中的quota機制是一個很有用的管理機制,它可以使系統管理員對用戶的磁盤使用限額進行有效地控制。可以控制的方式包括:限制用戶占用磁盤總容量限制用戶建立文件總數量限制某個文件系統中用戶文件的存在時間

    使用quota機制時,要在需限額的各文件系統之主目錄下需事先建立quotas空文件(如無),然後使用edquota -v username命令修改指定用戶在該文件系統下的限制份額(0=無限制,單位為k),或該用戶在該文件系統下文件總個數限額。使用quotacheck命令使系統確認quotas中的新內容。最後使用quotaon命令使限額生效。檢查quota的狀態可以使用quota或repquota等命令。

    前提:有多余的文件系統掛載或者對已經掛載的文件系統;本例是在ufs文件系統下實現。

    下面舉一示例進行說明。示例中對用戶test在/export/home 文件系統中的磁盤限額進行控制:編輯/etc/vfstab文件:#device         device          mount           FS      fsck    mount   mount #to mount       to fsck         point           type    pass    at boot options # fd      -       /dev/fd fd      -       no      - /proc   -       /proc   proc    -       no      - /dev/dsk/c0t0d0s1       -       -       swap    -       no      - /dev/dsk/c0t0d0s0       /dev/rdsk/c0t0d0s0      /       ufs     1       no      - /dev/dsk/c0t0d0s7       /dev/rdsk/c0t0d0s7      /export/home    ufs     2       yes     rq swap    -       /tmp    tmpfs   -       yes     -

    然後進入要限制的文件系統:# cd /export/home # touch quotas              ;如果該文件已經存在則不需要# edquota test               ;edquota將自動啟動vi fs / blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)

    ~這裡blocks是用戶磁盤的限額,單位為k.soft是警告額度,hard是限制額度。

    如果用戶占用磁盤量超過警告額度,系統將在每次用戶進行磁盤操作或登錄時進行警告,要求用戶減少磁盤占用量至軟限制之下;如果用戶的操作會導致超過hard限制,那麼操作將失敗。

    inodes是用戶文件數量,soft和hard的含義類似。

    本例把該用戶的限額改變為:警告限制=1024K,硬限制=1024K. fs / blocks (soft = 1024, hard = 1024) inodes (soft = 0, hard = 0)

    ~;別忘存盤退出# quotacheck -a            ;通知系統確認新的quota # quotaon /export/home     ;打開quota機制# repquota -v /export/home ;顯示一下結果/dev/dsk/c0t0d0s0 (/):Block limits                      File limits User           used   soft   hard    timeleft    used   soft   hard    timeleft test     ——      6   1024   1024                   0      0      0

    建立兩個試驗用的文件:# cd /tmp # mkfile 1000k a1000k # mkfile 1080k a1080k # chmod 666 a1000k # chmod 666 a1080k

    # su - test Sun Microsystems Inc.   SunOS 5.9       Generic May 2002 $ ls -l total 6 -rw-r——r——   1 userq    other        124 Mar 18 09:25 local.cshrc -rw-r——r——   1 userq    other        607 Mar 18 09:25 local.login -rw-r——r——   1 userq    other        582 Mar 18 09:25 local.profile $ cp /tmp/a1000k . $ cp /tmp/a1080k . quota_ufs: over hard disk limit (pid 1070, uid 1002, inum 371751, fs /)

    cp: /tmp/a1080k: Disc quota exceeded

    列目錄看看,第二個cp操作因超過硬限額而失敗。

    $ ls -l total 2022 -rw-r——r——   1 userq    other    1024000 Mar 18 10:35 a1000k -rw-r——r——   1 userq    other        124 Mar 18 09:25 local.cshrc -rw-r——r——   1 userq    other        607 Mar 18 09:25 local.login -rw-r——r——   1 userq    other        582 Mar 18 09:25 local.profile $ exit

    下面用edquota把test的硬限制改為2124後,再重復試驗(別忘quotacheck!):

    ……

    $ cp /tmp/a1080k . quota_ufs: Warning: over disk limit (pid 1151, uid 1002, inum 371751, fs /)

    列目錄看看,警告歸警告,可是操作還是成功了。

    $ ls -l total 4198 -rw-r——r——   1 userq    other    1024000 Mar 18 10:35 a1000k -rw-r——r——   1 userq    other    1105920 Mar 18 10:45 a1080k -rw-r——r——   1 userq    other        124 Mar 18 09:25 local.cshrc -rw-r——r——   1 userq    other        607 Mar 18 09:25 local.login -rw-r——r——   1 userq    other        582 Mar 18 09:25 local.profile $ exit

Copyright © Linux教程網 All Rights Reserved