Сага про обмеження дискового простору на папку в лінуксі

Jan 14, 2013 10:03

Ітак, маємо необхідність обмежувати розмір каталогу, причому задача стоїть обмежити саме розмір даного каталогу, а не заквотувати розмір дискогвого простору для конкретного користувача (хуйово спроектований хостінг-сервер, я казав, шо ступим на ці граблі, але кого це їбе, продовжуємо =))

І так, допустимо маємо каталог /home/site1/, необхідно його розмір обмежити, ну допустим до 10Мб. Ми поступимо таким чином - створимо ще одну ФС, у файлику і змонтуємо її в цей каталог. Надалі, при необхідності, ми зможемо міняти розмір ціїє ФС, тим самим надаючи необхідний об'єм для запису. Коротше почнем. Для початку створимо файл, в якому будемо тримати нашу ФС:
root@smartbackup /home # dd if=/dev/zero of=/home/fs/site1.img bs=1024 count=100000

Далі нам необхідно відформатувати даний файл:
root@smartbackup /home # mkfs.ext3 /home/fs/site1.img

Ок, файл готовий до використання, тепер змонтуємо його в потрібну директорію:
root@smartbackup /home # mount -o loop /home/fs/site1.img /home/site1

Все, тепер ми маємо можливість записати в диреторію /home/site1 не більше 10Мб інформації.
Якщо нам необхідно, щоб монтування відбувалось автоматично, одразу після перезагрузки, нам потрібно відредагувати /etc/fstab таким чином:

/home/fs/site1.img /home/site1 ext3 loop 1 2

Припустимо нам необхідно змінити максимальний розмір папки до 15Мб, поступаємо слідуючим чином: обов'язково розмонтуємо диск, перевіримо його на помилки і виправимо їх, змінимо його розмір і знову примонтуємо. Робим:
root@smartbackup /home # umount /home/fs/site1.img
root@smartbackup /home # e2fsck -f /home/fs/site1.img
root@smartbackup /home # resize2fs -p /home/fs/site1.img 15M
root@smartbackup /home # mount -o loop /home/fs/site1.img /home/site1
І продовжуємо працювати. Все просто =)

P.S. Дітки, не робіть хуйні!!!1. Вказаний вище спосіб є категорично не правильним підходом до квотування дискового простору!!!1. Читайте документацію і проектуйте свої серваки првильно.

linux, setup

Previous post Next post
Up