Как узнать доступное место на диске в linux?

Проблема с возвратом оперативной памяти

Решение данной проблемы состоит из двух шагов.
Вначале зададим ограничение использования оперативной памяти в конфиге .
Создадим или откроем файл и добавим в него следующие опции:

Таким образом мы ограничили передачу памяти от хоста в параметре memory, но это решило только часть проблемы.
Т.е. теперь будет потреблять указанное в параметре количество памяти, но при ее использовании не будет спешить ее освобождать.
Связано это с механизмом кэширования для ускорения работы при выполнении повторных действий.
Для того, чтобы принудительно вернуть занятую память, используем простой скрипт :

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

Подключение Яндекс Диска

Статью с настройкой дисков завершу описанием подключения Яндекс.Диска. Я лично давно и интенсивно его использую. У меня есть статья по созданию резервной копии сайта на яндекс.диск. Статья хоть и старая, но актуальная. Я продолжаю использовать предложенные там решения.

Яндекс диск можно подключить как системный диск по webdav. Скажу сразу, что работает это так себе, я давно им не пользуюсь в таком виде. Мне больше нравится работать с ним через консольный клиент linux.

Устанавливаем консольный клиент yandex-disk на Debian.

# echo "deb http://repo.yandex.ru/yandex-disk/deb/ stable main" | tee -a /etc/apt/sources.list.d/yandex-disk.list > /dev/null
# apt install gnupg
# wget http://repo.yandex.ru/yandex-disk/YANDEX-DISK-KEY.GPG -O- | apt-key add -
# apt update && apt install yandex-disk

Дальше запускаете начальную настройку.

# yandex-disk setup

После этого яндекс диск подключен к системе и готов к работе. Посмотреть его статус можно командой.

# yandex-disk status

Остановить или запустить Яндекс.Диск можно командами.

# yandex-disk stop
# yandex-disk start

Файл конфигурации находится по адресу /root/.config/yandex-disk/config.cfg. Туда, к примеру, можно добавить список папок исключений, которые не нужно синхронизировать.

exclude-dirs="dir1,exclude/dir2,path/to/another/exclude/dir"

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

Яндекс диск сильно тормозит и падает, если у вас много мелких файлов. Мне доводилось хранить в нем бэкапы с сотнями тысяч файлов. Передать их в облако напрямую было невозможно. Я паковал их в архивы по 2-10 Гб и заливал через консольный клиент. Сразу могу сказать, что это решение в пользу бедных. Этот облачный диск хорош для домашних нужд пользователей и хранения семейных фоток и видео. Когда у вас большие потоки данных, которые нужно постоянно обновлять, работа с яндекс диском становится сложной.

Во-первых, трудно мониторить такие бэкапы. Во-вторых, тяжело убедиться в том, что то, что ты залил в облако, потом нормально скачается и распакуется из бэкапа. Как запасной вариант для архивов, куда они будут складываться раз в неделю или месяц, подойдет. Но как основное резервное хранилище точно нет. Какие только костыли я не придумывал для Яндекс.Диска в процессе промышленной эксплуатации. В итоге все равно почти везде отказался. Да, это очень дешево, но одновременно и очень ненадежно. Он иногда падает. Это хорошо, что упал, можно отследить и поднять. Так же он может зависнуть и просто ничего не синхронизировать, при этом служба будет работать. Все это я наблюдал, когда пытался синхронизировать сотни гигабайт данных. Иногда у меня это получалось :)

Занятое место в linux через du

Команда «du -h». Данная команда покажет, сколько места на диске занимает указанная папка (Папка — канцелярская принадлежность, обложка, конверт для бумаг, скоросшиватель.Папка-регистратор — канцелярская папка с арочным механизмом для хранения документов.Папка — экранный объект в). В нашем примере (рассматривается в риторике) мы выведем сколько места занимает каталог boot.

Если ввести команду «du -h /», то вы увидите огромный список всех ваших каталогов, но, опять же, понимания (универсальная операция мышления, связанная с усвоением нового содержания, включением его в систему устоявшихся идей и представлений) о том что конкретно занимает место вы не получите.

Управление таблицей разделов в parted, разметка диска

Выведем список доступных дисков:

или из shell:

Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.

Можно создать на диске разметку msdos (MBR)

Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :

Обратите внимаени, что в parted в отличии от fdisk нет команды для записи изменений. Все изменения применяются немедленно.

Теперь parted показывает тип таблицы разделов (разметки) на диске:

Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 21.0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags

Как вы видите, на диске уже есть таблица разделов MBR, но сами разделы еще не созданы.
Если у вас на сервере имеется несколько свободных дисков, то можно переключаться между ними с помощью команды:

Создание нового раздела в parted

Для создания раздела в parted, используется утилита . При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:

  • Partition type — указываем тип раздела (primary / extended)
  • File system type — файловая система, по умолчанию предлагается ext2 (в дальнейшем мы ее изменим);
  • Start — начальный сектор раздела
  • End — конечный сектор раздела (в мегабайтах). В нашем примере мы указали 5000, это значит, что будет создан раздел размером 5Гб.

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

Можно сразу создать раздел на весь диск:

или указать произвольный размер раздела так:

Также можно указывать размер диска в % и задать метку:

Чтобы выйти из оболочки parted, выполните команду:

Отформатируем раздел в файловой системе ext4:

mke2fs 1.44.6 (5-Mar-2019)
Creating filesystem with 1220352 4k blocks and 305216 inodes
Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done

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

Можно создать раздел и отформатировать его, не входя в оболочку parted, например:

Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.

Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.

Команды Linux, для работы с файлами

Эти команды используются для обработки файлов и каталогов.

33. ls

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

34. pwd

Linux pwd — это команда для показывает имя текущего рабочего каталога. Когда мы теряемся в каталогах, мы всегда можем показать, где мы находимся.

Пример ример ниже:

35. mkdir

В Linux мы можем использовать команду mkdir для создания каталога.

По умолчанию, запустив mkdir без какой-либо опции, он создаст каталог в текущем каталоге.

36. cat

Мы используем команду cat в основном для просмотра содержимого, объединения и перенаправления выходных файлов. Самый простой способ использовать cat— это просто ввести » имя_файла cat’.

В следующих примерах команды cat отобразится имя дистрибутива Linux и версия, которая в настоящее время установлена на сервере.

37. rm

Когда файл больше не нужен, мы можем удалить его, чтобы сэкономить место. В системе Linux мы можем использовать для этого команду rm.

38. cp

Команда Cp используется в Linux для создания копий файлов и каталогов.

Следующая команда скопирует файл ‘myfile.txt» из текущего каталога в «/home/linkedin/office«.

39. mv

Когда вы хотите переместить файлы из одного места в другое и не хотите их дублировать, требуется использовать команду mv. Подробнее можно прочитать ЗДЕСЬ.

40.cd

Команда Cd используется для изменения текущего рабочего каталога пользователя в Linux и других Unix-подобных операционных системах.

41. Ln

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

Команда Ln использует следующий синтаксис:

42. touch

Команда Touch используется в Linux для изменения времени доступа к файлам и их модификации. Мы можем использовать команду touch для создания пустого файла.

44. head

Команда head используется для печати первых нескольких строк текстового файла. По умолчанию команда head выводит первые 10 строк каждого файла.

45. tail

Как вы, возможно, знаете, команда cat используется для отображения всего содержимого файла с помощью стандартного ввода. Но в некоторых случаях нам приходится отображать часть файла. По умолчанию команда tail отображает последние десять строк.

46. gpg

GPG — это инструмент, используемый в Linux для безопасной связи. Он использует комбинацию двух ключей (криптография с симметричным ключом и открытым ключом) для шифрования файлов.

50. uniq

Uniq — это инструмент командной строки, используемый для создания отчетов и фильтрации повторяющихся строк из файла.

53. tee

Команда Linux tee используется для связывания и перенаправления задач, вы можете перенаправить вывод и/или ошибки в файл, и он не будет отображаться в терминале.

54. tr

Команда tr (translate) используется в Linux в основном для перевода и удаления символов. Его можно использовать для преобразования прописных букв в строчные, сжатия повторяющихся символов и удаления символов.

Команда LS — чтобы посмотреть в консоли сколько весят файлы

Чтобы узнать размер фалов можно воспользоваться командой листинга ls с параметром -l

dkplayer@dkplayer-x:~$ ls -l
итого 4124
-rw-r--r-- 1 dkplayer dkplayer 370 2009-07-09 09:17 adsense
-rw-r--r-- 1 dkplayer dkplayer 1344 2009-02-09 21:09 archive.key
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-07-03 16:41 bin
-rw-r--r-- 1 dkplayer dkplayer 6 2009-06-08 14:15 c7200_i0_lock
-rw-r--r-- 1 dkplayer dkplayer 0 2009-06-08 14:15 c7200_i0_log.txt
drwxr-xr-x 6 dkplayer dkplayer 4096 2009-06-16 17:10 Cisco
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-06-05 00:32 Desktop
drwxr-xr-x 7 dkplayer dkplayer 4096 2009-07-08 17:06 Downloads
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-07-09 15:09 errorlogs
-rw-r--r-- 1 dkplayer dkplayer 357 2009-06-04 16:51 examples.desktop
drwxr-xr-x 9 dkplayer dkplayer 4096 2009-06-16 10:58 from_book
drwxr-xr-x 3 dkplayer dkplayer 4096 2009-06-09 16:11 scripts
-rw-r--r-- 1 dkplayer dkplayer 131572 2009-06-16 10:30 test1.gif
-rw-r--r-- 1 dkplayer dkplayer 1989190 2009-07-06 16:41 test.gf.zip
-rw-r--r-- 1 dkplayer dkplayer 2004817 2009-06-16 10:21 test.gif
drwxr-xr-x 3 dkplayer dkplayer 4096 2009-06-05 00:30 zimbra
drwxr-xr-x 13 dkplayer dkplayer 4096 2009-07-08 17:06 Видео
drwxr-xr-x 3 dkplayer dkplayer 4096 2009-06-16 15:08 Документы
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-06-30 15:30 Картинки
drwxr-xr-x 4 dkplayer dkplayer 4096 2009-06-16 12:21 Музыка
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-06-15 10:06 Общедоступная
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-07-07 14:33 Рабочий стол
drwxr-xr-x 2 dkplayer dkplayer 4096 2009-06-04 23:06 Шаблоны

5-е поле как раз выдаёт размер фала. Для каталогов он всегда равен 4096. Кстати используя параметр -h можно выводить размер в удобочитаемом виде, т.е. не в байтах, а в килобайтах, мегабайтах и т.д. Размер будет суммироваться автоматически!

dkplayer@dkplayer-x:~$ ls -lh
итого 4,1M
-rw-r--r-- 1 dkplayer dkplayer 370 2009-07-09 09:17 adsense
-rw-r--r-- 1 dkplayer dkplayer 1,4K 2009-02-09 21:09 archive.key
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-07-03 16:41 bin
-rw-r--r-- 1 dkplayer dkplayer 6 2009-06-08 14:15 c7200_i0_lock
-rw-r--r-- 1 dkplayer dkplayer 0 2009-06-08 14:15 c7200_i0_log.txt
drwxr-xr-x 6 dkplayer dkplayer 4,0K 2009-06-16 17:10 Cisco
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-06-05 00:32 Desktop
drwxr-xr-x 7 dkplayer dkplayer 4,0K 2009-07-08 17:06 Downloads
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-07-09 15:09 errorlogs
-rw-r--r-- 1 dkplayer dkplayer 357 2009-06-04 16:51 examples.desktop
drwxr-xr-x 9 dkplayer dkplayer 4,0K 2009-06-16 10:58 from_book
drwxr-xr-x 3 dkplayer dkplayer 4,0K 2009-06-09 16:11 scripts
-rw-r--r-- 1 dkplayer dkplayer 129K 2009-06-16 10:30 test1.gif
-rw-r--r-- 1 dkplayer dkplayer 1,9M 2009-07-06 16:41 test.gf.zip
-rw-r--r-- 1 dkplayer dkplayer 2,0M 2009-06-16 10:21 test.gif
drwxr-xr-x 3 dkplayer dkplayer 4,0K 2009-06-05 00:30 zimbra
drwxr-xr-x 13 dkplayer dkplayer 4,0K 2009-07-08 17:06 Видео
drwxr-xr-x 3 dkplayer dkplayer 4,0K 2009-06-16 15:08 Документы
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-06-30 15:30 Картинки
drwxr-xr-x 4 dkplayer dkplayer 4,0K 2009-06-16 12:21 Музыка
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-06-15 10:06 Общедоступная
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-07-07 14:33 Рабочий стол
drwxr-xr-x 2 dkplayer dkplayer 4,0K 2009-06-04 23:06 Шаблоны

Уменьшение томов

Размер некоторый файловых систем, например, XFS уменьшить нельзя. Из положения можно выйти, создав новый уменьшенный том с переносом на него данных и последующим удалением.

LVM также позволяет уменьшить размер тома. Для этого необходимо выполнить его отмонтирование, поэтому для уменьшения системного раздела безопаснее всего загрузиться с Linux LiveCD. Далее выполняем инструкцию ниже.

Отмонтируем раздел, который нужно уменьшить:

umount /mnt

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

e2fsck -fy /dev/vg01/lv01

resize2fs /dev/vg01/lv01 500M

Уменьшаем размер тома:

lvreduce -L-500 /dev/vg01/lv01

На предупреждение системы отвечаем y:

  WARNING: Reducing active logical volume to 524,00 MiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y

Готово.

Очень важно, чтобы сначала был уменьшен размер файловой системы, затем тома. Также важно не уменьшить размер тома больше, чем файловой системы

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

Протестировать скорость диска

Проверка реальной скорости диска задача не простая. Во-первых, в операционной системе есть кэш. Если используется рейд контроллер, то в нем тоже есть свой кэш

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

Так что я предлагаю пару простых способов измерить скорость записи и чтения на глазок, просто чтобы прикинуть или сравнить разные диски.

# sync; dd if=/dev/zero of=tempfile bs=1M count=12000; sync
12000+0 records in
12000+0 records out
12582912000 bytes (13 GB, 12 GiB) copied, 14.4436 s, 871 MB/s

Это обычный ssd диск Samsung 860 EVO. Виртуальная машина работает на нем. А вот результат на рейд контроллере с отложенной записью, где массив raid10 собран из 4-х sata hdd.

# sync; dd if=/dev/zero of=tempfile bs=1M count=2000; sync
2000+0 records in
2000+0 records out
2097152000 bytes (2.1 GB) copied, 1.83823 s, 1.1 GB/s

Тут явно запись полностью попадает в кэш контроллера, поэтому такая нереальная скорость для обычных hdd дисков. Привожу это для примера, чтобы вы понимали, что то, что вы видите на тестах скорости это не всегда скорость самих дисков. Вот обычный софтовый raid1 на двух hdd дисках.

# sync; dd if=/dev/zero of=tempfile bs=1M count=6000; sync
6000+0 records in
6000+0 records out
6291456000 bytes (6.3 GB) copied, 37.7701 s, 167 MB/s

Скорость чтения диска можно измерить, к примеру, с помощью программы hdparm. Ставится из стандартных репозиториев.

# apt install hdparm
# hdparm -t /dev/vda1
/dev/vda1:
 Timing buffered disk reads: 742 MB in  3.00 seconds = 247.13 MB/sec

Привожу в пример эту программу, так как у нее явно указано, что ключ t позволяет производить чтение непосредственно с диска, минуя кэш системы. Хотя способов это сделать есть множество, но этот, как мне кажется, самый простой.

Создание файловой системы и монтирование тома

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

Файловая система

Процесс создания файловой системы на томах LVM ничем не отличается от работы с любыми другими разделами.

Например, для создания файловой системы ext4 вводим:

mkfs.ext4 /dev/vg01/lv01

* vg01 — наша группа томов; lv01 — логический том.

Для создания, например, файловой системы xfs вводим:

mkfs.xfs /dev/vg01/lv01

Монтирование

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

Для разового монтирования пользуемся командой:

mount /dev/vg01/lv01 /mnt

* где /dev/vg01/lv01 — созданный нами логический том, /mnt — раздел, в который мы хотим примонтировать раздел.

Для постоянного монтирования раздела добавляем строку в fstab:

vi /etc/fstab

/dev/vg01/lv01  /mnt    ext4    defaults        1 2

* в данном примере мы монтируем при загрузке системы том /dev/vg01/lv01 в каталог /mnt; используется файловая система ext4.

Проверяем настройку fstab, смонтировав раздел:

mount -a

Проверяем, что диск примонтирован:

df -hT

Системные команды Linux

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

1. uname

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

Следующая команда uname с опцией  отображает всю информацию об операционной системе.

2. uptime

Информация о том, как долго работает система Linux, отображается с помощью команды uptime. Информация о времени безотказной работы системы собирается из файла ‘/proc/uptime‘. Эта команда также отобразит среднюю нагрузку на систему.

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

Полное руководство команды Uptime

3. hostname

Вы можете отобразить имя хоста вашей машины, введя  в своем терминале. С помощью опции  вы можете просмотреть ip-адрес компьютера. А с помощью параметра  вы можете просмотреть доменное имя.

4. last

Команда last в Linux используется для определения того, кто последним вошел в систему на вашем сервере. Эта команда отображает список всех пользователей, вошедших (и вышедших) из «/var/log/wtmp » с момента создания файла.

Вам просто нужно ввести «last» в своем терминале.

5. date

В Linux команда date используется для проверки текущей даты и времени системы. Эта команда позволяет задать пользовательские форматы для дат.

Рекомендуем статью Команда Date (Дата) в Linux с примерами использования

Например, используя «date +%D«, вы можете просмотреть дату в формате «ММ/ДД/ГГ«.

6. cal

По умолчанию команда cal отображает календарь текущего месяца. С помощью опции  вы можете просмотреть календарь на весь год.

9. reboot

Команда reboot используется для перезагрузки системы Linux. Вы должны запустить эту команду из терминала с правами суперпользователя sudo.

10. shutdown

Команда shutdown используется для выключения или перезагрузки системы Linux. Эта команда позволяет планировать завершение работы и уведомлять пользователей сообщениями о выключении и перезагрузке.

По умолчанию компьютер (сервер) выключится через 1 минуту. Вы можете отменить расписание, выполнив команду:

Немедленное отключение тоже возможно, для этого используется опция «now»

Узнать свободное место в gui

Начинающим проще обращаться с графическим интерфейсом системы. С него и начнем. Типовой утилитой для работы с дисками и разделами в Linux возможно считать — Gparted.

Во многих дистрибутивах она уже предустановлена, но когда нет, ее можно установить с помощью пакетного менеджера, пример, в Ubuntu:

Бросится программа из главного меню. Наберите в поиске gparted или осуществите в терминале:

Приставка pexec значит, что будет утилита будет выполняться с правами суперпользователя, потому нужно будет ввести пароль. В правом высоком углу мы можем выбрать диск, с которым желаем работать, а в рабочей области — список разделов на избранном диске. Здесь указывается название, файловая система, точна, размер и информация об использованном пространстве. Кстати, поставить свободное место можно и визуально, занятое пространство отмечено желтым, а свободное — белым.

Создание зеркала

С помощью LVM мы может создать зеркальный том — данные, которые мы будем на нем сохранять, будут отправляться на 2 диска. Таким образом, если один из дисков выходит из строя, мы не потеряем свои данные.

Зеркалирование томов выполняется из группы, где есть, минимум, 2 диска.

1. Сначала инициализируем диски:

pvcreate /dev/sd{d,e}

* в данном примере sdd и sde.

2. Создаем группу:

vgcreate vg02 /dev/sd{d,e}

3. Создаем зеркальный том: 

lvcreate -L200 -m1 -n lv-mir vg02

* мы создали том lv-mir на 200 Мб из группы vg02.

В итоге:

lsblk

… мы увидим что-то на подобие:

sdd                       8:16   0    1G  0 disk
  vg02-lv—mir_rmeta_0  253:2    0    4M  0 lvm
    vg02-lv—mir        253:6    0  200M  0 lvm
  vg02-lv—mir_rimage_0 253:3    0  200M  0 lvm
    vg02-lv—mir        253:6    0  200M  0 lvm
sde                       8:32   0    1G  0 disk
  vg02-lv—mir_rmeta_1  253:4    0    4M  0 lvm
    vg02-lv—mir        253:6    0  200M  0 lvm
  vg02-lv—mir_rimage_1 253:5    0  200M  0 lvm
    vg02-lv—mir        253:6    0  200M  0 lvm

* как видим, на двух дисках у нас появились разделы по 200 Мб.

2-й способ. Утилита ncdu – анализ занятого места и его освобождение

Есть так же и другие способы определить чем занято место на диске, например, очень удобная в плане анализа занятого места – утилита ncdu. Установить ее можно, например, так:

  • Для Debian систем (rpm-пакеты) (в т.ч. Ubuntu) командой apt-get install ncdu
  • Для Red Hat систем (dpkg-пакеты) командой yum install ncdu

Дальше просто запустите ncdu и подождите, когда она подсчитает занимаемое место. По-умолчанию программа посчитает размеры папкой текущей папки, из которой программа была запущена. Если нужно посчитать какую-то другую папку, просто добавьте к команде путь к папке, например, так: ncdu /var/www. Если нужно посчитать занимаемое место на всем диске, можно использовать ncdu /.

Программа показывает занимаемое папками место, позволяет заходить в них и сразу видеть сколько подпапки занимают места. Так же в этой утилите можно выполнять различные действия над файлами и папками. Получить справку по клавишам управления можно нажав “?“. Ниже приведу список некоторых из клавиш управления:

  • d — удалить выбранный файл или папку с файлами;
  • n — отсортировать файлы и папки по имени;
  • s — отсортировать файлы и папки по объему занимаемого места;
  • t — показывать сначала папки, затем файлы;
  • g — режим отображения (в процентах, графически, комплексно);
  • a — режим отображения (размер файла, занятое место на жестком диске)
  • e — включить/отключить отображение скрытых файлов;
  • i — показать дополнительную информацию о папке или файле;
  • r — заново пересчитать занимаемое место;
  • q — выйти из программы;

Программа очень удобная, простая и выполняет задачу по анализу и освобождению свободного места полностью, рекомендую ее к использованию.

Управление квотами

Настройка лимитов квот (непосредственное управление квотами) производится при помощи команды edquota. Формат команды:

edquota  

Несколько опций команды edquota:

-u, —user Редактировать пользовательские квоты
-g, —group Редактировать групповые квоты
-r, —remote Редактировать квоты на удаленной системе
-f, —file-system=<файловая-система> Редактировать квоты только на указанной файловой системе
-t, —edit-period Редактировать временные лимиты для мягких квот, которые указываются в единицах времени — минутах, секундах, и так далее

После редактирования квот может потребоваться перезапустить сервис quota

service quota restart

Теперь давайте создадим пользователя и настроим для него квоты

# adduser user1
Adding user `user1' ...
Adding new group `user1' (1003) ...
Adding new user `user1' (1004) with group `user1' ...
Creating home directory `/home/user1' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for user1
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] 
#

Пользователь создан. Добавим для него следующие ограничения: пусть он не может использовать больше 1 мегабайта и может создать только 3 файла на файловой системе, смонтированной в /mnt/storage.

Выполним команду

edquota -u user1

В редакторе вы увидите следующее:

Disk quotas for user user1 (uid 1004):
  Filesystem    blocks       soft       hard     inodes     soft     hard
  /dev/sdb1          0          0          0          0        0        0

Выставим следующие значения для квот по пространству: soft — 768, hard — 1024, по inodes: soft — 2, hard — 3.

Disk quotas for user user1 (uid 1004):
  Filesystem    blocks       soft       hard     inodes     soft     hard
  /dev/sdb1          0        768       1024          0        2        3

И выйдем с сохранением. Теперь посмотрим, сохранились ли квоты. Залогинимся под пользователем user1 и перейдем в директорию /mnt/storage. Попробуем создать файл большого размера:

$ cd /mnt/storage
$ cat /dev/urandom > file.dat
sdb1: warning, user block quota exceeded.
sdb1: write failed, user block limit reached.
cat: write error: Disk quota exceeded

Как видите, квота пользователя исчерпана. Посмотрим, что у нас есть на дисковой системе:

$ ls -l
total 1056
-rw------- 1 root  root     7168 Apr 23 16:03 aquota.group
-rw------- 1 root  root     7168 Apr 23 15:59 aquota.user
-rw-r--r-- 1 user1 user1 1044480 Apr 23 16:03 file.dat
drwx------ 2 root  root    16384 Apr 23 15:33 lost+found

Как видите, размер файла 1 мегабайт. Теперь надо проверить, работает ли ограничение на количество файлов. Удалим file.dat и попробуем создать четыре файла.

$ rm file.dat
$ touch file1 file2 file3 file4
sdb1: warning, user file quota exceeded.
sdb1: write failed, user file limit reached.
touch: cannot touch `file4': Disk quota exceeded

Файл file4 мы не смогли создать, потому что сработало ограничение на количество файлов. Смотрим, какие файлы у нас есть:

$ ls -l
total 32
-rw------- 1 root  root   7168 Apr 23 16:07 aquota.group
-rw------- 1 root  root   7168 Apr 23 16:06 aquota.user
-rw-r--r-- 1 user1 user1     0 Apr 23 16:07 file1
-rw-r--r-- 1 user1 user1     0 Apr 23 16:07 file2
-rw-r--r-- 1 user1 user1     0 Apr 23 16:07 file3
drwx------ 2 root  root  16384 Apr 23 15:33 lost+found

Как видите, управление квотами работает.

Просмотреть установленные квоты можно при помощи команды quota. Вот несколько опций:

-u, —user Вывод информации для пользователя
-g, —group Вывод информации для группы
-v, —verbose Вывод подробной информации
-s, —human-readable Вывод информации в удобном для чтения человеком виде
-l, —local-only Выводить информацию только по локальным файловым системам, то есть не выводить информацию о сетевых файловых системах

Давайте посмотрим информацию для пользователя user1:

# quota -u user1
Disk quotas for user user1 (uid 1004): 
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sdb1       0     768    1024               3*      2       3   6days

По поводу просмотра квот есть одно замечание. Они могут не отображаться сразу после создания, пока пользователь не создал ни одного файла.

Также можно воспользоваться командой repquota для просмотра квот, которые в данный момент присутствуют в системе.

# repquota -a
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --      20       0       0              2     0     0       
user1     -+       0     768    1024              3     2     3  6days

У команды repquota также есть дополнительные опции командной строки.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: