- PVSM.RU - https://www.pvsm.ru -

Визуализация занятого места под Linux

Визуализация занятого места под Linux - 1 [1]

Наконец-то выросло поколение пользователей, которые никогда не работали с файлами и не понимают [2], что это [3]. Для них чужда сама концепция, поскольку они во всех приложениях имеют дело с «документами» и не знают, что такое файловая система, жёсткие ссылки, поддиректории и др.

Может быть, это одна из причин, почему в РФ образовался мощнейший дефицит сисадминов [4]. Хотя никто не забывает и основную причину [5] печальной ситуации на рынке труда и общего спада демографии.

Так или иначе, ещё более очевидной становится важность ключевого навыка для современного человека: управление Linux-сервером [6]. Учитывая ситуацию на рынке труда, навык становится не только важным, но и финансово ценным.

В этой статье рассмотрим полезные утилиты для визуализации дискового пространства, а также резервного копирования системных файлов под Linux в стиле «машины времени» MacOS. Это полезные инструменты для системного администрирования серверов.

Визуализация занятого места в ОС помогает визуально оценить, на что расходуется дисковое пространство накопителя — и быстро выявить проблемные папки, которые нуждаются в очистке и удалении. Если на диске тысячи директорий, то вручную довольно трудно найти те самые забытые файлы, которые и отъедают терабайты на нашем NAS. А инструмент визуализации сразу найдёт «нарушителя».

▍ Красивые картинки

Duc [7] — это библиотека и набор инструментов для проверки и визуализации использования диска. Отличается высокой производительностью. Информация о распределении дискового пространства хранится в оптимизированной базе данных. После построения индекса интерфейс работает абсолютно без задержек.

Авторы [8] говорят, что тестировали программу в системе с более 500 млн файлов на несколько петабайт: индексация и визуализация прошли без зависаний.

Скачиваем и устанавливаем на Debian/Ubuntu:

$ sudo apt-get install duc 

Для других дистрибутивов можно взять исходники на Github [9].

Duc поддерживает несколько UI: его можно использовать из командной строки, через интерфейс ncurses, в графических интерфейсах X или OpenGL, а также через интернет с помощью CGI.

В текстовом интерфейсе работа выглядит следующим образом.

Сначала индексируем папку:

$ duc index /usr

Потом визуализируем результат:

    $ duc ls -Fg /usr/local
      4.7G lib/                 [+++++++++++++++++++++++++++++++++++++++++++]
      3.1G share/               [++++++++++++++++++++++++++++               ]
      2.7G src/                 [++++++++++++++++++++++++                   ]
    814.9M bin/                 [+++++++                                    ]
    196.6M include/             [+                                          ]
     66.6M x86_64-w64-mingw32/  [                                           ]
     59.9M local/               [                                           ]
     38.8M i686-w64-mingw32/    [                                           ]
     20.3M sbin/                [                                           ]
     13.6M lib32/               [                                           ]
     13.3M libx32/              [                                           ]

Выдача древовидной структуры с флагом -R:

 24.0K ╰┬─ ignore.d.server
  4.0K  │  ╰┬─ gpg-agent
  4.0K  │   ├─ rsyslog
  4.0K  │   ├─ hddtemp
  4.0K  │   ├─ ntpdate
  4.0K  │   ╰─ libsasl2-modules
  4.0K  ├─ ignore.d.paranoid
  4.0K  ├─ ignore.d.workstation
  4.0K  ╰─ violations.ignore.d

Запуск интерфейса ncurses:

duc ui /usr

Визуализация занятого места под Linux - 2

Графический интерфейс вызывается командой типа duc gui /usr, а результат показан на КДПВ.

Более подробно о функциях и параметрах см. в документации [10].

▍ Windows и MacOS

Под Windows тоже есть утилиты для визуализации дискового пространства. Например, WinDirStat [11] или SpaceSnipper [12], оба инструмента свободные, с открытым исходным кодом.

Принцип работы остаётся тем же: задаём отдельные папки или диски для анализа, программа их сканирует несколько секунд (примерно 10−20 секунд на терабайт) — и показывает результат:

Визуализация занятого места под Linux - 3
WinDirStat

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

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

Другая программа под Windows — SpaceSnipper [12], очень маленькая и простая утилитка с минимальными функциями, которая умеет работать в реальном времени, обновляя карту на экране сразу же, как происходят изменения в файловой системе:

Визуализация занятого места под Linux - 4
SpaceSnipper

Под MacOS можно назвать DaisyDisk [13], хотя это проприетарная и платная программа. Она позиционируется как самая производительная [14]: скорость сканирования якобы в 6−32 раза превышает этот показатель у всех аналогичных программ.

Визуализация занятого места под Linux - 5

Из необычных функций — предпросмотр медиафайлов [15] во встроенном файл-менеджере, сканирование скрытого пространства [16] (снапшоты машины времени и др.) и облачных хранилищ [17], параллельное сканирование разных накопителей и др.

Визуализация занятого места под Linux - 6
Предпросмотр медиафайлов в DaisyDisk

▍ Машина времени для Linux

В качестве бонуса можно упомянуть приложение Timeshift [18], которое предназначено не для визуализации файлов, а для инкрементальных бэкапов ОС. Оно делает снапшоты системных файлов, обеспечивая функциональность «машины времени», примерно как функция System Restore в Windows или инструмент Time Machine под MacOS.

Визуализация занятого места под Linux - 7

Под Linux существует десятки утилит для резервного копирования, но разработчики Timeshift поставили цель сделать удобный инструмент именно для системного администрирования. В отличие от похожих программ вроде rsnapshot [19], BackInTime [20] и TimeVault [21], здесь происходит резервное копирование именно системных файлов и настроек. Пользовательские данные (музыка, видео, документы) по умолчанию исключены из снапшотов. Хотя их можно включить вручную:

Визуализация занятого места под Linux - 8

Но этого не рекомендуется делать, потому что при восстановлении системы новые версии документов могут быть перезаписаны старыми. Если нужен инструмент для резервного копирования именно документов и пользовательских файлов, то лучше обратить внимание на отличное приложение BackInTime [20]. Там более широкие настройки для этой задачи.

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

В режиме RSYNC снапшоты делаются с помощью rsync [22] и жёстких ссылок [23]. Общие файлы снимаются один раз для всех снапшотов, что экономит место на диске. Каждый снапшот представляет собой полную резервную копию системы, которую можно просматривать в файловом менеджере.

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

Визуализация занятого места под Linux - 9

Восстановление старой версии системы из снапшота делается или на работающей системе (онлайн-восстановление, требует перезагрузки для завершения процесса), или из другой системы, на которой тоже установлен Timeshift (офлайн-восстановление).

Если основная система не загружается, то можно загрузиться с Ubuntu Live CD, установить Timeshift — и восстановить снимок основной системы. Timeshift найдёт рутовый аккаунт, бэкапы — и всё восстановит как было, включая загрузочный раздел.

Визуализация занятого места под Linux - 10

Установка Timeshift на Denian/Ubuntu и др.:

$ sudo apt-get install timeshift

Первую версию этой программы написал американский разработчик Тони Джордж (Tony George), вот архив его репозитория [24]. Сейчас Timeshift является частью проекта Xapp — это коллекция «кросс-дистрибутивных» приложений для Linux, которую курируют активисты Linux Mint [25], одного из самых популярных современных дистрибутивов.

Многие из нас сталкивались с ситуацией, когда что-нибудь в системе изменяется непонятным способом, или какой-то файл конфигурации случайно изменяется, так что приходится тратить дни и недели на ковыряние в настройках с целью вернуть всё как было. Иногда система ломается в самый неподходящий момент, когда уже нет времени разбираться. Благодаря Timeshift всегда есть опция откатиться на предыдущее рабочее состояние, а Linux становится поистине «неубиваемой» системой.


Некоторые современные студенты действительно не понимают концепции файлов. Говорят, что проблема начала проявляться в районе 2017 года [26]. Феномен можно объяснить по-разному. С одной стороны, молодёжь во все времена вызывала недовольство у взрослых: ещё со времён Древней Греции старшие считали новое поколение более глупым, дерзким и т. д. С другой стороны, сейчас выросло первое поколение в истории, которое с детства работало только со смартфонами в качестве компьютерной техники. То есть опыт работы с компьютерами у них основан только на смартфонах и планшетах. Эти люди никогда не работали с настольными компьютерами или ноутбуками. Может быть, кто-то из них считает ПК «реликтом прошлого», мол, сейчас все приложения выпускаются для смартфонов, а настольные компьютеры — это для дедов. Мол, всем известно, что документы просто «сохраняются в память» [27], правда?

Визуализация занятого места под Linux - 11

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

© 2024 ООО «МТ ФИНАНС»

Автор: alizar

Источник [28]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/time-machine/403265

Ссылки в тексте:

[1] Image: https://habr.com/ru/companies/ruvds/articles/859074/

[2] не понимают: https://cseducators.stackexchange.com/questions/3535/introducing-file-systems-to-students-who-really-dont-understand?noredirect=1&lq=1

[3] что это: https://cseducators.stackexchange.com/questions/5551/what-is-a-file?rq=1

[4] мощнейший дефицит сисадминов: https://habr.com/ru/companies/ruvds/articles/858212/

[5] основную причину: https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B5%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B2%D0%BE%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D1%8F

[6] управление Linux-сервером: https://habr.com/ru/companies/ruvds/articles/768548/

[7] Duc: https://duc.zevv.nl/

[8] Авторы: https://htmlpreview.github.io/?https://github.com/zevv/duc/blob/master/doc/duc.1.html#AUTHORS

[9] на Github: https://github.com/zevv/duc/releases

[10] документации: https://htmlpreview.github.io/?https://github.com/zevv/duc/blob/master/doc/duc.1.html

[11] WinDirStat: https://windirstat.net/

[12] SpaceSnipper: https://github.com/redtrillix/SpaceSniffer

[13] DaisyDisk: https://daisydiskapp.com/

[14] самая производительная: https://daisydiskapp.com/specs/#:~:text=highest%20possible%20speed

[15] предпросмотр медиафайлов: https://daisydiskapp.com/guide/4/en/Previewing/

[16] скрытого пространства: https://daisydiskapp.com/guide/4/en/HiddenSpace/

[17] облачных хранилищ: https://daisydiskapp.com/guide/4/en/CloudScan/

[18] Timeshift: https://github.com/linuxmint/timeshift

[19] rsnapshot: https://www.rsnapshot.org/

[20] BackInTime: https://github.com/bit-team/backintime

[21] TimeVault: https://wiki.ubuntu.com/TimeVault

[22] rsync: https://rsync.samba.org/

[23] жёстких ссылок: https://en.wikipedia.org/wiki/Hard_link

[24] архив его репозитория: https://github.com/teejee2008/timeshift

[25] Linux Mint: https://www.linuxmint.com/

[26] в районе 2017 года: https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z

[27] просто «сохраняются в память»: https://www.reddit.com/r/ProgrammerHumor/comments/sv55k8/when_i_heard_gen_z_dont_get_file_directories_what/

[28] Источник: https://habr.com/ru/companies/ruvds/articles/859074/?utm_campaign=859074&utm_source=habrahabr&utm_medium=rss