Проблема с возвратом оперативной памяти
Решение данной проблемы состоит из двух шагов.
Вначале зададим ограничение использования оперативной памяти в конфиге .
Создадим или откроем файл и добавим в него следующие опции:
Таким образом мы ограничили передачу памяти от хоста в параметре 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 также есть дополнительные опции командной строки.