от RED(19-09-2000)

рейтинг (7)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Квотите са средство, с чиято помощ указвате колко дисково пространство може да заема даден потребител или група на Вашата Linux система. С квотите определяте лимитита за дисково пространство по два начина:  броят inode-и (файлове, устройства, директории т.н), които даден потребител или група може да притежава, както и броят блокове от диска(в повечето случаи блокове от 1К).

Квотите задължават потребителите или групите от потребители да спазват този лимит, като по този начин предпазват от заемане
на цялото дисково пространство от един потребител и нарушаване нормалната работа на системата.

Квотите се определят за различни файлови системи, потребители или групи от потребители.

В момента се поддръжа единствено ext2 файлова система.

За да използвате квоти на вашата Linux машина трябва да имате root права и да направите следните стъпки.

1. Конфигуриране на Linux ядрото:
Преди да може да използвате квотите на вашата система трябва да компилирате ядрото с опцията "Filesystems ->Quota support".  След което трябва да прекомпилирате ядрото и да го инсталирате.

2. Избиране на файлова система:
След като започнете да използвате новото ядро трябва да решите коя файлова система се нуждае от квоти. Обикновено това са дяловете в които се намират директориите на потребителите на системата. За да разрешите квотите за дадена файлова система трябва да редактирате  /etc/fstab файлът и да добавите usrquota и grpquota. Ето и пример:

 # устройство  директория   тип    опции
 /dev/hda1  /           ext2    defaults
 /dev/hda2  none        swap    sw
 /dev/hda3  /usr        ext2    defaults,usrquota
 /dev/hdb1  /usr/users  ext2   defaults,grpquota
 /proc      proc    defaults

Ключовата дума "usrquota" се използва когато искаме да използваме квоти за отделни потребители. Ключовата дума "grpquota"
от своя страна позволява използването на квоти за групи от потребители на системата. Ако използвате тези ключови думи  -
usrquota и grpquota без "=" тогава системата ще търси файловете които описват квотите на отделните групи и   потребители
в началната директория на устройството за която са активирани квотите. За конкретния пример(т.е /etc/fstab) трябва да напишете следните команди:

 touch /usr/quota.user
 chmod 600 /usr/quota.user

 touch /usr/users/quota.gruop
 chmod 600 /usr/users/quota.gruop

Файлът "quota.user" съдържа  в себе си информация за квотите на отделните потребители, докато файлът "quota.group" описва квотите на отделните групи.
Може да посочите от къде се намират тези файлове, ако не са разположени в главната директория.
Това става по следният начин: пишете  "usrquota=/usr/adm/quotasrc.user" ако искате да се използва файлът /usr/adm/quotasrc.user.
Имайте предвид максимумът от редове който може да сложите в /etc/fstab.

3. Активиране на квотите
Периодично записите, които се намират в quota.*  файловете, трябва да се проверяват дали отговарят на текущото състояние на системата. Командата "quotacheck" се използва за да се провери дали даден потребител не е надхвърлил своята квота.
Не е нужно да демонтирате файловата система или да дезактивирате квотите за да стартирате тази команда, въпреки това
ако в момента, в който стартирате тази команда, устройствата се използва активно това може да доведе до грешни резултати.
За предпочитане е да използвате "quotacheck" командата когато не се извършват почти никакви действия от файловата система.
За да проверите за действителното дисково пространство което използва даден потребител стартирайте командата "quotacheck"
по следния начин "quotacheck -avug". Изпълнението на командата може да вземе известно време на големи файлови системи.
Самото активиране на квотите става с командата "quotaon".
За да актвирате квотите автоматично добавете следните редове в някой rc файл

За Slackware това е /etc/rc.d/rc.M

# Check quotas and then turn quota system on:
if fgrep quota /etc/fstab 1> /dev/null 2> /dev/null ; then
  if [ -x /sbin/quotacheck ]; then
    echo "Checking filesystem quotas..."
    /sbin/quotacheck -avug
  fi
  if [ -x /sbin/quotaon ]; then
    echo "Activating filesystem quotas..."
    /sbin/quotaon -avug
  fi
fi

4. Проверка на квотите на отделните потребители или групи.
Администраторът може да използва командата "quota" за да проследи използваното дисково пространство от отделен потребител и командата  "repquota" за да провери използването и лимитите на всички потребители на файловата система.

# repquota -a
         Block limits               File limits
User            used    soft    hard  grace    used  soft  hard  grace
root      --  175419       0       0          14679     0     0
bin       --   18000       0       0            735     0     0
uucp      --     729       0       0             23     0     0
man       --      57       0       0             10     0     0
user1     --   13046   15360   19200            806  1500  2250
user2     --    2838    5120    6400            377  1000  1500
 
 

5. Добавяне и редактиране на квотите на  даден потребител или група
За да редактирате квотите на различните потребители или групи използвайте командата  "edquota". За да редактирате потребител използвайте "edquota -u" и "edquota -g" за да редактирате група. Има точно по два реда информация за активните квоти на дадена файлова система.

Quotas for user user1:
/dev/hda3: blocks in use: 5799, limits (soft = 8000, hard = 10000)
                inodes in use: 1454, limits (soft = 3000, hard = 4000)

Забележете, че има два вида ограничения: soft и hard. Soft ограничението показва колко е препоръчителния размер,  който може да заема даден потребител. Ако тази граница се прескочи има "гратисен" период, през който потребителя трябва да намали  общия размер на използваните файлове . Гратисният период може да бъде променян с командата "edquota -t ",  резултатът от която е:

Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda3: block grace period: 7 days, file grace period: 7 days

Редактирайте и запишете съдържанието  за да активирате промените. Освен дни - days, може да изпoлзвате и  sec(onds), min(utes), hour(s), day(s), week(s),  и  month(s). Ако след края на гратисния период  потребителя не слезе под квотата си се използва hard лимита. hard лимита е абсолютния максимум, който даден потребител може да използва. Ако потребител надхвърли този лимит той няма право да добавя нови файлове.  Този ред

blocks in use: 5799, limits (soft = 8000, hard = 10000)

показва колко блока може да използва дадения потребител. Често 1 block = 1 kilobyte.
А този ред

inodes in use: 1454, limits (soft = 3000, hard = 4000)

показва колко inodes (файлове/устройства/и т.н)  се полагат на потребителя. В повече от случайте имате групи от потребители с една и съща квота. Бърз начин да редактирe квотата на  всички тези потребители е да редактирате квотата на един от тези потребители, примерно bob, след което да напишете на ръка следната команда

edquota -p bob `awk -F: '$3 > 499 {print $1}' /etc/passwd`

Тук става дума за потребители, които имат  ID > 499.

Сега всички потребители имат една и съща квота, но  допълнително може да смените квотите на отделните потребители.

6. Премахване на квотите за потребител или група
Ако искате да дезактивирате квотата за даден потребнител или група използвайте програмата "edquota". Пишете: edquota username | uid или edquota -g groupname | gid и определете софт лимита както и хард лимита на 0. Това ще е достатъчно за да премахнете квотата на даден потребител и да му позволи да използва колкото си иска дисково пространство.

7. Спиране на квотите за всички потребители.
Това става с командата "quotaoff". Добре е тази команда да се добави в скриптът, който се изпълнява при спиране на системата.

Отново ще дам пример със Slackware. Тези редове трябва да поставите във файлът /etc/rc.d/rc.6

# Try to turn off quota:
 if fgrep quota /etc/fstab 1> /dev/null 2> /dev/null ; then
   if [ -x /sbin/quotaoff ]; then
     echo "Turning off filesystem quotas."
     /sbin/quotaoff -a
   fi
 fi


<< Ръководство за намиране на помощна инфoрмация в Linux | Кратки съвети и трикове (част 3) >>