Calcweb.ru

Информационный портал
8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Утилита ncdu — анализ дискового пространства в Linux

Утилита ncdu — анализ дискового пространства в Linux

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

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

Ncdu

Наименование утилиты расшифровывается как NCurse Disk Usage, где NCurse — указание на использование инструментом библиотеки ncurses , а Disk Usage — на ее близость к du — встроенной в большинство версия Linux утилите для оценки объема занимаемого дискового пространства, от которой ncdu отличается значительно большим удобством, предлагая к использованию псевдографический интерфейс, позволяющий быстро перемещаться по древовидной структуре каталогов.

Установка и запуск

Инсталляция ncdu выполняется через терминал командой sudo apt-get install ncdu , также вы можете попробовать установить утилиту через Центр приложений.

Apt-get install ncdu

Запускается же утилита через тот же терминал одноименной командой ncdu .

Будучи запущенной без параметров, ncdu сканирует содержимое текущего каталога с отображением прогресса.

Ncdu

И выводит его в виде списка с указанием относительного пути и размера каждого объекта.

Ncdu

В расположенной внизу панели указывается общий и фактический (Apparent size) размер текущего каталога, а также количество имеющихся в нём элементов, включая папки и файлы.

Для навигации по файловой системе в ncdu используются клавиши-стрелки. Клавиши вверх-вниз служат для выбора объекта, клавиши вправо-влево — для входа в выбранные каталоги и выхода из них.

Ncdu

Также для входа в папки можно использовать Enter . Помимо клавиш-стрелок и ввода, утилитой поддерживается еще целый ряд «горячих» клавиш, упрощающих работу с приложением.

Вот некоторые из них:

n и s — сортировка по имени и размеру;
d — удаления выделенного объекта;
k и j — то же, что и клавиши вверх-вниз;
i — вывод сведений о файле или папке;
e — показ только скрытых файлов;
g — переключение в режим отображения занятого места в процентах;
a — переключение в режим отображения реального занятого места на диске в байтах;
r — повторный расчет занимаемого места;
q и b— выход из программы в консоль.

Ncdu

Для расширения возможностей ncdu используются аргументы или параметры. Указываются они после команды через дефис по отдельности или вместе, например, ncdu -q или ncdu -1xo .

Вот наиболее востребованные аргументы ncdu:

-0 — отключает вывод информации при сканировании файловой системы;
-1 — изменяет режим вывода информации при сканировании файловой системы;
-q — включает тихий режим сканирования, обычно используется при работе с удаленными системами;
-r — данные в консоли выводятся в режиме «только для чтения», что предотвращает случайное удаление файлов и папок;
-o путь к файлу — экспорт результатов работы в лог;
-f путь к файлу — вывод данных из созданного ранее лога;
— exclude шаблон — исключает из результатов сканирования размер объектов, названия которых соответствует маске шаблона, однако сами объекты отображаются в списке.

Ncdu

Ncdu

Чтобы получить больше информации о поддерживаемых аргументах и «горячих» клавишах, выполните в терминале команду man ncdu , она выводит справку по утилите.

Ncdu

Да, стоит упомянуть, что использовать ncdu можно не только для анализа Linux-, но и в Windows-разделов. Если Windows установлена параллельно с Linux, вы можете выполнить в последней команду ncdu /media , перейдя таким образом в корень диска и получив доступ к смонтированным томам с Windows.

Ncdu

Ncdu

Также ncdu может использоваться для анализа содержимого дисков на компьютерах под управлением Windows 10 при условии, что в ней будет активирован компонент WSL . Установив из Windows Store дистрибутив Debian или другую популярную версию Linux, вы сможете запускать ncdu из-под нее, получая доступ к файловой системе разделов С и D хостовой операционной системы.

Читайте так же:
Windows Service Auditor — инструмент аудита и отслеживания служб в Windows

Анализ дискового пространства: ncdu, du

При работе с сервером важно контролировать занятый объем на диске. Если дисковое пространство окажется занято полностью, в работе VDS начнут возникать ошибки (ошибка 502, удаление файлов при их редактировании, повреждение базы данных). Чтобы этого избежать, необходимо своевременно увеличивать доступный объем, удаляя ненужные файлы или расширяя сам диск.

Для того, чтобы проверить, чем занято дисковое пространство на сервере, можно воспользоваться такими утилитами, как ncdu и du. Работать с ними достаточно просто. При анализе также может потребоваться проверить данные о файловой системе и inodes (подробнее об этом в последнем разделе этой статьи).

Утилита ncdu — один из самых удобных инструментов для анализа дискового пространства. Она имеет псевдографический интерфейс, что значительно упрощает работу с ней.

Ncdu не предустановлена в дистрибутивах Unix по умолчанию, но ее легко можно установить командой:

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

Например, чтобы вывести информацию о корневом каталоге, выполните:

Формат вывода

Количество символов "#" помогает определить, какие файлы и каталоги занимают больше всего места.

Крайний левый столбец может содержать дополнительные обозначения (например, на скриншоте выше — пометки e):

  • ! — ошибка при чтении каталога;
  • . — ошибка при чтении подкаталога, т.е. указанный размер может быть некорректным;
  • < — объект исключен из подсчета (с помощью опции —exclude);
  • > — объект из другой файловой системы;
  • @ — объект не является файлом или каталогом (символическая ссылка, сокет);
  • H — объект уже был учтен (жесткая ссылка);
  • e — пустой каталог.

Навигация

Для перемещения по директориям используются клавиши со стрелками (вверх и вниз).

Стрелка вправо или Enter — войти в выбранную директорию.

Стрелка влево — вернуться в предыдущую директорию.

Доступные функции интерфейса

С помощью следующих клавиш можно управлять полученным выводом:

n — упорядочить элементы по имени (в прямом и обратном порядке);

s — упорядочить элементы по размеру (в прямом и обратном порядке);

g — переключение между отображением "графика" (####) и объёма в процентах:

a — переключение между отображением реального размера файлов и объемом занимаемого пространства на диске;

e — скрыть/показать скрытые файлы и папки;

? — вызвать краткую справку;

d — удалить выбранный элемент (перед удалением будет запрошено подтверждение действия);

i — вывести информацию о выбранном элементе:

q — выйти.

Используемые ключи

Также при запуске утилиты можно использовать дополнительные ключи для ncdu:

-h (т.е. команда вида ncdu -h) — вывод краткой справки;

-q — "тихий режим", с обновлением данных каждые 2 секунды. По умолчанию обновление выполняется 10 раз в течение секунды. Тихий режим позволяет снизить объем передачи данных при удаленных подключениях;

-x — учет при сканировании только файлов и директорий одной и той же файловой системы. Например, если есть директория home/user/site.com, и пространство с файлами и директориями внутри нее примонтировано из директории на другом диске (/mnt/disk2/site.com), то по умолчанию ncdu посчитает, что директория /home/user/site.com занимает пространство на основном диске, хотя на самом деле — на диске disk2. Использование ключа -x позволит отразить действительное положение дел на основном диске.

-r — режим "только для чтения", в данном режиме невозможно удаление файлов;

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

— сохранить результаты в файл:

Утилита du (от англ. disk usage) присутствует во всех UNIX-дистрибутивах по умолчанию и позволяет получить общую информацию о занятом месте.

При выполнении команды она выводит объем пространства, занимаемого каждым файлом и каталогом в текущем каталоге:

Используемые ключи

Для вывода занятого объема в читаемом виде (в килобайтах, мегабайтах и т.д.) требуется ключ -h, мы будем использовать его во всех командах ниже.

  • Например, можно начать с оценки размера всех директорий в корневой файловой системе. Для этого добавим ключи -s (для вывода итогового размера указанной директории) и -c (для вывода "итого"):
Читайте так же:
Компьютер не видит телефон через USB: почему и что можно сделать?

  • Полезный и удобный способ подсчета и сортировки:

  • Чтобы узнать размер конкретной директории, используйте ключ -s и указывайте путь к нужной директории:

  • Для вывода размера всех файлов и подкаталогов в каталоге используйте ключ -a.

  • Для вывода суммарного объема всех показанных в выводе элементов используется ключ -c:

  • Можно использовать опцию —exclude, чтобы исключить из вывода конкретный тип файлов.

  • Еще одна полезная опция — вывод времени последнего изменения файла. Для этого используется —time:

Нюансы

Несоответствие данных du, ncdu и ПО

Иногда можно столкнуться с ситуацией, когда утилиты du и ncdu показывают меньший объем, чем выводится в панели управления; либо же вы удаляете файлы, но ваше ПО сообщает, что свободного пространства по-прежнему недостаточно.

В этом случае для проверки стоит воспользоваться командой df, которая позволит получить данные именно о файловой системе (в то время как du и ncdu показывают именно физический объем на диске):

Вероятнее всего, в выводе будет информация о занятости 100% пространства.

Это связано с тем, что иногда при удалении файла он остается доступен какому-либо запущенному процессу, из-за чего файловая система по-прежнему учитывает его в общем объеме занятого пространства.

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

После чего перезапустить эти процессы:

Например, в выводе ниже этот процесс — httpd, и именно его нужно перезапустить:

Анализ использования диска при помощи ncdu

Многим пользователям UNIX и Linux известны утилиты du и df, позволяющие анализировать количество занятого и свободного дискового пространства. Это отличные консольные инструменты из разряда тех, которыми пользуются практически каждый день. В сегодняшней статье я хочу поделиться с вами недавно открытой для себя утилите ncdu — основанном на ncurses аналоге du.

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

Бинарные пакеты ncdu присутствуют в репозиториях всех современных дистрибутивов Linux, *BSD; кроме того есть готовые пакеты под Mac и даже Solaris. Всем пользователям нетрадиционной ориентации, желающим получить больше информации или собрать это чудо из исходников, торжественно сообщаю домашний адрес утилиты. В своём же уютненьком Arch Linux я без лишних телодвижений сделал следующее:

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

ncdu

После того, как сканирование будет завершено, вы сможете при помощи стрелок и клавиши Enter перемещаться по дереву подкаталогов:

ncdu

Нажатая клавиша i покажет подробную информацию о текущем элементе:

ncdu

Клавиатурные сокращения

  • n — сортировка по имени в обоих направлениях;
  • s — сортировка по размеру в обоих направлениях;
  • d — удалить текущий файл или каталог;
  • t — включение/отключение вывода каталогов перед файлами;
  • g — включение/отключение вывода процентного соотношения и графика;
  • a — переключение между выводом реального размера элементов и занимаемым пространством на диске;
  • e — показать/скрыть скрытые и исключённые файлы
  • r — пересчитать текущий каталог.

Флаги и параметры

ncdu в качестве единственного параметра принимает путь к каталогу для сканирования, например:

Поскольку работа du-подобных утилит может занимать много времени, в ncdu предусмотрен вывод в файл, коотрый можно позже просмотреть. Чтобы сохранить результаты работы ncdu в файл, используется флаг -o с указанием путь к файлу в качестве параметра:

Позже, когда утилита завершит свою работу и вам понадобится ознакомиться с результатами, вы можете открыть ранее сохранённый файл:

В качестве пути к файлу может быть указан ‘-‘ , но об этом немного ниже.

При помощи флага -0 вы можете запретить утилите совершать какой-бы то ни было вывод до тех пор, пока вся информация не будет собрана. Данный флаг имеет смысл использовать в случае, если утилита работает в графическом режиме или же выводит данные в stdout . Флаг -1 поход на предыдущий с тем отличием, что построчно выводит в stdout информацию о процессе сканирования.

Читайте так же:
Облачное хранилище Mega: 50 ГБ бесплатно

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

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

Также, среди оставшихся полезных опций следует отметить:

  • -x — ограничивает ncdu границами текущей файловой системы;
  • —exclude шаблон — позволяет определить шаблон имён файлов, подлежащих исключению из результатов сканирования; этот флаг можно использовать многократно
  • -X путь_к_файлу — действует аналогично предыдущему флагу, позволяя определить перечень шаблоном имён в отдельном файле

Сканирование удалённых ФС

Используя старый-добрый ssh и флаги ncdu, можно запустить ncdu на удалённой системе, а результаты просмотреть локально:

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

ncdu — это NCurses Disk Usage, то есть известная программа du с интерфейсом curses, она поможет определить, какие директории используют ваше место на диске.

Размер программы 81 килобайт и она супер простая в использовании. Многие пользователи оценили эту программу и сравнивают её с WinDirStat для Linux — абсолютно идеально подходит для оценки потребления диска и для сценариев поиска папок и файлов, которые можно удалить когда закончилось место на диске.

Как установить ncdu

Программа ncdu присутствует во многих дистрибутивах в стандартных репозиториях.

Для установки ncdu в Linux Mint, Ubuntu, Debian, Kali Linux и их производные выполните:

Для установки ncdu в Arch Linux, BlackArch и их производные выполните:

Как пользоваться ncdu

Использование программой элементарное, для сканирования и обзора текущей директории, в которой вы находитесь, просто запустите программу:

Как найти директории, которые занимают больше всего места в Linux

Чтобы просканировать всю файловую систему — например, вашу корневую файловую систему, то нужно указать путь — для корня это / (слэш). Также пригодиться опция -x — она говорит программе не выходить за пределы текущей файловой системы, то есть считать только файлы и директории на том диске, который сканируется. Дело в том, что к корневой файловой системе могут быть смонтированы другие диски — и без этой опцией они также будут посчитаны.

Управление ncdu

У ncdu псевдографический интерфейс с которым можно взаимодействовать с помощью клавиш.

Для выхода из программы нажмите q.

Для перемещения по каталогам используйте курсорные клавиши вверх-вниз, либо кнопки j (вниз) и k (вверх).

Для перехода в выбранную директорию используйте одну из следующих кнопок:

  • курсор вправо
  • ENTER
  • l

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

  • курсор влево
  • <
  • h

Также в родительскую директорию можно перейти нажав на .. (две точки) с помощью ENTER, курсора вправо или l.

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

  • n — сортировка по имени файла (нажмите ещё раз для обратного порядка)
  • s — сортировка по размеру файла (нажмите ещё раз для сортировки по возрастанию)
  • C — сортировка по количеству элементов (нажмите ещё раз для сортировки по возрастанию)
  • M — сортировать по времени модификации (mtime) последнего дочернего элемента (нажмите ещё раз для сортировки в обратном порядке). Для этой функции требуется запустить программу с флагом -e — о нём будет рассказано ниже. Смотрите также «Время создания, доступа и изменения файла: что это, как их узнать и изменить. Как найти файлы по их времени создания, изменения или последнему открытию».

t — для показа директорий перед сортировкой файлов

Читайте так же:
Как телефон использовать как микрофон для компьютера

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

Для удаления выбранной директории нажмите кнопку d. Если содержимое директории не соответствует или больше не существует в файловой системе, то будет показано сообщение об ошибке.

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

Переключателем c можно включать и отключать показ счётчика дочерних элементов.

Переключатель m показывает последнее время модификации (mtime) дочернего элемента. Требует флаг -e.

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

Чтобы показать информацию о текущем выбранном элементе, нажмите i.

Для обновления/пересчёта текущей директории, нажмите r.

Для запуска оболочки в текущей директории нажмите кнопку b.

Обозначение папок и файлов в ncdu

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

! — во время чтения этой директории произошла ошибка.

. — произошла ошибка во время чтения поддиректории, поэтому указанный размер может быть неверным.

< — файл или директория исключены из статистики по используемому шаблону исключения.

> — директория находится на другой файловой системе (на другом диске или является виртуальной файловой системой).

@ — это не файл и не папка (символическая ссылка, сокет, …).

H — такой же файл уже был посчитан (жёсткая ссылка).

e — пустая директория.

Как включить режим расширенной информации в ncdu

Для включения режима расширенной информации нужно при запуске программы указать опцию -e. Это приведёт к тому, что кроме обычной информации о файле, для каждой папки и файла также будут прочитаны данные о его владельце, правах доступа и о времени последнего изменения. Это потребует большего использования памяти (примерно на 30%) и большего размера файла вывода при экспорте данных:

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

Это позволяет просматривать и сортировать по последнему дочернему mtime или времени изменения, используя кнопки «m» и «M» соответственно.

Опции интерфейса

-0

Не выводить какую либо информацию во время сканировании директории или импорте файла. Исключением являются произошедшие фатальные ошибки. Ncurses не будет инициализирован пока не завершиться сканирование. Когда экспортируются данные с опцией "-o", ncurses не будет инициализирован вовсе. Эта опция применяется по умолчанию при экспорти из стандартного ввода.

-1

Похожа на "-0", но показывает информацию о процессе сканирования одной строкой вывода. Эта опция применяется по умолчанию при экспортировании в файл.

В некоторых случаях интерфейс браузера ncurses, который вы увидите после завершения сканирования/импорта, может выглядеть искажённым при использовании этой опции. Если вы не экспортируете в файл, то опция «-2», вероятно, является лучшим выбором.

-2

Эта опция предоставляет полноэкранный интерфейс ncurses во время сканирования директорий или импорта из файла. Только этот интерфейс будет предоставлять информацию о нефатальных ошибках во время сканирования.

-q

Тихий режим. Во время сканирования или импорта, ncdu по умолчанию будет обновлять экран 10 раз в секунду. Эта опция включит тихий режим, во время которого обновление экрана будет уменьшено до каждых 2 секунд.

Используйте эту функцию для сохранения пропускного канала с удалённым хостом (при анализе другого компьютера). Эта опция не имеет эффекта когда используется "-0".

-r

Читайте так же:
Ошибка сервера DF DFERH 01 — как это исправить при работе с Play Market

Режим только чтение. Он отключит встроенную возможность удаления файла. Эта опция не имеет эффекта когда используется "-o", поскольку в этом случае не будет браузера интерфейса.

Она не имеет эффекта когда используется "-f", поскольку в этом случае функция удаления всё равно отключена.

Внимание: эта опция предотвратит только удаление из файлового браузера. По прежнему возможно открыть шелл из ncdu и удалить или изменить файлы оттуда. Для отключения и этой функции, укажите опцию "-r" дважды (смотрите "-rr").

-rr

Эта опция в дополнении к эффекту "-r", также отключит возможность открытия шелла из файлового браузера.

—si

Выводит размеры используя префикс 10, то есть, степеней от 1000 (KB, MB и т. д.) как определено в International System of Units (SI), вместо обычных префиксов на основе 2, то есть степеней 1024 (KiB, MiB и т.д.).

—confirm-quit

Если указать эту опцию, что перед выходом из ncdu будет требоваться подтверждение. Очень полезно если вы случайно нажимаете 'q' во время или после долгого сканирования.

—color СХЕМА

Выбрать цветовую схему. В настоящее время распознаются только две схемы: off для отключения цветов (применяется по умолчанию) и dark для цветной схемы предназначенной для тёмных фонов.

Опции сканирования

Эти опции оказывают эффект на процесс сканирования и не имеют эффекта во время импортирования информации о директориях из файла.

-x

Уже рассмотрена выше — означает не учитывать другие смонтированные файловые системы.

—exclude ШАБЛОН

Исключает файлы, которые совпадают с ШАБЛОНом. Эти файлы по умолчанию будут отображены, но не будут посчитаны для статистики использования диска. Этот аргумент может быть добавлен несколько раз для добавления нескольких шаблонов.

-X ФАЙЛ, —exclude-from ФАЙЛ

Исключить файлы, которые соответствуют любому шаблону в ФАЙЛе. Шаблоны должны быть разделены новой строкой.

—exclude-caches

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

-L, —follow-symlinks

Следовать символическим ссылкам и считать размер файлов, на которые они указывают.

Как экспортировать информацию об использовании диска и импортировать для анализа

Для этого используются опции -o ФАЙЛ (для экспорта данных в файл) и -f ФАЙЛ (для импорта данных в файл).

-o ФАЙЛ

Экспортирует всю необходимую информацию в ФАЙЛ вместо открытия его в интерфейсе браузера. Если в качестве ФАЙЛа указано "", то данные пишутся в стандартный вывод.

-f ФАЙЛ

Загружает указанный файл, которые ранее был создан с опцией "-o". Если ФАЙЛ указан как "", то происходит считывание из стандартного ввода.

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

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

Вы также можете одновременно экспортировать директорию и изучать её содержимое сразу как сканирование будет завершено:

Это же самое возможно и при сжатии gzip, но немного запутанно:

Для удалённого сканирования системы, но изучения её файлов локально:

Опция "-C" в ssh включает сжатие, которое будет очень полезным при медленных соединениях. Удалённое сканирование и локальное изучение имеют два больших преимущества по сравнению с запуском ncdu непосредственно на удалённой системе: вы можете бродить по папкам просканированной директории на локальной системе без каких-либо сетевых задержек; и ncdu не хранит всю структуру директорий в памяти при экспортировании, поэтому вы не будете потреблять много памяти на удалённой системе.

Использование ncdu с cron

Для экспорта по заданию работы cron, убедитесь, что заменили "-1" на "-0" для подавления любого необязательного вывода.

голоса
Рейтинг статьи
Ссылка на основную публикацию