Утилиты gzip — gunzip
Пользователям всегда недостаточно дискового пространства, поэтому инструменты для сжатия данных всегда актуальны. Утилита позволяет осуществить преобразования файлов, после которых они будут занимать меньше дискового пространства.
paul@rhel55 ~$ ls -lh text.txt -rw-rw-r-- 1 paul paul 6.4M апр 17 13:11 text.txt paul@rhel55 ~$ gzip text.txt paul@rhel55 ~$ ls -lh text.txt.gz -rw-rw-r-- 1 paul paul 760K апр 17 13:11 text.txt.gz
Вы можете получить оригинал вашего файла, воспользовавшись утилитой .
paul@rhel55 ~$ gunzip text.txt.gz paul@rhel55 ~$ ls -lh text.txt -rw-rw-r-- 1 paul paul 6.4M апр 17 13:11 text.txt
Компьютеры учеников
#! /bin/sh sudo echo ‘Acquire::http::Proxy «http://192.168.0.100:3142/»;’>>/etc/apt/apt.conf sudo apt-get update sudo apt-get install scratch blender italc-client gimp inkscape kturtle audacity sudo cp /media/flash/clients/public/* /etc/italc/keys
Примечания:
- первая строчка для настройки локального репозитория, находящегося на учительском компьютере.
- в третьей строке перечисляйте весь софт, который вам надо установить.
- в четвертой строке копируются публичные ключи программы iTALC, необходимые для подключения сервера к клиентам.
Сохраняем этот файл script.sh. На ученических ПК запускаем его в консоли:
cd mediaflashclients sh script.sh
/media/flash – это индентификатор флешки в системе, у вас вместо слова flash будет что-то другое, например, что-то такое FG5FG-JH65T
Client Setup
Let’s add a Ubuntu Client to collectd server. Install the dependencies and required packages for the client.
Installing client packages on CentOS 7/8
Modifying Configuration
Edit the configuration of collectd on client system.
Below are the changes required in client side.
Enable the required plugins by removing “#”.
Enter the collectd server IP under network plugin and enable all other required plugins.
Starting the Client Service
Finally, enable and start the service.
Once service started on client system, switch back to collectd server and reload the interface. Now we should get the newly added client in the list.
That’s it, we have successfully installed and configure collectd monitoring server on Ubuntu and CentOS servers.
Утилита locate
Утилита имеет значительное отличие от утилиты , заключающееся в том, что она использует данные индексирования файловой системы для установления путей к файлам. Несмотря на то, что данный алгоритм поиска гораздо быстрее алгоритма с обходом всех директорий файловой системы, в случае его использования данные о файловой системе в подавляющем большинстве случаев являются устаревшими. В том случае, если данные индексирования файловой системы еще не собраны, вам придется осуществить их сбор путем выполнения команды (в дистрибутиве Red Hat Enterprise Linux для выполнения описанной операции понадобятся привилегии пользователя root).
$ locate Samba locate: не удалось выполнить stat () "/var/lib/mlocate/mlocate.db": Нет такого файла или каталога $ updatedb updatedb: не удалось открыть временный файл для "/var/lib/mlocate/mlocate.db" $ su - Password: # updatedb #
В большинстве дистрибутивов Linux для исполнения команды один раз в день используется планировщик задач.
Корректная процедура выполнения практического задания: стандартные инструменты систем Unix
-
1. Дайте пояснения относительно различий между следующими двумя командами. Этот вопрос является очень важным. Если вы не знаете ответа на него, вам следует снова обратиться к главе, посвященной работе с .
find /data -name "*.txt" find /data -name *.txt
В том случае, если описание расширения файлов находится в двойных кавычках, командная оболочка не будет преобразовывать его. Инструмент будет осуществлять поиск файлов с именами, оканчивающимися на в директории .
Если же описание расширения файлов используется без двойных кавычек, командная оболочка осуществит его раскрытие (разумеется, в том случае, если в директории расположен один или несколько файлов с расширением ). В этом случае утилита может вывести отличный результат или сообщение о синтаксической ошибке.
2. Дайте пояснения относительно различий между следующими двумя командами. Будут ли обе команды работоспособны в том случае, если в директории будут находиться 200 файлов с расширением ? А что будет в том случае, если в этой директории будут находится два миллиона файлов с расширением .odf?
find /data -name "*.odf" > data_odf.txt find /data/*.odf > data_odf.txt
В результате исполнения первой команды будет выведен список имен всех файлов с расширением из директории и всех поддиректорий. Командная оболочка перенаправит вывод команды в файл с заданным именем.
Вторая команда выведет список, состоящий из имен всех файлов с расширением из директории , а также имен всех файлов из поддиректорий с именами (директории ).
При работе с директорией с двумя миллионами файлов в результате раскрытия команды будет превышено допустимое для командной оболочки количество символов. Таким образом, конец строки результирующей команды будет потерян.
3. Создайте команду на основе утилиты find, которая будет осуществлять поиск всех файлов, созданных после 30 января 2010 года.
touch -t 201001302359 marker_date find . -type f -newer marker_date
Существует и другое решение:
find . -type f -newerat "20100130 23:59:59"
4. Создайте команду на основе утилиты find, которая будет осуществлять поиск всех файлов с расширением .odf, созданных в сентябре 2009 года.
touch -t 200908312359 marker_start touch -t 200910010000 marker_end find . -type f -name "*.odf" -newer marker_start ! -newer marker_end
Символ восклицательного знака перед параметром может рассматриваться как .
5. Подсчитайте количество файлов с расширением *.conf в директории /etc и всех поддиректориях.
find /etc -type f -name '*.conf' | wc -l
6. Ниже приведены две команды, выполняющие одну и ту же операцию: копирование файлов с расширением *.odf в директорию /backup/. По какой причине первая команда может быть заменена на вторую? И снова данный вопрос является очень важным.
cp -r /data/*.odf /backup/ find /data -name "*.odf" -exec cp {} /backup/ \;
Исполнение первой команды может завершиться неудачей в том случае, если в директории находится настолько много файлов, что их имена не уместятся в одну строку команды максимального размера.
7. Создайте файл с именем . Можете ли вы установить путь к данному файлу с помощью утилиты ? Почему это невозможно? Что нужно сделать для того, чтобы утилита locate возвращала путь к данному файлу.
Вы не можете установить путь к файлу с помощью утилиты , так как файл не был проиндексирован. Индексация должна осуществляться с помощью команды:
updatedb
8. Используйте утилиту find с параметром -exec для обработки всех файлов с расширением .htm, заключающейся в смене расширения на .html.
paul@rhel55 ~$ find . -name '*.htm' ./one.htm ./two.htm paul@rhel55 ~$ find . -name '*.htm' -exec mv {} {}l \; paul@rhel55 ~$ find . -name '*.htm*' ./one.html ./two.html
9. Выполните команду . После этого выведите информацию о текущей дате в формате YYYY/MM/DD.
date +%Y/%m/%d
10. Выполните команду . Выведите календарь для 1582 и 1752 годов. Заметили ли вы что-нибудь особенное?
cal 1582
Календари отличаются в зависимости от стран, выбранных пользователями при настройке системы. Обратитесь к документу, расположенному по адресу: http://linux-training.be/files/studentfiles/dates.txt.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Глава 17. Фильтры | Глава 19. Регулярные выражения |
Возможности
Модульность / Переносимость
Все в collectd выполняется с помощью плагинов. Кроме, разумеется, анализа конфигурационного файла. Это означает, что у основного демона нет внешних зависимостей и он должен работать практически на всех системах, соответствующих POSIX. Демон, согласно сообщениям, работает на Linux, Solaris, Mac OS X, FreeBSD, NetBSD и OpenBSD. Вполне вероятно, что демон будет работать на других UNIX подобных системах.
Значения, используемые по умолчанию
Настройка, используемая в collectd, настолько проста, насколько это возможно: вам не нужно конфигурировать ничего, кроме тех модулей, которые вы загружаете, но вы, если захотите, можете настроить демон по своему вкусу.
Маштабирование решения
С помощью collectd можно обрабатывать любое количество хостов, от одного до нескольких сотен (или, возможно, тысяч, но об этом никто пока не сообщал). Это достигается за счет того, что ресурсы используются настолько эффективно, насколько это возможно, например, несколько операций заменяются одной, несколько пакетов объединяются в один и т.д. Используется многопоточность, что позволяет одновременно выполнять несколько плагинов — без задержек, возникающих из-за ввода-вывода.
Поддержка протокола SNMP
В различном сетевом оборудовании, например, в коммутаторах, маршрутизаторах, стойках систем мониторинга, термометрах, источниках бесперебойного питания и так далее, широко применяется протокол Simple Network Management Protocol (SNMP). Плагин SNMP позволяет использовать протокол SNMP для осуществления запросов и перенаправления их результатов в collectd, например, для перенаправления их на сервер, находящийся в другом месте.
Интеграция с системами мониторинга
Начиная с версии 4.3 в collectd была добавлена система уведомлений и пороговых значений. Она позволит вам с помощью демона отправлять уведомления и облегчает проверку пороговых значений. Но collectd не является средством мониторинга. Для того, чтобы сделать систему уведомлений еще более удобной, вероятно нужно добавить некоторые функции, но на данный момент проект collectd не подходит для решения сложных задач мониторинга.
Для того, чтобы сделать возможной интеграцию collectd с популярным средством мониторинга
, был написан специальный плагин к Nagios.
Он называется
и позволяет использовать Nagios для отслеживания ситуаций, когда определенные величины попадают
в заданные диапазоны значений.
Как работают сокеты?
Сокеты просто предоставляют фактическое оборудование для перемещения данных. Сокеты на основе TCP называются потоковыми сокетами, куда все данные будут поступать по порядку. Сокеты на основе UDP — это сокеты для дейтаграмм, для которых порядок (или даже доставка) не гарантируется. Существуют также необработанные (raw) сокеты, которые не имеют каких-либо ограничений и используются для реализации различных протоколов и утилит, которые должны проверять низкоуровневый сетевой трафик, например Wireshark.
Сокеты обычно по-прежнему используют TCP или UDP, поскольку они не являются чем-то особенным, кроме причудливого канала внутри ядра. TCP и UDP — это транспортные протоколы, которые определяют, как данные передаются с места на место, но не заботятся о том, что это за данные. TCP и UDP обеспечивают платформу для большинства других протоколов, таких как FTP, SMTP и RDP, которые работают на более высоких уровнях.
Приложение может использовать несколько иную реализацию TCP; потоковые сокеты используют протокол SOCK_STREAM, который TCP также использует для транспорта почти всё время, и хотя они в основном взаимозаменяемы, технически они немного отличаются. Хотя это низкоуровневый материал и на самом деле это не то, о чем вам придётся беспокоиться, просто знайте, что большая часть трафика, отправляемого через сокеты домена UNIX, основана на TCP или UDP или, по крайней мере, очень похожа на трафик этих транспортных протоколов, и TCP отправляется через сокеты домена UNIX быстрее, чем TCP через сетевые интерфейсы, такие как порты.
Что такое сокеты?
Сокеты — это прямая связь между двумя процессами. Представьте, что вы хотите позвонить своему другу по дороге; вы можете сделать звонок, направив его через вашу телефонную компанию и обратно в их дом, или вы можете провести провод прямо в их дом и отключить посредника. Последнее, очевидно, непрактично в реальной жизни, но в мире Unix очень распространено устанавливать эти прямые связи между программами.
Собственное имя для сокетов unix — сокеты домена Unix (Unix Domain Sockets), потому что все они находятся на одном компьютере. В некотором смысле сокеты — это сеть, полностью содержащаяся в ядре; вместо того, чтобы использовать сетевые интерфейсы и соответствующие накладные расходы для отправки данных, те же самые данные могут быть отправлены напрямую между программами.
Несмотря на создание файлов на диске, сокеты Unix на самом деле не записывают данные, которые они отправляют на диск, так как это было бы слишком медленно. Вместо этого все данные хранятся в памяти ядра; единственная цель файла сокета — поддерживать ссылку на сокет и давать ему разрешения файловой системы для управления доступом. В современных системах сокеты обычно расположены в директории /usr/lib/systemd/system/. Например, сокет MariaDB обычно находится по адресу:
/usr/lib/systemd/system/mariadb.socket
Этот файл ничего не содержит, и вы не должны изменять его напрямую, за исключением разрешений, где это применимо. Это просто имя.
Использование lynis в Unix/Linux
Lynis выполняет сотни отдельных тестов, чтобы определить состояние безопасности системы. Сама проверка безопасности состоит в выполнении набора шагов от инициализации программы до его отчета:
- Определяет операционную систему.
- Поиск доступных инструментов и утилит.
- Проверка Lynis обновлений.
- Запуск тестов для включенных плагинов.
- Запуск тестов безопасности для каждой категории.
- Состояние отчета проверки безопасности.
Во время сканирования технические данные о сканировании хранятся в лог-файл. В то же время результаты (предупреждения, предложения, сбор данных) хранятся в файле отчета.
Оппортунистическое сканирование
Сканирование Lynis является оппортунистическим: оно использует то, что может найти.
Например, если он видит, что вы используете Apache, он будет выполнять начальный раунд тест связанныq с Apache. Если во время сканирования Apache, он также обнаружит SSL/TLS конфигурацию, то он будет выполнять дополнительные шаги для аудита. При этом он будет собирать обнаруженные сертификаты, чтобы впоследствии их можно было отсканировать.
Углубленное сканирование безопасности
Выполняя оппортунистическое сканирование, инструмент может работать практически без зависимостей. Чем больше он найдет, тем глубже будет аудит. Другими словами, Lynis всегда будет выполнять сканирование, настроенное для вашей системы.
Плагины для Lynis
- Docker Containers.
- File Integrity.
- File sytems.
- Firewalls.
- Memory.
- Processes plugin.
- Software plugin.
Для подробной информации, используйте:
# man lynis
Выполним полную проверку системы в «тихом» режиме (иначе после каждого блока проверок придется подтверждать действия вводом с клавиатуры):
# lynis -c -Q
По завершению сканирования, внимательно изучаем отчет. Желательно в первую очередь исправить все Warnings и по мере возможности, выполнить рекомендации секции Suggestions. Также порадовал параметр Hardening index, который отображает числовое значение уровня защищенности сервера.
Некоторые полезные опции:
- —checkall, -c : Запуск сканирования.
- —check-update : Проврка обновлений для Lynis.
- —cronjob : Запускает Lynis как cronjob (включает в себя «-c» и «-Q» опции).
- —help, -h : Показывает помощь.
- —quick, -Q : Не ждите ввода пользователя, кроме ошибок.
- —version, -V : Выводит Lynis версию.
Создание Lynis Cronjobs
Если вы хотите создать ежедневный отчет о проверке своей системы, вам нужно установить для него задание cron:
# crontab -e
Добавьте следующее задание cron с параметром -crontab, все специальные символы будут проигнорированы из вывода, и сканирование будет полностью автоматизировано:
00 12 * * * root lynis -c -Q --auditor "automated" --cronjob
Данная задание будет выполнятся каждый день, в 12.00 и будут вести отчет в /var/log/lynis.log файл.
Обновление Lynis
Если вы хотите обновить lynis, просто введите следующую команду, чтобы загрузить и установить последнюю версию lynis:
# lynis --check-update
Вот и все, статья «Установка lynis в Unix/Linux» завершена.
Introduction
collectd collects the system and application performance metrics. It has hundreds of Plugins. The latest stable release of Collectd 5.9.2 released on 1st of October 2019 and licenced under MIT License & GNU General Public.We are going to install collected monitoring on Ubuntu 20.04 LTS. The below steps work well with Ubuntu 16.04 LTS and Ubuntu 18.04 LTS as well. If you looking to install collectd on CentOS 7 or 8 the required steps are included as well.
By default, Ubuntu repository provides collectd packages. However, to install the same on CentOS required to enable with EPEL repository. Let’s enable the repo.
Install the EPEL repo by running yum command.
Installing Packages
To begin with, the installation installs the required dependencies with collectd package. This included few of dependencies support for Perl as well.
Installing on CentOS 7/8
If you are looking for quick up and running solution use docker to pull the images from
This won’t take more than 5 minutes.
Apache configuration
Edit the default apache configuration and enable the port.
By default it will be enabled, look at the line number 150.
Let’s enable collectd to listen on all interface, edit the configuration
Keep the existing config and append with below.
To make the changes restart the Apache service.
Configuring Collectd
To make few changes on collectd.conf edit the configuration and made the changes.
Uncomment plugin for network
By following under network plugin section, uncomment the server section and replace 127.0.0.1 to 0.0.0.0.
Look for plugin and uncomment the plugins needed.
Enable Web Interface
During the package installation, we have completed with installing git as well. Clone the git repo to start with configuring the web.
Navigate to the cloned repo under
Enable the execution permission on graphdefs.cgi.
Once done, navigate one step backwards to the main directory under the downloaded repo, and edit the python script.
Replace 127.0.0.1 to 0.0.0.0 in below line.
After changing, it should be look like below
It’s time to run the python script to start in background.
Incase, if you required to stop the service kill the service using
# killall python
Accessing Web UI of Collectd
Once we start the collectd web python script we are ready to access the web interface.
Let’s start to add one more client machine.
Linux везде
Linux может быть везде, но скорее всего, вы этого не видите и не знаете. Android, самая популярная мобильная операционная система в мире, является форком Linux. Вы не узнаете об этом из его запуска и интерфейса, но за кулисами стоит версия ядра Linux, модифицированная для использования на мобильных устройствах.
Большая часть интернета работает на Linux. В то время как варианты Windows и Unix питают некоторые серверы, подавляющее большинство серверов используют дистрибутивы Linux. Во многом это связано со свободным характером операционной системы, а также с тем, насколько она надежна, что означает меньшее время простоя. Unix не менее надежен во всех отношениях, но популярность Linux означает, что большинство людей выберут именно его.
Одним из самых громких появлений Linux за последние несколько лет является подсистема WLS. Это позволяет запускать утилиты Linux в Windows, что является большим преимуществом для веб-разработчиков и инженеров-программистов. У нас есть руководство о том, как начать работу с подсистемой Windows для Linux.
Linux захватывает мир штормом
В дополнение к различным предложениям Unix, было также доступно несколько Unix-подобных вариантов. Одним из них был MINIX, который был предназначен для академического использования. Разработчик программного обеспечения из Хельсинки по имени Линус Торвальдс был разочарован ограничениями MINIX и стремился создать подобное ядро, которое могло бы использовать преимущества нового компьютера, который он купил.
В то же время Ричард Столлман искал ядро для своего проекта GNU. Он начал проект GNU в 1983 году, создавая бесплатные замены для различных утилит Unix. В то время у него не было бесплатного ядра с открытым исходным кодом. Торвальдс уже использовал утилиты GNU со своим ядром и в конце концов так же поступили и другие.
Linux начал стремительно развиваться и к середине 1990-х проект приобрел популярность благодаря свободному дизайну как ядра, так и набора инструментов GNU. Несмотря на то, что стали доступны различные другие бесплатные операционные системы Unix, коммерческий характер первых 20 лет работы Unix нависал над ними. Это все еще влияет на битву Unix против Linux и по сей день.
Что такое Unix?
Хотя сам Unix стремится к простоте, точно описать, что это такое, непросто. Первоначально, Unix была операционной системой от AT&T, но в настоящее время торговая марка UNIX принадлежит Open Group. Unix также используется в качестве категории для описания целого семейства операционных систем.
Философия Unix служит общим ориентиром для программ, которого следует придерживаться. Суть в том, что каждая программа должна делать что-то хорошо. Вместо того, чтобы стремиться объединить все мыслимые возможности, инструмент Unix должен просто выполнять свою работу, в идеале, создавая выходные данные, которые могут напрямую использоваться в качестве входных данных другой программы.
В настоящее время доступно множество вариантов Unix, как в бесплатных, так и в коммерческих версиях.