5 лучших инструментов для мониторинга использования дисков и разделов linux

Пакеты брать будете?

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

Скажем, какой утилитой смотреть существующие в системе интерфейсы? Кто сказал
ifconfig? На современных системах ifconfig, как правило, уже вообще отсутствует, ибо есть

1 $ipa

Вроде выглядит немного по-другому, а вроде то же самое. Кстати, для управления сетевыми мостами из консоли часто необходимо ставить пакет bridge-utils. Тогда в консольке появится утилита
brctl, с помощью которой можно будет их просматривать (
brctl show), ну и менять. Но иногда бывает по-другому. Мне встречался случай, когда бриджи были, а brctl их не показывал. Оказалось, что для их создания использовался Open vSwitch и кастомный модуль ядра, для настройки которого надо использовать другую утилиту —
ovs-vsctl. Если вдруг у тебя окружение на OpenStack, где эта штука активно используется, — может быть полезно.

Дальше — как насчет таблиц маршрутизации? Как, говоришь,
route-n? Нет, мимо. Сейчас чаще используются
netstat-nr и
ip route show. Ну и самое банальное — как посмотреть открытые порты и процессы, которые их запросили? Например, вот так:

1 $sudo netstat-tnlp

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

1 $sar-nDEV1

Да, sar — это еще одна отличная утилита для мониторинга. Умеет показывать не только сетевые операции, но и диски и активность процессора. Почитать о ней можешь, например, в статье «Простой мониторинг системы с помощью SAR».

Также sar позволяет мониторить открытие/закрытие соединений и ретрансмиты (это повторные отправки тех же данных, когда сетевое оборудование сбоит или коннект крайне нестабильный, очень помогает траблшутить) в реальном времени.

1 $sar-1TCP,ETCP1

Ну и последнее — конечно, по порядку, а не по значению — это просмотр самого сетевого трафика. Чаще всего для этого используют две утилиты: tcpdump и wireshark. Первая — консольная, ей можно, к примеру, запустить прослушивание на всех интерфейсах и записать трафик в дамп-файл в формате pcap:

1 $tcpdump-wtest.dump

Вторая же — графическая. Из нее можно точно так же запустить прослушивание, а можно просто открыть в ней готовый файл дампа, слитый с удаленного сервера. И наслаждаться красотой слоев модели OSI (точнее, TCP/IP).

Wireshark

Интерфейс системы и визуальные эффекты

Чаще всего Linux-дистрибутивы для визуализации используют одну из популярных оболочек, таких как GNOME, Mate и KDE.

Deepin использует оболочку собственной разработки под названием Deepin Desktop Environment на основе библиотек Qt и Go, с полной поддержкой HTML5 и Chromium.

За счет этого достигается максимально близкое внешнее сходство с macOS. Однако логика работы контекстных меню, системные функции копируют Windows.

Многим так привычнее.

При первом включении система предлагает выбрать «красивый» или «быстрый» интерфейс: первый реализует концепцию док-станции, продуманной до мелочей, вторая почти полностью копирует обычный Windows.

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

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

А вот предлагаемые к выбору наборы иконок почти не отличаются друг от друга. Впрочем, для NIX-владельцев и это выглядит неплохо.

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

Где хранить коллекцию лютневой музыки

Если ты хоть раз размечал диск руками (например, при установке Arch Linux), то наверняка знаешь о существовании утилиты
fdisk. С ее помощью проще всего посмотреть разделы на этом самом диске:

1 $sudo fdisk-l

Есть ее более развесистая версия с псевдографическим интерфейсом, называется cfdisk, а также еще пара утилит, которые, на первый взгляд, делают весьма похожие вещи — позволяют управлять разделами на дисках. Это parted (к которому, кстати, есть неплохой GUI на GTK в лице gparted) и gdisk. Наличие такого зоопарка связано с тем, что существует несколько вариантов структурирования разделов на диске, и исторически для разных вариантов использовались разные программы. Наверняка ты уже встречал такие аббревиатуры, как MBR и GPT. Я не буду подробно останавливаться на различиях, но почитать можно, например, в статье «Сравнение структур разделов GPT и MBR». Там оно обсуждается с позиции настройки Windows, но суть от этого не меняется. И да, в современном же мире fdisk уже умеет работать с обоими вариантами, как и parted, поэтому выбирать можно исключительно из личных предпочтений.

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

1 $df-h

Как и раньше,
-h тут отвечает за «человеческий» вывод размеров. Ну и как ты помнишь, размеры файлов у нас можно посмотреть командой
du:

1 $du-h/path/to/folder

Наверняка часть читателей сейчас подумала: «Ну что за банальщина, это даже школьники знают, давай чего посвежее». Ладно, давай привнесем реалтайма, как уже делали с оперативкой:

1 $iostat-xz1

Эта команда выводит средние значения количества операций чтения-записи для всех блочных устройств в системе, обновляя информацию раз в секунду. Это больше «железные» параметры, поэтому есть еще одна команда для просмотра статистики I/O попроцессно, и она, по аналогии, называется iotop.

1 $sudo iotop

При попытке запуска без прав root она начнет очень мило оправдываться, что, мол, есть один такой баг CVE-2011-2494, который может приводить к утечке потенциально важных данных от одних пользователей другим, «поэтому настрой-ка ты, дружочек, sudo». Оно и верно.

Команда fdisk

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

Просмотр всех разделов диска.Одним из наиболее часто используемых аргументов в команде fdisk является «-l», в котором перечислены все доступные разделы в вашей системе Linux с именами их устройств.

# fdisk -l

Просмотр сведений о конкретном разделе диска.Аргумент «-l» предназначен для просмотра всех доступных разделов. Вы также можете просмотреть сведения о конкретном разделе, указав имя устройства рядом с аргументом «-l», как показано ниже:

# fdisk -l /dev/sda

Просмотр всех команд fdiskЕсли вам нужно просмотреть все команды fdisk для определенного жесткого диска / dev / sda, просто введите fdisk, а затем имя жесткого диска, например « fdisk / dev / sda », и на следующем экране, введите «m», чтобы просмотреть все команды утилиты fdisk.

Распечатать сведения обо всех таблицах разделов.
Как и в предыдущей операции, введите « fdisk / dev / sda » и на следующем экране введите «p», он распечатает все сведения об этом конкретном жестком диске / dev / sda.

  • Удаление разделаЧтобы выполнить любую операцию на каком-либо конкретном диске, вы должны находиться в командном режиме fdisk для этого конкретного жесткого диска, например, «fdisk / dev / sda», и ввести d для операции удаления. Как только вы введете «d», система подскажет, какой номер раздела необходимо удалить, и как только вы введете номер раздела и затем введете «w», чтобы записать таблицу на диск и выйти из процесса. Будьте осторожны с операцией удаления, так как она приведет к удалению всего раздела и его данных из вашей системы.
  • Создать новый разделЧтобы создать новый раздел, как обычно, войдите в командный режим fdisk «fdisk / dev / sdb» и введите «n», чтобы создать новый раздел, и вам будет предложено создать первичный «p» или расширенный раздел « e », а затем введите размер цилиндра с помощью« + 11G », где это означает, что в качестве размера для цилиндра будет установлено 11 ГБ.

4. Команда sfdisk

sfdisk означает fdisk с возможностью создания сценариев , sfdisk аналогична команде fdisk, но имеет больше функций, чем fdisk, поскольку она может отображать размер раздела в МБ. sfdisk также поддерживает таблицы разделов GPT, Sun, MBR и SGI, но sfdisk не может создавать стандартные разделы для Sun и меток диска SGI, где команда fdisk может создавать разделы этих дисков.

# sfdisk -l -uM

5. Команда cfdisk

cfdisk означает curses fdisk , cfdisk — еще одна утилита командной строки, которая помогает с легкостью управлять разделами вашего Linux-диска. Благодаря простому в использовании пользовательскому интерфейсу можно легко создавать, редактировать, удалять или изменять разделы.

Используйте команду ниже для просмотра разделов определенного диска с помощью cfdisk

# cfdisk /dev/sda

Помимо приведенного выше списка, « команда parted » также может использоваться для создания, редактирования и просмотра разделов.

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

Где хранить коллекцию лютневой музыки

Если ты хоть раз размечал диск руками (например, при установке Arch Linux), то наверняка знаешь о существовании утилиты . С ее помощью проще всего посмотреть разделы на этом самом диске:

Есть ее более развесистая версия с псевдографическим интерфейсом, называется cfdisk, а также еще пара утилит, которые, на первый взгляд, делают весьма похожие вещи — позволяют управлять разделами на дисках. Это parted (к которому, кстати, есть неплохой GUI на GTK в лице gparted) и gdisk. Наличие такого зоопарка связано с тем, что существует несколько вариантов структурирования разделов на диске, и исторически для разных вариантов использовались разные программы. Наверняка ты уже встречал такие аббревиатуры, как MBR и GPT. Я не буду подробно останавливаться на различиях, но почитать можно, например, в статье «Сравнение структур разделов GPT и MBR». Там оно обсуждается с позиции настройки Windows, но суть от этого не меняется. И да, в современном же мире fdisk уже умеет работать с обоими вариантами, как и parted, поэтому выбирать можно исключительно из личных предпочтений.

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

Как и раньше, тут отвечает за «человеческий» вывод размеров. Ну и как ты помнишь, размеры файлов у нас можно посмотреть командой :

Наверняка часть читателей сейчас подумала: «Ну что за банальщина, это даже школьники знают, давай чего посвежее». Ладно, давай привнесем реалтайма, как уже делали с оперативкой:

Эта команда выводит средние значения количества операций чтения-записи для всех блочных устройств в системе, обновляя информацию раз в секунду. Это больше «железные» параметры, поэтому есть еще одна команда для просмотра статистики I/O попроцессно, и она, по аналогии, называется iotop.

При попытке запуска без прав root она начнет очень мило оправдываться, что, мол, есть один такой баг CVE-2011-2494, который может приводить к утечке потенциально важных данных от одних пользователей другим, «поэтому настрой-ка ты, дружочек, sudo». Оно и верно.

 Загрузка …
 

#6. Cacti

Ключевая особенности:

  • Cacti – это инструмент мониторинга сети с открытым исходным кодом, The Cacti Group, Inc.
  • Самая полезная функция Cacti – неограниченный инструмент для создания графиков
  • В Cacti возможен аппаратный мониторинг.
  • Мы также можем выполнять операции мониторинга веб-сервера на Cacti.
  • В Cacti встроенная поддержка SNMP.
  • В Cacti мы можем отображать использование пропускной способности сети, оперативное использование памяти, загрузку процессора и другую статистику.

Преимущества:

  • Cacti- это управление на основе политики. по которой выбранный администратор создает и назначать пользователей.
  • Cacti можно расширить для любого источника с помощью сценариев оболочки.
  • Cacti имеет гибкие источники данных.
  • Распределение удаленных данных может быть также выполнено с помощью Cacti.

см. также:

#9. Netdata

Ключевые особенности:

Netdata – это распределенный мониторинг производительности и работоспособности систем.

Используя Netdata, мы можем отслеживать:

  1. Сервер
  2. Системные приложения
  3. Контейнеры
  4. Веб-приложения
  5. Виртуальные машины
  6. Базы данных
  7. Устройства IOT.

Мы можем контролировать 1000 устройств с помощью Netdata.

Нам нужно будет установить плагин python для мониторинга баз данных PostgreSQL.

Преимущества:

  • Netdata представляет собой инструмент мониторинга с открытым исходным кодом.
  • Netdata также может контролировать определенные устройства SNMP.
  • Netdata имеет хорошие интерактивные веб-дашборды.
  • Netdata работает быстро и эффективно.
  • Netdata имеет открытый исходный код и не зависит от платформы.
  • Использование ОЗУ, мониторинг оптимизации ядра становится очень простым с помощью Netdata.

см. также:

Сам себе Большой Брат

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

У тех, кто далек от химии, но близок к IT, ассоциация немного другая, но в целом похожая — обычно это экран с кучей графиков, на которых творится какая-то магия, как в голливудских сериалах. Для многих администраторов так оно и выглядит — Graphite/Icinga/Zabbix/Prometheus/Netdata (нужное подчеркнуть) как раз рисуют красивый интерфейс, в который можно задумчиво глядеть, почесывая бороду и гладя свитер.

Большинство этих систем работают одинаково: на конечные ноды, за которыми мы хотим наблюдать, устанавливаются так называемые агенты, или коллекторы, а дальше все происходит по методике push или pull. То есть либо мы указываем этому агенту мастер-ноду, и он начинает периодически отсылать туда отчеты и heartbeat, либо же, наоборот, мы добавляем ноду в список для мониторинга на мастере, а тот уже, в свою очередь, сам ходит и опрашивает агенты о текущей ситуации.

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

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

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

1. Установка duf с помощью пакета DEB или RPM.

Установить duf с помощью пакета DEB или RPM очень просто благодаря официальным файлам пакета, предоставленным разработчиками.

Чтобы использовать этот метод, сначала перейдите на страницу релизов duf на GitHub. Затем щелкните файл с расширением .deb, если вы используете Debian или его производные, или с расширением .rpm, если вы используете RHEL или любые его производные, такие как Fedora, CentOS и т. д.

Если вы не хотите загружать пакет со страницы «Релизы», вы также можете использовать wget , чтобы получить пакет прямо в терминале.

Для этого проверьте, присутствует ли wget в вашей системе, выполнив:

Если вы используете дистрибутив на основе Debian, выполните приведенную ниже команду, чтобы получить duf:

В дистрибутивах на основе RHEL запустите:

Теперь у вас есть два варианта установки пакета. Вы можете либо использовать GUI-версию установщика пакетов вашей системы, либо установить его из командной строки.

Если вы предпочитаете подход с графическим интерфейсом, перейдите в каталог «Загрузки», щелкните правой кнопкой мыши файл пакета и выберите «Открыть с помощью установщика пакетов GDebi» или «Открыть с помощью установщика программного обеспечения» в зависимости от вашего дистрибутива Linux. После открытия установщика нажмите кнопку «Установить пакет» или «Установить», чтобы начать установку.

В качестве альтернативы, чтобы использовать метод CLI, откройте терминал и перейдите в каталог «Загрузки» с помощью команды cd. Затем, в зависимости от вашего дистрибутива Linux, введите соответствующую команду для установки пакета в вашей системе.

В дистрибутивах на базе Debian:

В дистрибутивах на основе RHEL:

Пользователи Arch могут установить duf из AUR с помощью помощника AUR, такого как Yay:

2. Установка duf с помощью Snap

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

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

Учитывая, что вы сделали эту часть, Чтобы установить duf через Snap, выполнив:

3. Соберите duf из исходного кода

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

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

plow

Plow пред­назна­чен для наг­рузоч­ного тес­тирова­ния HTTP-сер­веров. Он осно­ван на Go-биб­лиоте­ке fasthttp, которая стан­дар­тной реали­зации, что дела­ет его каким‑то ано­маль­но быс­трым, по мень­шей мере субъ­ективно.

Тест модуля http.server из Python 3

Plow уме­ет отда­вать ста­тис­тику в реаль­ном вре­мени не толь­ко в окне тер­минала, но и в бра­узе­ре (по стан­дарту встро­енный сер­вер дос­тупен на 18888-м пор­те).

За­пуск воз­можен из Docker или уста­нов­кой из исходни­ков:

Аль­тер­натива:

Ар­гумен­ты в целом ничего необыч­ного собой не пред­став­ляют: тут у нас стан­дар­тная для таких прог­рамм нас­трой­ка количес­тва потоков (), жела­емо­го количес­тва зап­росов (), вре­мени тес­та ( или , нап­ример) и HTTP-метода (). Про дру­гие парамет­ры мож­но под­робно про­читать в справ­ке прог­раммы (). Цель переда­ется без спе­циаль­ных парамет­ров.

Действия с диском внутри GNOME Disks

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

Вы можете выбрать между Quick и Slow вариантами. «Диски» либо просто перезапишут таблицу разделов и оставят данные технически неповрежденными (хотя и непригодными для использования без инструмента восстановления), либо перезапишут все данные на диске нулями.

Выбор между MBR и GPT немного сложнее. MBR расшифровывается как Master Boot Record и поддерживает до четырех разделов (но вы можете создать логический раздел, содержащий несколько разделов внутри него, что эффективно устраняет ограничение в четыре) и жесткие диски объемом до 2 ТБ.

GPT расшифровывается как GUID Partition Table и по существу устраняет четыре раздела и ограничения 2 ТБ. Так что выбор GPT новее и «лучше», но нет причин не использовать MBR, если его ограничения не влияют на вас.

Вы можете создавать образы вашего диска, создавая резервные копии информации. Если вам нужно восстановить диск с помощью образа, вы можете использовать эту утилиту. Это параметры «Create/Restore Disk Image». Просто убедитесь, что при создании образа у вас есть другой носитель, достаточно большой, чтобы его вместить.

Если вам интересно, насколько быстро работает ваш диск, вы можете протестировать его с помощью Benchmark Disk, чтобы увидеть, насколько высоки  скорости чтения и записи, а также время доступа (время, необходимое диску для поиска файла) .

Если вы считаете, что ваш диск ведет себя странно, вы можете взглянуть на данные SMART Data & Self-Tests, чтобы система обнаружила какие-либо неполадки в работе с диском.

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

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

Это связано с тем, что одно событие записи происходит быстрее, чем множество событий записи, когда объем записываемых данных одинакового размера. Просто имейте в виду, что его включение может привести к потере данных в случае отключения питания — данные, которые находятся в кэше, но еще не записаны на диск, исчезнут при отключении питания.

Какие существуют антивирусы для Linux?

Существует множество антивирусных программ для Linux. Ниже я выбрал 3 лучших, на мой взгляд, антивирусных приложения для Linux, которые защитят вашу систему от вредоносных программ и других онлайн угроз.

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

Страница сайта.

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

Сайт Comodo.

Chkrootkit — как следует из названия сканирует руткиты. Руткиты трудно обнаружить и удалить из системы. Это наборы вредоносных программ, предназначенных для взлома учетной записи пользователя root и сохранения доступа в течение длительного периода времени. Chkrootkit обычно используется системными администраторами для обнаружения вредоносных программ.

Утилита iostat

Если вас больше интересуют данные, относящиеся к самим дискам, а не к процессам или потокам, можете попробовать команду . Она тоже выводит некоторые данные о процессах, но они представлены в обобщённом виде.

Работа с iostat

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

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

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

Дополнительный инструмент: atop

Одной из замен команды является . Хотя эта команда и не нацелена исключительно на мониторинг дисковых операций, она даёт сведения о том, как процессы пользуются дисками, и, кроме того, предоставляет некоторые сводные сведения. Обычно после запуска в верхней части формируемого ей вывода имеется строка , в которой присутствуют сведения о диске. Эти данные, по мере приближения уровня использования диска к 100%, выделяются красным цветом. Данные, выводимые в нижней части, похожи на те, что даёт команда .

Работа с atop

Для сортировки процессов по уровню использования дисков можно воспользоваться клавишей . Это — полезный инструмент.

Вывод сведений об открытых файлах с помощью lsof

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

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

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

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