Ограничить размер папки linux

How to set limit on directory size in Linux? [closed]

I have read about limiting size of directory — like creating big files, formatting,mount. etc. But this all very complicated. Does exist utility or something else to set limit on already existing directory?

The problem that I need limit to specific directories. There are many users that have access to e.g. direcotry1, directory2, directory3. I need set limit for log dir, for data dir, for applications dir.

Based on the accepted answer and the linked tutorial, I’ve put together a script to automate the process, which is actually was made for a related answer: askubuntu.com/a/1043139/295286

2 Answers 2

Quota is based upon filesystems, but you can always create a virtual filesystem and mount it on a specific (empty) directory with the usrquota and/or grpquota flags.

  1. create the mount point
  2. create a file full of /dev/zero, large enough to the maximum size you want to reserve for the virtual filesystem
  3. format this file with an ext3 filesystem (you can format a disk space even if it is not a block device, but double check the syntax of every — dangerous — formatting command)
  4. mount the newly formatted disk space in the directory you’ve created as mount point, e.g. Code: mount -o loop,rw,usrquota,grpquota /path/to/the/formatted/disk/space /path/of/mount/point
  5. Set proper permissions
  6. Set quotas and the trick is done.

Tutorial here. Original answer here

Источник

Простое квотирование директорий в Linux

Необходимость квотирования отдельно взятых директорий в Linux, на мой взгляд, очевидна — зачастую бывает потребность в ограничении объёма пронстранства для хранения чего-либо, которая не основывается на методе определения порогов квоты для пользователей или групп, а на общем объёме самой директории. К счастью, у нас уже имеются под руками все необходимые средства для реализации этой нетривиальной, но подчас очень востребованной задачи предложенным ниже способом.

Предположим, имеется некая группа пользователей, которая использует ресурсы офисного сервера в том числе и для хранения общих файлов для совместной, коллективной работы. Проблема состоит в том, что зачастую, ресурсы общего доступа для хранения рабочих файлов могут использоваться не по назначению, например, для информации частного или даже развлекательного характера, например, видео или аудио файлы, которые как правило имеют большой объём. Если не предпринимать никаких мер, то в скором времени пространство диска на котором хранится информация самого общего ресурса будет исчерпано, что может вызвать ряд определённых неудобств или даже стать причиной отказа функционирования некоторых служб.

Читайте также:  Linux sed delete string

Одно из решений этой проблемы заключается в создании образа файловой системы для хранения нужной нам информации и последующего его подключения в точку монтирования. Преимущество данного метода в отличии от LVM или ряда других методов состоит в быстром решении и простоте использования. Давайте убедимся в этом сами:

Для начала, нам нужно создать каталог для точки монтирования нашего образа ФС.

dd if=/dev/zero of=/mnt/quota.img bs=1024 count=100000
mount -o loop /mnt/quota.img /mnt/quotadir

Всё! Более ничего не требуется! Мы осуществили всё, что требовалось.

И, наконец, если имеется необходимость в постоянном монтировании созданного нами образа, это необходимо сделать в файле /etc/fstab

/mnt/quota.img /mnt/quota ext3 loop 1 2

Не смотря на то, что файловая система на которой хранится нужная нам информация заключается а файле-образе, тем не менее, это всё-таки файловая система, над которой мы можем совершать вполне привычные действия, например, такие как:

Увеличение или уменьшение объёма ФС, тем самым изменяя объём самого хранилища

resize2fs -p quota.img 1000M

Источник

Linux: как ограничить размер папки /var/log

Иногда папка /var/log увеличивается в размере настолько, что становится причиной нехватки места на диске. Как ограничить рост размера этой папки? Выполнив два шага из этой статьи, вы можете поставить размер папки /var/log под контроль.

Шаг 1. Ограничение размера логов journald

Логи всех сервисов systemd складываются в папку /var/log/journal/ сервисом journald . Чтобы установить предельный размер этой папки, выполните следующие команды:

sudo bash -c 'echo "SystemMaxUse=100M" >> /etc/systemd/journald.conf' sudo systemctl restart systemd-journald 

Вместо размера 100M вы можете указать любой другой размер, в единицах измерения K, M, G, T . После вышеуказанных команд вы можете убедиться, что размер папки /var/log стал иметь заданный размер с помощью команды: du -sh /var/log/journal/

Шаг 2. Ограничение количества файлов логов, ротируемых logrotate

Logrotate каждый день совершает ротацию почти всех лог-файлов, находящихся в папке /var/log . Например, если я наберу команду ls /var/log/kern* , то я увижу, что помимо файла /var/log/kern.log у меня хранится ещё 4 файла, которые сохранил logrotate:

/var/log/kern.log /var/log/kern.log.2.gz /var/log/kern.log.4.gz /var/log/kern.log.1 /var/log/kern.log.3.gz 

Чтобы ограничить количество лог-файлов, нужно отредактировать файл /etc/logrotate.d/rsyslog . Посмотрев содержимое файла /etc/logrotate.d/rsyslog , мы увидим, что дефолтное значение параметра rotate равно 4 :

/var/log/syslog /var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log /var/log/daemon.log /var/log/kern.log /var/log/auth.log /var/log/user.log /var/log/lpr.log /var/log/cron.log /var/log/debug /var/log/messages   rotate 4  weekly  missingok  notifempty  compress  delaycompress  sharedscripts  postrotate  /usr/lib/rsyslog/rsyslog-rotate  endscript > 

Можно изменить 4 на какое-то другое значение, например, на 1 , чтобы хранился только один файл. В папке /etc/logrotate.d/ вы найдёте также множество других конфигурационных файлов, относящихся к другим лог-файлам, там вы тоже можете изменить параметр rotate .

Вы имеете право копировать, тиражировать, использовать в коммерческих и некоммерческих целях любую информацию, опубликованную на данном сайте.

Источник

Disk quota

«A disk quota is a limit set by a system administrator that restricts certain aspects of file system usage on modern operating systems. The function of setting quotas to disks is to allocate limited disk-space in a reasonable way.«

This article covers the installation and setup of disk quota.

Installation

Configuration

Set up the filesystem

Edit fstab to enable the quota mount option(s) on selected file systems, e.g.:

/dev/sda3 /home ext4 defaults,usrquota 0 2

To additionally enable the group quota mount option:

/dev/sda3 /home ext4 defaults,usrquota,grpquota 0 2

If supported by the kernel and file system it is recommended to use journaled quota instead:

/dev/sda3 /home ext4 defaults,usrjquota=aquota.user,jqfmt=vfsv1 0 2

Append grpjquota=aquota.group to enable group quota.

Remount the partition to apply the change:

Create quota index

To create the quota index for /home :

Append the -g parameter to also create a group index.

To enable disk quotas for the desired file system:

To disable disk quotas for the file system:

Usage

Enable quota for user/group

  • To find out how many 1 kilobyte blocks are there for a partition use $ df .
  • You may use a online bytes converter to calculate the correct amount of blocks [1].
  • The command # setquota may be used as an alternative of # edquota [2].

Quotas are configured using edquota (as the root user) that will be opened in the default configured text editor:

Disk quotas for user user (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda3 24 0 0 6 0 0

blocks Indicates number of 1k blocks currently used by the user/group. soft Indicates max number of blocks for the user/group before a warning is issued and grace period countdown begins. If set to «0» (zero) then no limit is enforced. hard Indicates max number of blocks for the user/group can use. If maximum amount has been reached, no further disk space can be used. If set to «0» (zero) then no limit is enforced. inodes Indicates the current inodes amount used by the user/group. soft Indicates the soft inode limit for the user/group. hard Indicates the hard inode limit for the user/group.

Consider the following configuration for ftpuser1:

Disk quotas for user ftpuser1 (uid 1000): Filesystem blocks soft hard inodes soft hard /dev/sda3 24 1000000 1048576 6 0 0

In this case if ftpuser1 uses over 976MB of space a warning will be issued. If the hard limit of 1GB has been reached the user will be unable to write any more data.

See #Specify a grace period to give users a specific amount of time to reduce storage usage when they hit their soft limit.

Warning: The hard limit applies to all files written by and for the respective user/group, including temporary files by started applications, which may crash at this point.

Specify a grace period

To give current users some time to reduce their file usage, a grace period can be configured. This specifies the allowed time a user/group can exceed their soft limit and while under their hard limit:

Grace period before enforcing soft limits for users: Time units may be: days, hours, minutes, or seconds Filesystem Block grace period Inode grace period /dev/sda3 7days 7days

The grace period can be set in seconds, minutes, hours, days, weeks or months.

Reports

Shows all configured quotas:

Shows quotas on a specific partition:

Show quotas that apply to a user/user group:

Copy quota settings

To one or several users

To copy quota settings from user1 to user2 :

# edquota -p user1 user2 

To copy quota settings to several other users, append user3 user4 .

To groups

To copy quota settings from group1 to group2 :

# edquota -g -p group1 group2 

To all users

The idea is to modify the quota settings for one user and copy the setting to all other users. Set the quota for user1 and apply the quota to users with a UID greater than 999:

# edquota -p user1 $(awk -F: '$3 > 999 ' /etc/passwd)

Tips and tricks

Quota warnings

The command warnquota can be used to warn the users about their quota. Configuration is available in /etc/warnquota.conf .

Stats

The command quotastats can be used to give more information about the current quota usage:

Number of dquot lookups: 101289 Number of dquot drops: 101271 Number of still active inodes with quota : 18 Number of dquot reads: 93 Number of dquot writes: 2077 Number of quotafile syncs: 134518740 Number of dquot cache hits: 7391 Number of allocated dquots: 90 Number of free dquots: 2036 Number of in use dquot entries (user/group): -1946

See also

Источник

Оцените статью
Adblock
detector