Latest posts

NetworkAdmin.ru
22 Sept, 10:05
🌚 watch: простая динамическая диагностика в терминалеИногда не нужен отдельный мониторинг, графики и дашборд. Нужно просто увидеть, как меняется состояние системы прямо сейчас. Для этого в линукс есть простая команда watch. Она периодически запускает другую команду и обновляет вывод в терминале.Например, смотреть свободное место:watch df -hПо умолчанию команда выполняется каждые 2 секунды.▪️ Изменить интервал:watch -n 1 df -hТеперь обновление идет раз в секунду.▪️ Полезный режим - подсветка изменений:watch -d free -h
NetworkAdmin.ru
21 Sept, 10:01
👌 Firewall default deny: как внедрять без внезапного отрезания доступаИдея простая: разрешаем только то, что действительно нужно, все остальное блокируем. На бумаге это выглядит идеально. На практике одна неправильная команда - и SSH-сессия заканчивается вместе с доступом к серверу.Поэтому default deny лучше внедрять не одной командой, а поэтапно.▪️ Для nftables базовая политика может выглядеть так:table inet filter { chain input { type filter hook input priority 0; policy drop;iif lo accept ct state established,related accepttcp dport 22 ip saddr 10.20.0.0/16 accept tcp dport { 80, 443 } accept } }
NetworkAdmin.ru
18 Sept, 09:20
🖥 Windows зависла на "Подготовке Windows": как проверить состояние удаленноТипичная ситуация: после установки обновлений, компонентов или серверных ролей отправляем Windows в перезагрузку и видим сообщение:Выполняется подготовка Windows. Не выключайте компьютер.В большинстве случаев лучше действительно подождать. Установка обновлений может занимать от нескольких минут до нескольких часов, особенно на медленном диске или при большом накопительном обновлении. Но если экран не меняется очень долго, хочется сначала разобраться, что происходит, а не сразу выключать сервер по питанию.Локально войти в систему на этом этапе нельзя, однако иногда удаленные службы уже доступны. Подключиться к консоли можно через PsExec:PsExec.exe \\192.168.158.10 -u localadmin powershell.exeЕсли нужно запустить процесс в интерактивной сессии:PsExec.exe \\192.168.158.
NetworkAdmin.ru
17 Sept, 10:05
🌲 Как посмотреть дерево процессов в Linux: htop, ps и pstreeКогда нужно понять, какой процесс кого запустил, обычного списка ps часто недостаточно. Намного удобнее посмотреть процессы в виде дерева: родительский процесс -> дочерние процессы -> подпроцессы. Есть несколько простых способов.1️⃣ Дерево процессов в htop. Если htop уже установлен, нажмите: t. Это переключит список в режим Tree View. Так удобно быстро посмотреть структуру процессов прямо в интерактивном интерфейсе: например, какие worker-процессы запустил nginx, systemd или приложение.Но если процессов много и вывод нужно спокойно изучить, интерактивный интерфейс бывает не самым удобным.2️⃣ Команда ps axf Консольный вариант:ps axfКлюч f показывает процессы в виде ASCII-дерева. Если вывод большой, его можно сохранить
NetworkAdmin.ru
15 Sept, 14:17
😐#юмор🧑💻 NetworkAdmin
NetworkAdmin.ru
15 Sept, 10:12
💚 Bonding в Linux: active-backup, LACP и типовые ошибки настройкиBonding объединяет несколько сетевых интерфейсов в один логический bond0. Обычно его используют для:• резервирования сетевого подключения • распределения нагрузки • защиты от отказа кабеля, порта или сетевой карты • увеличения суммарной пропускной способностиДва самых популярных режима - active-backup и 802.3ad.▪️ Active-backup. В каждый момент работает только один интерфейс. Второй находится в резерве и включается при отказе основного.[NetDev] Name=bond0 Kind=bond[Bond] Mode=active-backup MIIMonitorSec=100ms
NetworkAdmin.ru
14 Sept, 09:36
👁 Linux audit rules: минимальный набор для контроля критичных файловОбычные логи не всегда отвечают на главный вопрос: кто изменил конфигурацию и какой процесс это сделал? Для таких задач в Linux есть auditd. Он фиксирует обращения к файлам на уровне ядра и сохраняет пользователя, процесс, команду и время события.▪️ Установка:apt install auditd audispd-plugins systemctl enable --now auditdПравила лучше хранить в отдельном файле:nano /etc/audit/rules.d/critical-files.rules▪️ Минимальный набор:-w /etc/passwd -p wa -k identity -w /etc/group -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/gshadow -p wa -k identity
NetworkAdmin.ru
11 Sept, 10:03
📁 Логирование скриптов в Windows Event ViewerДля логов PowerShell и BAT-скриптов необязательно создавать отдельные текстовые файлы. Важные события можно записывать прямо в Event Viewer. Это удобно, потому что такие записи проще искать, фильтровать и собирать централизованно через WEF, SIEM или систему мониторинга.▪️ Сначала создадим отдельный источник событий:New-EventLog -LogName Application -Source "MyScript"Эту команду обычно достаточно выполнить один раз с правами администратора.▪️ Теперь можно записать событие в журнал Application:Write-EventLog -LogName Application -Source "MyScript" -EntryType Information -EventID 1 -Message "Запущен PowerShell-скрипт проверки состояния сервера"▪️ Для ошибок и предупреждений меняем тип события:
NetworkAdmin.ru
10 Sept, 12:15
Вы не заставите меня их закрыть. 🤩#юмор🧑💻 NetworkAdmin


NetworkAdmin.ru
9 Sept, 09:46edited
⏰ Точное время до запуска сервисов: одноразовая синхронизация через chronyОбычно синхронизация времени в Linux работает незаметно: установили chrony, systemd-timesyncd или другой NTP-клиент - и забыли. Но после загрузки виртуальной машины системное время иногда отличается на несколько минут. Служба синхронизации исправит его, однако часть сервисов к этому моменту уже может успеть запуститься.В результате появляются:• события в логах с неправильным временем • ошибки проверки сертификатов • проблемы с Kerberos и токенами • некорректный порядок событий • странности в распределенных системах и мониторингеДля обычной работы постепенная коррекция времени подходит. Но на старте иногда нужно сначала выставить часы, а уже потом запускать приложение. Для этого можно создать одноразовый systemd-unit с chronyd -q.▪️ Устанавл
NetworkAdmin.ru
8 Sept, 11:20
💚 Как один неверный chmod -R ломает прод сильнее, чем падение сервисаПадение сервиса обычно видно сразу. Мониторинг красный, пользователи жалуются, в логах ошибка. Перезапустили, откатили, восстановили. А вот один неверный chmod -R может сломать прод намного тише и неприятнее. Классический сценарий:chmod -R 777 /var/wwwили еще хуже:chmod -R 755 /Хотели быстро пофиксить права, а получили хаос.▪️ Почему это опасно?Права в linux - это не просто можно читать или нельзя. От них зависит работа сервисов, безопасность, SSH, sudo, systemd, базы данных, веб-приложения и приватные ключи.▪️ Что может сломаться:• SSH перестанет принимать ключи, потому что ~/.ssh и authorized_keys стали слишком открытыми
NetworkAdmin.ru
7 Sept, 10:10
😩 systemd-analyze: почему сервер долго загружается и кто виноватИногда сервер после reboot поднимается подозрительно долго. Вроде железо нормальное, диск живой, сервисов не так много, но до нормального состояния система доходит через минуту, две или даже дольше.В systemd для такого разбора есть удобная утилита:systemd-analyzeОна покажет общее время загрузки:Startup finished in 5.2s (kernel) + 28.4s (userspace) = 33.6sЗдесь видно, сколько заняло ядро и сколько - userspace, то есть запуск systemd-сервисов.▪️ Чтобы понять, какие иниты запускались дольше всего:systemd-analyze blameПример вывода:
NetworkAdmin.ru
4 Sept, 09:07
🤩 Почему места достаточно, но приложение всё равно не может записать файлИногда на сервере возникает странная ситуация. Проверяем диск:df -hСвободное место есть. Например, десятки гигабайт. Но приложение всё равно пишет: No space left on device▪️ Первая частая причина - закончились inodes. inode - это запись о файле в файловой системе. Если маленьких файлов очень много, можно упереться не в объем, а в количество файлов. Проверить:df -iЕсли IUse% близко к 100%, новые файлы создаваться не будут, даже если свободные гигабайты еще есть. Типичные виновники: миллионы мелких cache-файлов, сессии приложения, временные файлы, мелкие логи и т.д. Найти каталоги с большим количеством файлов:find /var -xdev -type f | cut -d/ -f1-3 | sort | uniq -c | sort -nr | head▪️ Вторая причина -
NetworkAdmin.ru
3 Sept, 09:41
👀 inotifywait: реакция на изменения файлов без cronИногда нужно выполнить действие сразу после изменения файла или каталога. Например:• изменился конфиг - перезапустить сервис • появился новый файл - обработать его • загрузили архив - распаковать • изменился сертификат - перечитать nginx • в каталог упал лог - отправить уведомлениеПервое решение, которое часто приходит в голову - cron. Но cron работает по расписанию. Он не реагирует на событие сразу, а просто периодически проверяет состояние. Для событий в файловой системе удобнее использовать inotifywait.▪️ Установка:apt install inotify-tools▪️ Посмотреть изменения файла:inotifywait -m /etc/nginx/nginx.conf
NetworkAdmin.ru
1 Sept, 10:24
✏️ Пишем события скриптов в Windows Event ViewerВ Windows-скриптах часто делают логирование в обычные текстовые файлы:C:\Scripts\Logs\script.logЭто рабочий вариант, но не всегда удобный. Логи могут лежать в разных папках, забываться при переносе скрипта, не попадать в централизованный сбор и быстро превращаться в зоопарк форматов. Иногда удобнее писать важные события прямо в Event Viewer.▪️ Плюсы такого подхода:• события видны в стандартном журнале Windows; • их можно собирать через WEF, SIEM или агент мониторинга; • проще фильтровать по источнику, Event ID и уровню; • не нужно отдельно искать лог-файл скрипта; • события попадают в привычный механизм аудита и диагностики.▪️ Например, в PowerShell можно создать отдельный источник событий:New-EventLog -LogName Application
NetworkAdmin.ru
31 Aug, 09:18
📂 sshfs: монтируем удаленный каталог через SSH и systemdsshfs позволяет монтировать удаленную файловую систему через обычное SSH-соединение. То есть если у вас есть SSH-доступ к серверу, можно подключить его каталог как локальную директорию. Это не самый быстрый способ: SSHFS работает через FUSE в user space, плюс само SSH-соединение добавляет накладные расходы. Но для некоторых задач это очень удобно. Особенно когда: SSH уже открыт; NFS/SMB поднимать не хочется; нужен быстрый доступ к отдельному каталогу или нужно временно подключить данные▪️ Установка:apt install sshfs▪️ Для автомонтирования лучше сразу настроить доступ по ключу. Генерируем ключ:ssh-keygen -t ed25519Копируем его на удаленный сервер:ssh-copy-id root@10.20.1.6Можно подключаться и по паролю, но для
NetworkAdmin.ru
28 Aug, 10:13
📎 TCP retransmits: как понять, что сеть теряет пакеты, а не тормозит приложениеИногда приложение вроде бы работает, CPU нормальный, память есть, база живая, но пользователи жалуются: "все медленно". И начинается классика: смотрим логи приложения, nginx, базу, systemd, load average. А причина может быть ниже - на сетевом уровне. Один из важных признаков сетевых проблем - TCP retransmits.TCP - надежный протокол. Если пакет потерялся по дороге, получатель его не подтвердил, и отправитель через время отправит этот сегмент заново. Это и есть retransmission. Небольшое количество повторных передач в сети бывает всегда. Но если их много - это уже симптом:• перегруженный канал; • проблемы на интерфейсе; • плохой Wi-Fi или VPN; • перегруженный firewall/NAT; • проблемы у провайдера.Снаружи это часто выглядит не как "сеть упала", а как странная деградация:
NetworkAdmin.ru
27 Aug, 11:08
📱 getopts в bash: как нормально разбирать аргументы скриптаМногие Bash-скрипты сначала выглядят просто: ./backup.sh /data /backup А потом появляются опции: путь к конфигу, имя окружения, количество попыток, режим работы и т.д. И скрипт быстро превращается в набор странных if, где $1, $2, $3 уже никто нормально не понимает.🤩 Плохой вариант:SOURCE="$1" DEST="$2" MODE="$3"Работает, пока аргументов мало. Но как только нужно добавить флаги, порядок начинает ломать все. Для нормального разбора коротких опций в bash есть встроенный механизм getopts.▪️ Пример скрипта:#!/usr/bin/env bash set -euo pipefailVERBOSE=0 DRY_RUN=0
NetworkAdmin.ru
25 Aug, 09:15
🆘 BgInfo: системная информация прямо на рабочем столе WindowsУ Microsoft Sysinternals есть старая, но до сих пор полезная утилита - BgInfo. Она выводит системную информацию прямо поверх обоев рабочего стола. На фоне можно показать:• имя компьютера • домен • пользователя • IP-адреса • версию Windows • uptime • свободное место на дисках • AD site • любые дополнительные поляДля HelpDesk это удобно: пользователь просто смотрит на рабочий стол и диктует нужные данные. Для админа тоже полезно, особенно когда открыто много RDP-сессий на разные серверы. Сразу видно, где именно ты находишься, и меньше шансов перепутать тестовый сервер с боевым. BgInfo достаточно гибкий. Кроме стандартных полей, можно добавлять данные через:• WMI • registry • environment variables
NetworkAdmin.ru
24 Aug, 08:55
❤️ systemctl edit: как правильно переопределять юниты без правки vendor-файловВ systemd часто нужно чуть-чуть изменить стандартный unit, который приехал из пакета. Например:• добавить автоматический рестарт; • изменить переменные окружения; • переопределить ExecStart; • добавить лимиты; • поменять рабочий каталог; • настроить зависимости.Плохая идея - править vendor-unit напрямую где-нибудь в:/lib/systemd/system/или:/usr/lib/systemd/system/После обновления пакета такие изменения могут потеряться или конфликтовать с новой версией юнита.Правильнее использовать override. Покажу на примере nginx.service.
Related Channels
Other channels in the same section of the catalogue.
