Увеличить размер папки 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

Источник

How to set a file size limit for a directory?

I have a directory on my system which is used for a specific reason by applications and users, but I don’t want its size to be allowed to exceed 2GB, is there a way of setting up some sort of limit which just doesn’t allow the file size to exceed that or any other amount I decide to set for it in the future? When the size limit is exceeded it should undo the last change (though there should be an option to have it so that it just stops the operation and doesn’t care if half a file was copied and left there) and then display a warning to the user. I am running Ubuntu GNOME 16.10 with GNOME 3.22.

Читайте также:  Linux lines in console

1 Answer 1

Usual filesystem quota on ext4 is per-user/group, not per-directory. ZFS can sort-of set a directory quota, by creating a filesystem of a fixed size off a ZFS volume. A simple trick, though, is to create a 2GB file, create a filesystem on it, and mount it at the desired folder:

$ touch 2gbarea $ truncate -s 2G 2gbarea $ mke2fs -t ext4 -F 2gbarea mke2fs 1.43.3 (04-Sep-2016) Discarding device blocks: done Creating filesystem with 524288 4k blocks and 131072 inodes Filesystem UUID: bf1b2ee8-a7df-4a57-9d05-a8b60323e2bf Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done $ sudo mount 2gbarea up $ df -h up Filesystem Size Used Avail Use% Mounted on /dev/loop0 2.0G 6.0M 1.8G 1% /home/muru/up 

In any case, filesystem quotas (or methods like this) aren’t as user friendly as you want. This method is one-way flexible, in that you can increase the size online, but decreasing it would be hard.

  • touch : touch 2gbarea creates an empty file named 2gbarea .
  • truncate : truncate is used to resize files (in this case, I resize the currently empty 2gbarea file to 2 GB using -s 2G ).
  • mke2fs : mke2fs creates ext2/3/4 filesystems (in this case, ext4).
  • mount mounts the filesystem on the given directory.
  • df is used to list filesystem usage.

Источник

Операции с файловой системой в Linux

Операции с файловой системой в Linux

Статья из серии How To. . В этой я собрал способы выполнить самые частые операции с файловой системой в Linux, в частности в CentOS . Статья может использоваться как справочник и будет дополняться. Добавляйте в закладки.

Заходя в Windows, системный администратор может наглядно наблюдать подключенные дисковые устройства, видеть их тип, размер, свободное пространство, выполнять операции форматирования, расширения диска и т.п.. В Linux не всё так очевидно, приходится запоминать множество команд. Эта статья даёт ответы на следующие вопросы:

Сколько дисков в системе, как их увидеть?

Как известно, в Linux всё есть файл. И память, и диски — всё. Поэтому самый простой способ посмотреть устройства — это вывести содержимое каталога, где содержатся устройства. Устройства “живут” в /dev , а блочные, дисковые устройства называются sda, sdb и т.д., если они подключены через SCSI и hda, hdb и т.д., если через IDE. Сейчас, в век виртуализации, конечно, чаще всего можно встретить только SCSI устройства. Следующая команда выведет список всех дисков в системе:

`ls` - вывести содержимое каталога `-l` - вывести списком `/dev/sd*` - вывести содержимое каталога /dev, начинающееся на `sd` 

assets/images/linux-filesystem-operations/1.png

Как “разбиты” диски, сколько партиций, их тип и размер?

Есть несколько способов увидеть эту информацию. Не прибегая ни к каким утилитам, что может быть полезно в системах с минимальным набором установленных пакетов, можно воспользоваться способом посмотреть содержимое файла /proc/partitions . Этот файл содержит информацию о распределённых блоках партиций. Посмотреть содержимое можно командой cat :

Читайте также:  There are suspended jobs linux

Пример этого вывода выглядит следующим образом:

assets/images/linux-filesystem-operations/2.png

Больше информации о Proc File System (содержимом каталога /proc) можно узнать в документации по RedHat.

Есть ещё одна утилита fdisk . Следующей командой, можно увидеть информацию о всех дисках и их размерах:

Более компактные сведения можно получить утилитой parted выполнив следующую команду:

assets/images/linux-filesystem-operations/4.png

Ещё одним способом, является утилита lsblk . Она показывает информацию очень наглядно, в виде дерева.

assets/images/linux-filesystem-operations/5.png

Сколько свободного места на дисках?

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

`df` - вывести информацию о смонтированных разделах `-h` - вывести размер в удобочитаемом формате `-T` - вывести информацию о типе файловой системы 

assets/images/linux-filesystem-operations/3.png

Важно отметить, что df показывает только смонтированные файловые системы и тольк размер самой файловой системы. А она может отличаться от размера диска или партиции. Для определния размера диска или партиции используйте fdisk , parted или lsblk , о которых упоминалось выше.

Как новый жесткий диск сделать доступным в системе?

Cоздать новый раздел

Для этого можно воспользоваться утилитами fdisk или parted . Покажу на примере первой.

# Запустить fdisk выбрав нужный диск sudo fdisk /dev/sdb n # создать новый раздел p # выбрать тип, например primary 1 # ввести номер партиции или нажать enter, чтобы использовать предложенное значение 2048 # выбрать первый сектор или нажать enter, чтобы использовать предложенное значение 266338303 # выбрать последний сектор или нажать enter, чтобы использовать предложенное значение w # записать изменения и выйти 

Отформатировать раздел (создать файловую систему)

Cоздать файловую систему xfs на созданном разделе

Смонтировать раздел

Добавить строку монтирования в файл /etc/fstab. Это можно сделать руками, воспользовавшись привычным редактором vi, vim, nano, e.t.c. Открываем фай с использованием команды sudo и добавляем новую строку в конце файла:

/dev/mapper/cl-root / xfs defaults 0 0 UUID=15a55219-a817-4a27-b3ac-14d96296e457 /boot xfs defaults 0 0 /dev/mapper/cl-home /home xfs defaults 0 0 /dev/mapper/cl-swap none swap defaults 0 0 /dev/sdb1 /mnt/dms xfs defaults 0 0 

Либо можно выполнить следующую команду:

sudo bash -c 'echo "/dev/sdb1 /mnt/dms xfs defaults 0 0" >> /etc/fstab ' 

Монтировать раздел можно не только по имени. Но и по UUID, LABEL и т.д.. Чтобы увидеть UUID раздела можно воспользоваться одним из следующих способов.

sudo blkid sudo blkid /dev/sd* sudo lsblk -f lsblk -o +uuid,name ls -la /dev/disk/by-uuid/ 

У монтирования по UUID есть несколько преимуществ и недостатков.

  1. При изменении порядка подключения дисков, название раздела может поменятся. Например, вместо sda стать sdb. Но UUID раздела останется прежнем, т.к. он хранится в суперблоке.

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

  1. UUID раздела может поменятся, например при пересоздании файловой системы.
  2. В одной системе нельзя смонтировать два раздела с одинаковым UUID. Поэтому такой способ монтирования нельзя использовать с LVM снапшотами и клонированными дисками.

UUID можно изменить командой tune2fs -U new_uuid /dev/sdaX

После изменения файла /etc/fstab, настоятельно рекомендую проверить то, что описанные в нём разделы успешно монтируются. Для этого нужно выполнить команду sudo mount -a . Если вы не видите никакой ошибки, то смело можно перезагружаться.

Увидеть все смонтированные разделы и параметры монтирования

Для просмотра списка точек монтирования выполните команду:

Читайте также:  Nvidia optimus with linux

Чтобы найти больше информации о точках монтирования в вашей системе, выполните команду:

assets/images/linux-filesystem-operations/6.png

Кроме того, вы можете использовать команду cat:

Также вы можете использовать команду mount, как показано далее:

Расширить пространство после увеличения размера жёсткого диска

Есть несколько сценариев, когда нужно увеличить размер файловой системы.

  • Вы увеличили размер виратуального диска.
  • Восстановили образ системы на диск большего размера.
  • Добавили ещё один диск в систему.

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

В первых двух случаях, вам нужно:

В последнем случае, вам нужно:

Увеличить размер партиции

Для увеличения размера партиции программой fdisk , нужно удалить партицию и создать новую, большего размера. НЕ ПЕРЕЖИВАЙТЕ, ДАННЫЕ НЕ ПОСТРАДАЮТ.

Запускаете fdisk, нажимаете d , чтобы удалить раздел. Вводите номер раздела, например 2 . Затем нажимаете n и создаёте новый раздел, с тем же номером и стартовым сектором, но уже большего размера. Затем выходите командой w .

Для увеличения размера партиции программой parted , можно воспользоваться встроенным методом resizepart, либо недокументированной функцией pretend-input-tty , выполнив следующую команду:

sudo parted /dev/sda ---pretend-input-tty resizepart 2 100% 

Источник

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