Admin Guides | Сисадмин – Telegram
Admin Guides | Сисадмин
11.5K subscribers
1.41K photos
24 videos
34 files
594 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Каково назначение файлов '/etc/lvm/backup' и '/etc/lvm/archive'?

Ответ: Каждый раз, когда мы создаём или изменяем любой lvm раздел, резервная копия метаданных сохраняется в файле '/etc/lvm/backup', а архив метаданных ведется в файле '/etc/lvm/archive' file.

Используя команду vgcfgrestore мы можем восстановить метаданные группы томов lvm.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍5
Многие программы не работают на новых ARM-ноутбуках с Windows

Пользователи новых ноутбуков Samsung на базе ARM-процессора Qualcomm Snapdragon X Elite не смогут запускать множество популярных приложений.

Компания предупредила об этом на своем сайте в корейском разделе. 


#Microsoft ранее обещала, что их эмулятор Prism обеспечит совместимость программ, но это оказалось не так.

Несовместимы с ноутбуками такие программы, как «Антивирус Касперского», Avast SecureLine VPN, Adobe Illustrator и Google Drive.

#Samsung не гарантирует корректную работу ноутбуков с некоторыми принтерами и веб-сайтами местных финансовых организаций.

Это указывает на недостаточные усилия Microsoft для обеспечения запуска всех x86-приложений на ARM-платформе.

Apple успешно перевела свои компьютеры Mac на ARM-чипы, а Microsoft пытается сделать то же с #Windows-ноутбуками, предлагая ИИ-функции Copilot.

👀 Однако проблемы с совместимостью могут отпугнуть пользователей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣15😁62👍2
Дистрибутив Gentoo Linux

Gentoo — это свободная операционная система на базе Linux, разрабатываемая с 1992 года.

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

Сердцем Gentoo является portage — мощная и гибкая система настройки и распространения программного обеспечения (менеджер пакетов), которая выполняет многие ключевые функции.

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

Благодаря portage, Gentoo может стать идеальным защищенным сервером, рабочей станцией разработчика, встроенным решением или чем-то еще, что вы пожелаете.

Из-за его почти неограниченной адаптивности, Gentoo часто называют метадистрибутивом.


Также стоит отметить дистрибутивы Sabayon Linux и Calculate Linux, созданные на основе Gentoo:

Sabayon Linux — это выпущенный в конце 2005 года на основе Gentoo Linux дистрибутив, ориентирующийся, прежде всего на начинающих пользователей.

Как заявляют разработчики Sabayon, их дистрибутив следует философии «всё должно работать прямо из коробки», стремясь при этом предоставить пользователю большое количество, в отличие от Gentoo с её исходниками, уже готовых к использованию приложений, сохраняя возможность оптимизировать пакеты с ПО под себя.

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

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

Поскольку Calculate Linux является rolling-release дистрибутивом (т.е. дистрибутивом с непрерывным циклом обновления), вы устанавливаете систему один раз и далее только лишь обновляете её в течение всего срока службы вашего оборудования.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
И что делать в такой ситуации? 😅
😁24🔥6
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Объясните понятие ветвление (Контроль Версий).

Ответ: Одна из самых распространённых тем, которые должен знать DevOps инженер – ваше объяснение покажет ваши знания и опыт вашей прошлой работы с этой сферой.

Существуют три различных типах ветвления (branching) – ветвление задачи, функции и релиза.

Ветвление задачи включает в себя каждую задачу в различных ветвях, с ключами задач в названии ветви.

Ветвление функции хранит изменения и модификации внутри ветви. Когда работа с этой функцией завершена, ветвь, содержащая эту функцию, объединяется (merge) с мастер файлом.

Наконец, ветвление релиза позволяет вам клонировать ветвь, чтобы при её релизе, вы всё равно могли вносить изменение в клонированную версию.
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍7
Какая команда в Windows используется для просмотра и изменения настроек системного журнала?
Anonymous Quiz
51%
eventvwr
19%
logman
7%
wevtutil
23%
regedit
👍141👎1
Как в Bash прочитать ввод пользователя в переменную?

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

Ввод данных с помощью команды read

Чтобы попросить пользователя ввести данные, можно использовать команду read с опцией -p, которая позволяет вывести приглашение перед вводом:

read -p "Введите полное имя: " fullname
read -p "Введите желаемое имя пользователя в системе: " user


В этих строках введенные значения будут присвоены переменным $fullname и $user.

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

echo -n "Введите полное имя: "
read fullname


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

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

passwd "$user"
mkdir "$home"
chown "$user:$group" "$home"


Проверка пользовательского ввода

Пример конструкции, в которой проверяется пользовательский ввод. Если введено что-либо иное кроме y или yes (в любом регистре), скрипт завершится:

read -p "Продолжить? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1


Ввод данных с использованием zenity

Если вам нужно графическое окно для ввода данных, попробуйте zenity.

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

user=$(zenity --entry --text 'Пожалуйста, введите имя пользователя:') || exit 1


В этом примере будет показано следующее окно для ввода данных, а введенные данные будут присвоены переменной $user.

🔥Таким образом, команда read и утилита zenity предоставляют удобные способы запроса и получения данных от пользователя для использования в скриптах Bash.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍8🤣1
В Linux может появиться «чёрный экран смерти» при Kernel Panic

В новых версиях ядра Linux может появиться «чёрный экран смерти» при возникновении фатальной ошибки Kernel Panic.

Некоторым пользователям Linux не понравился недавно вышедший вариант BSOD («синий экран смерти») в Linux. 


Инженер Red Hat Хавьер Мартинес Канильяс, участвовавший в создании новой инфраструктуры DRM Panic, показал, что такая фатальная ошибка может стать «чёрным экраном смерти».

Проблема возникла после жалоб пользователей и разработчиков на то, что текущая реализация BSOD в Linux при DRM Kernel Panic в ядре Linux 6.10+ слишком похожа на аналогичную ошибку в Microsoft Windows.

Хавьер предложил вариант «чёрного экрана смерти» для тех разработчиков, кому такой подход будет более приемлем. 


В конце концов, Linux — это проект с открытым исходным кодом, и его можно настроить по своему усмотрению.

⚡️Хавьер опубликовал свой пример Linux с «чёрным экраном смерти» на примере DRM Kernel Panic на небольшом дисплее SSD1306, который можно доработать для ПК и ноутбуков.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3😁1😱1
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что происходит на фоне когда вы заходите по ssh на сервер Linux?

Ответ: Каждый раз, когда мы заходим по ssh на любой Unix сервер, устанавливает TCP соединение между Клиентом и Сервером по порту 22 (по-умолчанию, если не указано другое) и Сервер выдает список версию протокола SSH которую он поддерживает.

Если клиента она «устраивает», то соединение продолжается и после того как сервер передаст свой публичный ключ и клиент сохранит его в файле '~/.ssh/known_hosts' мы получим подсказку ssh.

Да, и такие вопросы тоже бывают😅
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣12👍11😐4🔥2😁2
— Ты не сделал бэкапы?
— Ответ на твой вопрос — НЕТ, не сделал.
— Я только хочу железно удостовериться: ты не сделал тех самых данных, на которых мы зарабатываем?
— Так точно.
— И что именно ты планируешь делать, когда ты потеряешь все ключевые данные?
— Тебе позвоню.
🤣37🤔3😁2👍1👏1
Эффективное управление с помощью Microsoft Endpoint Configuration Manager (SCCM)

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

Тут мы рассмотрим основные возможности SCCM и методы их эффективного использования.


Автоматизация развертывания операционных систем

SCCM позволяет автоматизировать процесс развертывания ОС на новых и существующих устройствах, что значительно сокращает время и усилия, затрачиваемые на настройку рабочих станций.

Основные шаги включают создание и настройку последовательностей задач (Task Sequences), импорт и подготовку образов операционных систем, а также настройку PXE- или USB-boot для автоматического развертывания.

# Пример создания последовательности задач с использованием PowerShell
New-CMTaskSequence -Name "Deploy Windows 10" -BootImageID "XYZ0001" -OperatingSystemImageID "XYZ0002"


Управление патчами и обновлениями

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

Для управления обновлениями необходимо настроить WSUS (Windows Server Update Services) и его интеграцию с SCCM, создать автоматические правила развертывания (ADR) и мониторить статус развертывания.

# Пример создания ADR с использованием PowerShell
New-CMAutoDeploymentRule -Name "Monthly Security Updates" -DeploymentTemplateID "XYZ0003" -UpdateClassification "SecurityUpdates"


Инвентаризация оборудования и программного обеспечения

SCCM автоматически собирает данные о всех устройствах и установленном на них ПО, что позволяет администраторам получать подробные отчеты и проводить аудит ИТ-активов.

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

# Пример запроса данных об установленном ПО с использованием PowerShell
Get-CMSoftwareInventory -ResourceID "XYZ0004"


Управление мобильными устройствами

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

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

Мониторинг и отчетность

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

Настройка и использование встроенных отчетов, создание кастомных отчетов с использованием SQL Server Reporting Services (SSRS), а также настройка оповещений и уведомлений о событиях и инцидентах обеспечивают высокий уровень контроля и мониторинга всех аспектов ИТ-инфраструктуры.

# Пример создания отчета с использованием PowerShell
New-CMReport -Name "Installed Software Report" -SQLQuery "SELECT * FROM v_Add_Remove_Programs"
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4👎1
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что Такое Memcached?

Ответ: Memcached — это система кеширования объектов памяти с открытым исходным кодом. В основном Memcached используется для избежания повторяющихся задач извлечения данных SQL, которые могут занимать долгое время при параллельном выполнении.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🤔2
sed - потоковый редактор Linux

sed (Stream Editor) — это мощный и гибкий инструмент для обработки и преобразования текста в потоковом режиме. 


Он часто используется для автоматизации текстовых операций, таких как поиск, замена и редактирование строк в файлах.

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

Основные возможности sed

Замена текста

sed позволяет заменять текстовые строки в файлах или потоках данных.

# Замена 'old_text' на 'new_text' во всех строках файла
sed 's/old_text/new_text/g' input.txt


Удаление строк

С помощью sed можно удалять строки, соответствующие определенным шаблонам.

# Удаление строк, содержащих 'text_to_delete'
sed '/text_to_delete/d' input.txt


Вставка текста

sed позволяет вставлять новые строки перед или после строк, соответствующих определенным шаблонам.

# Вставка 'new_text' после строк, содержащих 'pattern'
sed '/pattern/a\new_text' input.txt

Извлечение строк

sed может извлекать определенные строки из файла.

# Извлечение строк с 1 по 10
sed -n '1,10p' input.txt

Примеры использования

Замена текста во всем файле:

# Заменяет 'foo' на 'bar' в файле input.txt и сохраняет результат в output.txt
sed 's/foo/bar/g' input.txt > output.txt

Удаление строк с определенным шаблоном:

# Удаляет все строки, содержащие 'delete_me' из input.txt
sed '/delete_me/d' input.txt

Вставка текста перед и после строки:

# Вставляет 'before_text' перед строками, содержащими 'pattern'
sed '/pattern/i\before_text' input.txt

# Вставляет 'after_text' после строк, содержащих 'pattern'
sed '/pattern/a\after_text' input.txt

Замена текста только в определенных строках:

# Заменяет 'foo' на 'bar' только в строках с 5 по 10
sed '5,10s/foo/bar/g' input.txt

Использование скрипта sed:

# Создание скрипта 'noscript.sed'
echo 's/foo/bar/g' > noscript.sed
echo '/delete_me/d' >> noscript.sed

# Применение скрипта к файлу
sed -f noscript.sed input.txt
👍26🔥7
Ушёл из жизни Ларри Фингер, разработчик драйверов Wi-Fi для Linux

21 июня 2024 года на 85-м году жизни скончался Ларри Фингер, учёный и разработчик драйверов для беспроводной сети в Linux. 


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

Ларри Фингер первоначально работал над драйвером Broadcom BCM43XX и внёс значительный вклад в разработку драйверов Wi-Fi для Linux, таких как RTW88, RTW89, R8188EU, R8712, RTLWIFI и B43.

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

Фингер был активным участником сообщества разработчиков ядра, внесший 1464 коммита в 94 выпусках ядра Linux, начиная с версии 2.6.16 в 2006 году.

🔥 Это впечатляющее достижение для человека, не имевшего формального компьютерного образования.
Please open Telegram to view this post
VIEW IN TELEGRAM
🫡67😢15🙏3😭21
Как в Linux изменить login shell (оболочку входа в систему). Инструкция по команде chsh

Для чего нужен login shell

Login shell (оболочка входа) обрабатывает файлы запуска, которые должны обрабатываться только один раз за сеанс входа, и защищает сеанс от нежелательных взаимодействий с некоторыми функциями системы.

В частности, login shell обрабатывает команды из /etc/profile, затем первый файл среди ~/.bash_profile, ~/.bash_login и ~/.profile. 


Выход из login shell прерывает все задания и защищает сеанс от приостановки работы.

Как узнать, какие оболочки установлены в системе

Чтобы изменить оболочку по умолчанию для пользователя, нужно знать доступные оболочки и их правильные названия. Один из способов узнать это — команда:

cat /etc/shells


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

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

Программа для смены оболочки пользователя — chsh

Команда chsh изменяет оболочку входа пользователя на постоянной основе. Если оболочка не указана в командной строке, chsh запросит её.

Синтаксис команды:

sudo chsh -s ОБОЛОЧКА


В качестве ОБОЛОЧКИ укажите одну из оболочек, перечисленных в файле /etc/shells. Команда chsh примет полный путь к любому исполняемому файлу в системе.

Временное изменение оболочки

Если вы временно хотите изменить оболочку, просто установите её и запустите. Примеры команд для запуска различных оболочек:

sh
bash
pwsh
dash
zsh


Смена оболочки с помощью usermod

Утилита usermod с опцией -s меняет оболочку указанного пользователя.

Например, чтобы назначить пользователю root оболочку Bash, используйте команду:

sudo usermod -s /usr/bin/bash root


Чтобы назначить пользователю root оболочку ZSH:

sudo usermod -s /usr/bin/zsh root


Эти команды помогут вам легко изменить login shell в Linux.

Особенности оболочки входа

Особенности оболочки входа, по крайней мере, реализованной в Bash, заключаются в следующем:

Оболочка входа в систему обрабатывает команды из /etc/profile, затем первый файл, который она находит среди ~/.bash_profile, ~/.bash_login и ~/.profile (если только это не интерактивная оболочка входа, запущенная без параметра —login).
При выходе из оболочки входа выполняется logout вместо exit.
Выход из оболочки входа в систему прерывает все задания.
Оболочку входа нельзя приостановить.
Оболочка входа устанавливает переменную HOME (кроме POSIX-корректного режима).
Оболочка входа устанавливает параметр оболочки login_shell.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Компоненты дистрибутива Linux

1️⃣ Ядро Linux

Ядро — это сердце любой операционной системы. Первое публичное ядро Linux было выпущено Линусом Торвальдсом в 1991 году.

С тех пор тысячи добровольцев и компаний работали над его развитием. Ядро Linux используется в большинстве современных устройств, от смартфонов на Android до автомобилей.

Оно связывает программное и аппаратное обеспечение, распределяет системные ресурсы и запускает процессы.


2️⃣ Утилиты GNU

Проект GNU, начатый Ричардом Столлманом в 1980-х годах, создавал утилиты для свободной операционной системы, подобной UNIX.

В 1991 году Линус Торвальдс создал ядро Linux и использовал утилиты GNU для создания полной операционной системы.

Проект GNU включает в себя командную оболочку bash, компиляторы GNU, загрузчик GRUB, архиватор gzip, текстовый редактор Nano и другие программы.

3️⃣ Загрузчик GRUB

GRUB загружает ядро операционной системы и другие необходимые компоненты после нажатия кнопки питания.

Если у вас установлено несколько ОС, GRUB позволяет выбрать нужную. Он используется в большинстве дистрибутивов Linux.


4️⃣ Командная оболочка bash

Bash — это интерфейс командной строки, позволяющий управлять компьютером с помощью команд.

Он поддерживает запуск скриптов, которые автоматизируют выполнение команд.

5️⃣ Демоны

Демоны — это фоновые процессы, контролирующие различные подсистемы ОС, такие как печать и сеть.

Самым известным демоном является systemd, который управляет всеми другими процессами системы и запускается первым после загрузки ядра.

6️⃣ Менеджер пакетов

Менеджер пакетов управляет установкой, удалением и обновлением программного обеспечения. 


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

Разные дистрибутивы используют разные менеджеры пакетов: apt для Ubuntu, dnf для Fedora, zypper для openSUSE и pacman для Arch Linux.

7️⃣ Дисплейный сервер

Дисплейный сервер отображает графический интерфейс на экране. Наиболее известным дисплейным сервером для Linux является X.Org Server.

Новый протокол Wayland разрабатывается для улучшения безопасности и производительности.

8️⃣ Окружение рабочего стола

Окружение рабочего стола включает значки, окна, панели и другие элементы графического интерфейса. Популярные окружения для Linux — GNOME и KDE.

9️⃣ Дисплейный менеджер

Дисплейный менеджер отображает экран приветствия и запускает сеансы рабочего стола. Например, GDM используется в GNOME, а SDDM — в KDE.

1️⃣0️⃣ Пользовательские приложения

Это программы, которые вы используете ежедневно, такие как браузер Firefox, офисный пакет LibreOffice и медиаплеер VLC. 


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

☄️ Эти компоненты вместе образуют функциональную операционную систему Linux, обеспечивая её работу и взаимодействие с пользователем.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍343👎1
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как увидеть временные метки dmesg в RHEL7?

Ответ: Добавим параметр '-T' к команде dmesg можно увидеть временные метки dmesg.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Если бы Cisco изобрели колесо
😁45👍4🤔3🥴3
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Опишите автоматическое тестирование и назовите основные преимущества использования автоматического тестирования.

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

У использования автоматического тестирования в рабочем процессе существует довольно много преимуществ. Давайте назовём только лишь самые основные.

Как упоминалось ранее, ошибки случаются гораздо реже.
Оно сохраняет время и деньги.
Позволяет проводить более масштабные тесты, которые могли занять долгое время при ручном тестировании.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7👎7🤯3🔥1
Юниты systemd

Если описать systemd в общих чертах, то это система управления юнитами.

Юнитами могут быть много вещей. Одним из наиболее важных типов юнитов является сервис. 


Помимо сервисов, существуют другие типы юнитов, такие как сокеты, монтирование и другие.

Чтобы отобразить список всех доступных юнитов, введите systemctl -t help:

[root@server2 ~]# systemctl -t help
Available unit types:
service
socket
busname
target
snapshot
device
mount
automount
swap
timer
path
slice
scope


Основное преимущество работы с systemd по сравнению с предыдущими методами, используемыми для управления сервисами, заключается в том, что он обеспечивает единый интерфейс для запуска юнитов. Этот интерфейс определен в файле юнита.

/usr/lib/systemd/system: системные юнит-файлы. Это юниты из установленных пакетов RPM — всякие nginx, apache, mysql и прочее.
/etc/systemd/system: юниты, созданные нами, то есть админами. Переопределяют значения юнит-файлов по умолчанию.
/run/systemd/system: runtime-юниты, которые генерируются автоматически.

Юнит-файлы пользовательских юнитов по аналогии хранятся в директориях /etc/systemd/<имя пользователя>, /run/sustemd/<имя пользователя> и /usr/lib/systemd/<имя пользователя>.

Юнит-файл на примере vsftpd

[Unit]
Denoscription=Vsftpd ftp daemon
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

[Install]
WantedBy=multi-user.target


Из этого примера юнит-файла видно, что его относительно легко понять.

Любой файл сервисного юнита systemd состоит из трех секций. (В других файл-юнитах могут быть другие секции, но эти три присутствуют во всех юнит-файлах.)

[Unit]: Описывает юнит и определяет зависимости. Эта секция также содержит важный оператор After и, опционально, оператор Before. Эти операторы определяют зависимости между различными юнитами.

[Service]: Эта секция описывает, как запустить и остановить сервис и запросить статус установки.

[Install]: Описывает целевые юниты, которые должны включать данный юнит.

Пример файла-юнита типа mount

[Unit]
Denoscription=Temporary Directory
Documentation=man:hier(7)
Documentation=http://www.freedesktop.org/wiki/Software/systemd/
APIFileSystems
DefaultDependencies=no
Conflicts=umount.target
Before=local-fs.target umount.target

[Mount]
What=tmpfs
Where=/tmp
Type=tmpfs
Options=mode=1777,strictatime

[Install]
WantedBy=local-fs.target


Файл tmp.unit показывает интересную дополнительную информацию.

В секции [Unit] виден оператор Conflicts, который указывает, что этот юнит не может использоваться совместно с юнитом umount.target.

Секция [Mount] определяет, что и где надо монтировать.

Юнит socket

Сокет создает метод для приложений, чтобы общаться друг с другом.

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

[root@server202 system]# cat virtlockd.socket
[Unit]
Denoscription=Virtual machine lock manager socket

[Socket]
ListenStream=/var/run/libvirt/virtlockd-sock

[Install]
WantedBy=multi-user.target


Понимание целевых юнитов

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

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

Простое определение целевого юнита - это «группа юнитов».

[root@server2 system]# cat multi-user.target
[Unit]
Denoscription=Multi-User System
Documentation=man:systemd.special(7)
Requires=basic.target
Conflicts=rescue.service rescue.target
After=basic.target rescue.service rescue.target
AllowIsolate=yes


Целевой юнит определяет зависимости и порядок загрузки.

В секции [Install] он может быть определен как default.target, чтобы сервер запускался по умолчанию в этот целевой юнит.

Понимание Wants

Want в systemd определяет, какие юниты он хочет при запуске определенной цели. Want создаются путем создания символической ссылки в каталоге /etc/systemd/system.

🔥 Во второй части статьи о systemd разберемся, как управлять юнитами, зависимостями и целями.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍202🔥2👎1