- PVSM.RU - https://www.pvsm.ru -
[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

Графический интерфейс вызывается командой типа duc gui /usr, а результат показан на КДПВ.
Более подробно о функциях и параметрах см. в документации [10].
Под Windows тоже есть утилиты для визуализации дискового пространства. Например, WinDirStat [11] или SpaceSnipper [12], оба инструмента свободные, с открытым исходным кодом.
Принцип работы остаётся тем же: задаём отдельные папки или диски для анализа, программа их сканирует несколько секунд (примерно 10−20 секунд на терабайт) — и показывает результат:

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

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

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

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

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

Но этого не рекомендуется делать, потому что при восстановлении системы новые версии документов могут быть перезаписаны старыми. Если нужен инструмент для резервного копирования именно документов и пользовательских файлов, то лучше обратить внимание на отличное приложение BackInTime [20]. Там более широкие настройки для этой задачи.
Timeshift делает инкрементальные снимки файловой системы через регулярные промежутки времени. Программа поддерживает несколько режимов работы.
В режиме RSYNC снапшоты делаются с помощью rsync [22] и жёстких ссылок [23]. Общие файлы снимаются один раз для всех снапшотов, что экономит место на диске. Каждый снапшот представляет собой полную резервную копию системы, которую можно просматривать в файловом менеджере.
В режиме BTRFS используются встроенные функции файловой системы BTRFS. Такой режим поддерживается только в системах с компоновкой подпапок в стиле Ubuntu, то есть с подпапками @ и @home.

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

Установка Timeshift на Denian/Ubuntu и др.:
$ sudo apt-get install timeshift
Первую версию этой программы написал американский разработчик Тони Джордж (Tony George), вот архив его репозитория [24]. Сейчас Timeshift является частью проекта Xapp — это коллекция «кросс-дистрибутивных» приложений для Linux, которую курируют активисты Linux Mint [25], одного из самых популярных современных дистрибутивов.
Многие из нас сталкивались с ситуацией, когда что-нибудь в системе изменяется непонятным способом, или какой-то файл конфигурации случайно изменяется, так что приходится тратить дни и недели на ковыряние в настройках с целью вернуть всё как было. Иногда система ломается в самый неподходящий момент, когда уже нет времени разбираться. Благодаря Timeshift всегда есть опция откатиться на предыдущее рабочее состояние, а Linux становится поистине «неубиваемой» системой.

Так оно всё и работает, думает молодёжь. Непонятно, зачем эти деды и программисты нам рассказывают сказки про файловые системы с иерархиями.
© 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
Нажмите здесь для печати.