Sysadminium
322 subscribers
148 photos
1 video
1 file
398 links
Я делюсь своими знаниями системного администратора. Всё проверено на себе — иногда даже дважды.
Download Telegram
📌fping - консольная утилита для Linux, которая предназначена для массовой проверки доступности хостов.

Устанавливается из стандартных репозиториев:
sudo apt install fping


Основные опции fping:

-a — показать только доступные хосты
-u — показать только недоступные хосты
-g <IP/подсеть> — пинговать диапазон IP (например, fping -g 192.168.1.1 192.168.1.10)
-s — вывести статистику в конце
-c N — отправить N запросов к каждому хосту (аналог ping -c)
-q — тихий режим (только итоговый результат)
-f <файл> — читать цели из файла

✔️Проверка нескольких хостов:
fping ya.ru sysadminium.ru


✔️Проверка подсети:
$ fping -a -g 192.168.0.0/24 2>/dev/null

- дополнительные опции уберут недоступные хосты из вывода
👍4
✅В этой статье рассказано о развитии операционной системы Windows — от первой версии в 1985 году до современных Windows 10 и 11.
✅Рассматриваются ключевые изменения, нововведения и особенности каждой важной версии, включая Windows 95, XP, 7, 10 и 11.
✅Особое внимание уделено переходу от MS-DOS к ядру NT, различиям между линейками 9x и NT, а также крупным обновлениям Windows 10 и 11.
Статья: https://sysadminium.ru/history-windows/
📌Я обновил статью про инструмент apt-mirror, который позволяет создать своё зеркало различных репозиториев Linux.
Статья: https://sysadminium.ru/local_mirror_linux_repository-apt_mirror/

👉Apt-mirror это скрипт написанный на языке perl. Но он давно не обновляется. Разработчик Stifler6996 поправил скрипт для работы с современными дистрибутивами и репозиториями. Хоть репозиторий Stifler6996 закрылся, в статье я использую именно его версию скрипта, выложенную в свой репозиторий.

👉Кстати, я нашёл подобное решение, написанное на Go: https://github.com/aptly-dev/ Через некоторое время попробую и если мне понравится, то напишу статью про aptly.
👍8
📝Создание локального зеркала репозиториев с помощью Aptly

Ранее я писал про apt-mirror — старый, но рабочий инструмент для зеркалирования репозиториев. Однако сегодня разберем более мощную и современную альтернативу — Aptly!

🔍 Что может Aptly?
Он не просто копирует чужие репозитории, но и позволяет:
✔️ Создавать собственные репозитории с deb-пакетами
✔️ Подписывать их своим GPG-ключом
✔️ Гибко управлять версиями через снимки (snapshots)
✔️ Работать с Proxmox, Debian, Ubuntu и другими дистрибутивами

Статья подробно описывает процесс установки и настройки инструмента Aptly для создания локальных зеркал Linux-репозиториев, включая Proxmox и Debian. В ней рассмотрены шаги по созданию, синхронизации и публикации репозиториев, а также их размещение на веб-сервере Nginx. Дополнительно приведены команды для обновления зеркал и работы со снимками, что позволяет поддерживать актуальные копии репозиториев в локальной сети.

👉 Статья: https://sysadminium.ru/local_mirror_repo_using_aptly/
👍2
📌Как выбрать блок питания (использование не родного адаптера)

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

Напряжение (V) должно быть одинаковым.
- Например: ноутбук 19 В → блок 19 В - использовать можно✅
- Даже 19.5 В вместо 19 В — уже рискованно!

Сила тока (A) на блоке питания может быть такой-же или больше.
- Ноутбук: 1.58 А → блок: 3.42 А - использовать можно✅
- Чем выше ток — тем лучше (запас мощности, меньше греется).
- Нельзя использовать если сила тока блока питания меньше чем требуется устройству.

Разъём должен подходить по размеру и форме.
- Внутренний диаметр, длина, толщина — должны совпадать.
- Нельзя использовать если разъём не подходит или болтается.

💡 Пример:
- Ноутбук: 19 В, 1.58 А
- Блок питания: 19 В, 3.42 А → ✅ Можно! Безопасно!
Делись с друзьями! Многие губят технику из-за неправильно подобранного блока питания.
👍3
Недавно вышел Proxmox VE 9.0. Я решил протестировать его и написать цикл статей. Две первые статьи уже были готовы, я только актуализировал их для PVE 9:
1) Proxmox VE — знакомство и установка на ZFS
👉https://sysadminium.ru/installing-proxmox-ve-zfs/
2) Proxmox VE - замена системного диска в зеркале ZFS
👉https://sysadminium.ru/replace-disk-zfs-mirror-proxmox/

По плану - следующая статья:
📝Proxmox VE - настройка сети. Где я расскажу как настроить сеть с использованием Linux Bridge и OVS Bridge. А также как создавать бонды и работать с vlan.
👍5
Пока работаю над статьёй по сетям в Proxmox VE решил поделиться с вами способами вывода промежутка строк из файла. Например вам нужно получить строки с 100 по 200 из файла /var/log/syslog.

Чтобы посмотреть строки с 100 по 200 из файла в Linux, команды head и tail можно комбинировать. Ниже приведён способ, как это сделать:

tail -n +100 /var/log/syslog | head -n 101


Пояснение:
- tail -n +100 — выводит файл, начиная с 100-й строки (включительно) до конца.
- head -n 101 — берёт первые 101 строк из этого потока.
- Почему 101? Потому что строки с 100 по 200 — это 101 строка.

Можно также использовать sed, это более читаемо:

sed -n '100,200p' /var/log/syslog


Альтернатива: awk, тоже удобно и понятно:

awk 'NR>=100 && NR<=200' /var/log/syslog
👍3
📝В этой статье мы разберём настройку сети в Proxmox VE 9.0 — гипервизоре для управления виртуальными машинами и контейнерами.

👉Вы узнаете, как работать с двумя ключевыми технологиями: Linux Bridge (классический способ организации сети в Linux), Open vSwitch (решение для программно-определяемых сетей с поддержкой сложных сценариев).

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

Статья: https://sysadminium.ru/proxmox-ve-network/
👍3
📌В этой статье я покажу процесс подготовки виртуальной машины на Proxmox VE 9 для установки Windows 11. Кстати, для Proxmox 8 ничего не меняется, процесс подготовки виртуальной машины и установки на неё Windows 11 будет совершенно одинаковым.

Статья: https://sysadminium.ru/proxmox-ve-for-windows-11/
👍2
📝Организационные единицы (OU) и группы в Active Directory

Очень часто начинающие администраторы путают группы и организационные единицы (OU) в Active Directory (AD), поэтому я написал эту заметку, чтобы коротко и понятно объяснить разницу.

✅Организационные единицы (OU)

👉Это контейнеры в домене AD, которые помогают структурировать объекты: пользователей, компьютеры, группы и другие OU.
👉Основная цель OU — применение групповых политик (GPO) и делегирование прав администрирования. Например, можно дать администратору отдела права изменять пользователей только в его OU.
👉OU используются для применения групповых политик (GPO). Политики можно привязывать к конкретной OU, и они будут действовать на все объекты внутри неё.
✅Группы в AD

👉Группы — это объекты для управления доступом и разрешениями. В AD есть два типа групп:
👉Security Groups (Группы безопасности)
Используются для назначения прав доступа к ресурсам (файлам, папкам, принтерам). Пользователи и компьютеры, включённые в эту группу, наследуют права, которые ей назначены. Security Group может использоваться и для рассылки почты, если нужно.
👉Distribution Groups (Группы рассылки)
Используются только для рассылки электронной почты (Exchange/Outlook). И не используются для назначения прав доступа.
👉Любые группы могут содержать пользователей, компьютеры и другие группы.

✅Взаимосвязь OU и Security Groups

👉Политики применяются к OU, а не к группам.
👉Права доступа назначаются группам, а не OU.
👉Пользователи могут находиться в любой OU, и принадлежать к любой группе.
👉Всё это позволяет гибко управлять политиками и доступом независимо друг от друга.

✅Пример:

👉OU: programmers - содержит всех программистов. GPO применяются к этой OU, и настраивают домашние папки и параметры рабочего стола каждого программиста.
👉Группа: programmers - используется чтобы все программисты получили доступ к общей сетевой папке.

✅Кстати, в AD - GPO наследуются вниз по иерархии OU (по умолчанию). Если к OU привязана политика, все объекты внутри этой OU и вложенных OU получают эту политику, если явно не запрещено наследование.
📌Univention Corporate Server (UCS)

Это сервер на базе Debian включающий в себя совместимый с Active Directory контроллер домена, реализованный с помощью Samba 4 и LDAP. Управляется UCS через встроенный web-интерфейс. На момент написания заметки последняя версия UCS 5.2.

Для установки предоставляется iso образ, для скачивания придётся заполнить анкету (оставить свой email).

Во время установки выбираем: Start with manual network settings. Запускается установщик похожий на установщик Debian. После установки в консоли нажимаем "Create a new UCS domain", придумываем имя домена, FQDN сервера, и пишем свой email для получения ключа активации UCS сервера. Он бесплатный, но требует активацию.

После подготовки контроллера домена из консоли переходим в web-интерфейс. Для логина используем имя Administrator, а пароль как у пользователя root.
👍2
Но это пока не полноценный контроллер домена, он работает без Samba и умеет обслуживать только Linux ПК. В web-интерфейсе из App Center устанавливаем приложение "Comprehensive Active Directory functions based on Samba". Это приложение установит и настроит Samba, что расширит возможности UCS для обслуживания Windows PC.

Для управления групповыми политиками из Windows 11 нужно использовать RSAT: средства управления групповыми политиками. Чтобы это сделать, переходим: "Настройки / Система / Дополнительные компоненты / Просмотреть компоненты / Просмотреть доступные функции / RSAT: средства управления групповыми политиками". После этого появится оснастка - gpmc.msc (Управление групповыми политиками).

А для управления пользователями нужно установить "Средства удалённого администрирования сервера: средства доменных служб Active Directory и служб облегченного доступа к каталогам". После этого появится - dsa.msc (Пользователи и компьютеры). Заметил особенность, что создать OU из этой оснастки не получится. Создавать OU нужно в UCS (web-интерфейсе). Для этого используется - LDAP directory.

UCS предоставляет возможность создать:
🔷Backup Directory Node (BDN) - это резервный контроллер домена, который можно превратить в основной. После установки, на него также нужно будет поставить приложение "Comprehensive Active Directory functions based on Samba".
🔷Replica Directory Node (RDN) - это облегченный вариант, что то вроде кэша контроллера домена, а не полноценный контроллер. Превратить его в основной не получится. Он призван снять нагрузку с основного контроллера домена. И кстати, он не поддерживает NLA для RDP подключений в отличии от BDN.

Для установки резервного контроллера домена, устанавливаем систему как обычно, только во время установки, в качестве DNS сервера укажем адрес первого UCS сервера. После установки и перезагрузки выбираем Join into an existing UCS domain, затем Backup Directory Node, а после ставим галочку Start join at the end of the installation и Search Primary Directory Node in DNS.

На резервный контроллер нужно будет также поставить "Comprehensive Active Directory functions based on Samba". Если при этом в App Center появится ошибка No repository to register, то нужно выполнить: ucr get repository/online/registered и apt update.

Для проверки что видны оба контроллера домена, на Windows клиенте выполняем команду:
nltest /dclist:<ваш домен>

✔️Должны быть видны оба контроллера домена.
📌Коды HTTP

Понимание HTTP-кодов ответа критически важно для диагностики проблем с веб-серверами, API, балансировщиками нагрузки и мониторингом инфраструктуры. Ниже приведены ключевые коды, с которыми DevOps-инженеры и Системные администраторы сталкиваются ежедневно.

🔷2xx — Успешные ответы
- 200 OK — Запрос успешно обработан. Ожидаемый ответ для большинства GET-запросов.
- 201 Created — Ресурс успешно создан (часто при POST-запросах к API).
- 204 No Content — Запрос успешен, но тело ответа пустое (часто используется в REST API).
👍2
🔷3xx — Перенаправления
- 301 Moved Permanently — Ресурс перемещён навсегда. Браузеры и поисковики кэшируют это.
- 302 Found (Moved Temporarily) — Временное перенаправление.
- 304 Not Modified — Когда клиент сообщает серверу, у меня в кэше страничка от такого-та числа, не изменилась ли она на сервере? И если страничка не изменилась, то сервер отвечает этим кодом. А если файл изменился, то ответит кодом 200 и пришлёт изменённую версию.

🔷4xx — Ошибки клиента
- 400 Bad Request — Сервер не понял запрос из-за неверного синтаксиса.
- 401 Unauthorized — Требуется аутентификация (обычно с заголовком WWW-Authenticate).
- 403 Forbidden — Доступ запрещён (например, права на файл веб-сервера).
- 404 Not Found — Запрашиваемый ресурс не найден.
- 429 Too Many Requests — Клиент превысил лимит запросов (часто при rate-limiting).

🔷5xx — Ошибки сервера
- 500 Internal Server Error — Общая ошибка на стороне сервера (например, ошибка в PHP/Python-скрипте).
- 502 Bad Gateway — Сервер (например, Nginx) не получил валидный ответ от upstream (например, от backend-приложения).
- 503 Service Unavailable — Сервер временно недоступен (часто при перегрузке или обслуживании).
- 504 Gateway Timeout — Upstream не ответил вовремя (проверяйте таймауты в Nginx/Apache и состояние backend-сервисов).

💡Советы для практики
👉Используйте curl -I для быстрой проверки кодов ответа: curl -I example.com.
👉Анализируйте логи веб-сервера (/var/log/nginx/access.log, /var/log/apache2/access.log) — там указаны HTTP-коды для каждого запроса.
👉Настройте алерты в Prometheus, Zabbix или Grafana на рост 5xx или 4xx.
👉При отладке 502/504 проверяйте:
- Доступность backend-сервиса (systemctl status myapp)
- Сетевую связность (telnet localhost 8080)
- Настройки прокси и таймаутов в Nginx (proxy_connect_timeout, proxy_read_timeout)

❗️Знание HTTP-кодов — не просто теория, а практический инструмент для быстрой диагностики и поддержания стабильности инфраструктуры.
👍7
📌Apt - что такое phased updates

👉Запускаем apt update и видим что есть 2-а обновления:

$ sudo apt update
(пропустил часть вывода команды)
2 packages can be upgraded. Run 'apt list --upgradable' to see them.


👉Хорошо, у нас есть 2-а обновления. Пробуем обновиться:

$ sudo apt dist-upgrade
(пропустил часть вывода команды)
The following upgrades have been deferred due to phasing:
libgtop-2.0-11 libgtop2-common
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.


👉Видим что оба обновления в состоянии to phasing. Такое сообщение означает что обновления для этих пакетов намеренно отложены системой управления пакетами apt, в рамках механизма, называемого phased updates (поэтапное обновление).
❗️Этот механизм используется в дистрибутивах на основе Debian/Ubuntu (начиная с Ubuntu 20.04). Служит он для того чтобы снизить риск массовых сбоев при обновлении пакетов. Вместо того чтобы сразу обновлять все системы, обновление сначала выпускаются лишь для части пользователей. Если в течении нескольких дней не поступает сообщений об ошибках, обновление постепенно распространяется на всё большее число систем, пока не достигнет 100%.

👉Чтобы посмотреть на какой процент устройств сейчас распространяется такое обновление выполним:

$ apt policy libgtop-2.0-11
libgtop-2.0-11:
Installed: 2.41.3-1build4
Candidate: 2.41.3-1ubuntu0.24.04.1
Version table:
2.41.3-1ubuntu0.24.04.1 500 (phased 30%)
500 http://ru.archive.ubuntu.com/ubuntu noble-updates/main amd64 Packages
*** 2.41.3-1build4 500
500 http://ru.archive.ubuntu.com/ubuntu noble/main amd64 Packages
100 /var/lib/dpkg/status


❗️Из вывода видно что на 30% систем.
👍2
📌Авто-дополнение команд - bash

👉Чтобы в Ubuntu или Debian заработало авто-дополнение команд при нажатии Tab, нужно установить пакет bash-completion.

$ sudo apt update
$ sudo apt install bash-completion


❗️Убедитесь, что авто-дополнение подключено в вашем shell-конфиге - обычно в ~/.bashrc (обычно эти строки уже присутствуют в Ubuntu):

if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi


✅Эта проверка отключает загрузку bash-completion, если Bash в POSIX-режиме;
✅И проверяется два возможных расположения файла bash_completion.

После настройки применим конфигурацию:

. ~/.bashrc
👍5
🖍Эта статья — ваш первый шаг в мир Docker: вы узнаете, что такое контейнеры и образы, как происходит установка Docker на Linux, как запустить первый контейнер всего за пару команд. Просто, понятно и без воды — идеально для новичков!

👉Дополнительно в статье описываются основные команды Docker CLI.

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

📌Статья: https://sysadminium.ru/docker-getting-started-installation-concepts/
👍12