🪟 Windows Server: Почему тормозит RDP? Отключаем UDP.
Замечали, что иногда курсор в RDP-сессии двигается рывками, а текст печатается с задержкой? По умолчанию современный RDP (начиная с версии 8.0) пытается использовать протокол UDP для ускорения графики. Но на нестабильных каналах или при наличии определенных файерволов это дает обратный эффект.
Как «вылечить» и сделать сессию плавной: Нужно принудительно заставить RDP работать только через TCP.
1. Нажмите Win + R, введите gpedit.msc.
2. Путь: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Удаленная сессия.
3. Найдите: «Выбор протоколов передачи данных удаленного рабочего стола».
4. Установите: «Включено» и выберите «Только TCP».
После этого задержки (input lag) обычно пропадают.
#windows #server #rdp #sysadmin #troubleshooting #it
Замечали, что иногда курсор в RDP-сессии двигается рывками, а текст печатается с задержкой? По умолчанию современный RDP (начиная с версии 8.0) пытается использовать протокол UDP для ускорения графики. Но на нестабильных каналах или при наличии определенных файерволов это дает обратный эффект.
Как «вылечить» и сделать сессию плавной: Нужно принудительно заставить RDP работать только через TCP.
1. Нажмите Win + R, введите gpedit.msc.
2. Путь: Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удаленных рабочих столов -> Удаленная сессия.
3. Найдите: «Выбор протоколов передачи данных удаленного рабочего стола».
4. Установите: «Включено» и выберите «Только TCP».
После этого задержки (input lag) обычно пропадают.
#windows #server #rdp #sysadmin #troubleshooting #it
👍2
🌐 Networking: MTU и «загадочные» проблемы с загрузкой сайтов
Бывает так: пинг идет, SSH работает, но как только вы пытаетесь открыть тяжелый сайт или передать файл — соединение обрывается. В 99% случаев это проблема MTU (Maximum Transmission Unit). Пакет слишком велик для какого-то узла в цепочке, а ICMP-сообщения о фрагментации заблокированы (PMTUD failure).
Как найти идеальный MTU вручную: Используйте пинг с запретом фрагментации (-f в Windows, -M do в Linux):
Windows:
Если пишет «Требуется фрагментация», уменьшайте число 1472 на 10, пока пинг не пройдет. К полученному числу прибавьте 28 байт (заголовки IP/ICMP) — это и будет ваш идеальный MTU.
#networking #tcpip #mtu #ping #troubleshooting #network
Бывает так: пинг идет, SSH работает, но как только вы пытаетесь открыть тяжелый сайт или передать файл — соединение обрывается. В 99% случаев это проблема MTU (Maximum Transmission Unit). Пакет слишком велик для какого-то узла в цепочке, а ICMP-сообщения о фрагментации заблокированы (PMTUD failure).
Как найти идеальный MTU вручную: Используйте пинг с запретом фрагментации (-f в Windows, -M do в Linux):
Windows:
ping google.com -f -l 1472 Linux: ping google.com -M do -s 1472
Если пишет «Требуется фрагментация», уменьшайте число 1472 на 10, пока пинг не пройдет. К полученному числу прибавьте 28 байт (заголовки IP/ICMP) — это и будет ваш идеальный MTU.
#networking #tcpip #mtu #ping #troubleshooting #network
👍2
🧠 Skills: Триада системного администратора в 2026 году
Просто «уметь переустанавливать ОС» уже недостаточно. Чтобы не остаться на зарплате эникейщика, фокус в обучении должен сместиться с инструментов на принципы.
Что качать сейчас:
1. Infrastructure as Code (IaC): Перестаньте настраивать серверы руками. Если вы не знаете Terraform или Ansible (хотя бы базу), вы тратите свое время.
2. Observability: Умение не просто смотреть в top, а настраивать алертинг в Prometheus/Grafana так, чтобы знать о проблеме до того, как позвонит директор.
3. Soft Skills (умение договариваться): Технари часто это игнорируют. Но умение обосновать бюджет на новые диски или объяснить бизнесу, почему «бэкап — это не роскошь», ценится дороже, чем знание флагов компиляции ядра.
Инструменты меняются раз в 3 года, фундаментальные навыки управления системами — остаются.
#career #skills #devops #sysadmin #it #learning
Просто «уметь переустанавливать ОС» уже недостаточно. Чтобы не остаться на зарплате эникейщика, фокус в обучении должен сместиться с инструментов на принципы.
Что качать сейчас:
1. Infrastructure as Code (IaC): Перестаньте настраивать серверы руками. Если вы не знаете Terraform или Ansible (хотя бы базу), вы тратите свое время.
2. Observability: Умение не просто смотреть в top, а настраивать алертинг в Prometheus/Grafana так, чтобы знать о проблеме до того, как позвонит директор.
3. Soft Skills (умение договариваться): Технари часто это игнорируют. Но умение обосновать бюджет на новые диски или объяснить бизнесу, почему «бэкап — это не роскошь», ценится дороже, чем знание флагов компиляции ядра.
Инструменты меняются раз в 3 года, фундаментальные навыки управления системами — остаются.
#career #skills #devops #sysadmin #it #learning
👍4❤1🔥1
🐧 Linux: Спасаем диск от Ghost Files (удаленные, но занятые файлы)
Бывает так: df -h говорит, что диск забит на 100%, но du -sh показывает, что папки занимают всего пару гигабайт. Куда делось место? Скорее всего, какой-то процесс (например, nginx или база данных) держит открытым файл, который вы уже удалили командой rm. В Linux файл не удалится физически, пока его держит процесс.
Как найти этих "призраков":
Что делать: Вы увидите список файлов с пометкой (deleted). Вместо того чтобы убивать процесс (что критично для продакшена), можно просто "обнулить" дескриптор файла:
Место освободится мгновенно без рестарта сервиса.
#linux #sysadmin #troubleshooting #storage #lsof #filesystems
Бывает так: df -h говорит, что диск забит на 100%, но du -sh показывает, что папки занимают всего пару гигабайт. Куда делось место? Скорее всего, какой-то процесс (например, nginx или база данных) держит открытым файл, который вы уже удалили командой rm. В Linux файл не удалится физически, пока его держит процесс.
Как найти этих "призраков":
lsof +L1
Что делать: Вы увидите список файлов с пометкой (deleted). Вместо того чтобы убивать процесс (что критично для продакшена), можно просто "обнулить" дескриптор файла:
truncate -s 0 /proc/[PID]/fd/[FD_NUMBER]
Место освободится мгновенно без рестарта сервиса.
#linux #sysadmin #troubleshooting #storage #lsof #filesystems
👍2
🛡️ Security: SSH Fingerprinting — как не стать жертвой Man-in-the-Middle
Когда вы первый раз подключаетесь к серверу, SSH спрашивает: "Are you sure you want to continue connecting?". 99% админов просто пишут yes. Но если кто-то подменил IP или перехватил трафик, вы отдадите свои ключи или пароль злоумышленнику.
Как проверить отпечаток сервера (Fingerprint) по-умному: Перед подключением запросите отпечаток ключа на самом сервере (через консоль ДЦ или KVM):
Как проверить его локально: Если вы уже подключались и хотите убедиться, что ключ не изменился втихую:
Если отпечатки не совпадают — кабель вон из розетки, вас пытаются взломать.
#security #ssh #mitm #linux #infosec #hardening
Когда вы первый раз подключаетесь к серверу, SSH спрашивает: "Are you sure you want to continue connecting?". 99% админов просто пишут yes. Но если кто-то подменил IP или перехватил трафик, вы отдадите свои ключи или пароль злоумышленнику.
Как проверить отпечаток сервера (Fingerprint) по-умному: Перед подключением запросите отпечаток ключа на самом сервере (через консоль ДЦ или KVM):
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
Как проверить его локально: Если вы уже подключались и хотите убедиться, что ключ не изменился втихую:
ssh-keygen -l -f ~/.ssh/known_hosts -F [IP_ADDRESS]
Если отпечатки не совпадают — кабель вон из розетки, вас пытаются взломать.
#security #ssh #mitm #linux #infosec #hardening
🚀 Networking: Забытый протокол BFD — детекция падения линка за миллисекунды
Стандартные таймеры в протоколах маршрутизации (OSPF, BGP) довольно медленные. Если упадет промежуточный коммутатор, ваш роутер может ждать до 30-90 секунд, прежде чем поймет, что связи нет, и переключит трафик на резерв.
Решение: BFD (Bidirectional Forwarding Detection). Это легкий протокол, который работает в паре с OSPF/BGP и проверяет связность каждые 50-100 миллисекунд.
Пример настройки (Cisco/Quagga стиль):
Теперь, если линк моргнет, переключение на бэкап произойдет быстрее, чем пользователь успеет заметить лаг в Zoom.
#networking #bfd #cisco #bgp #highavailability #ospf #network
Стандартные таймеры в протоколах маршрутизации (OSPF, BGP) довольно медленные. Если упадет промежуточный коммутатор, ваш роутер может ждать до 30-90 секунд, прежде чем поймет, что связи нет, и переключит трафик на резерв.
Решение: BFD (Bidirectional Forwarding Detection). Это легкий протокол, который работает в паре с OSPF/BGP и проверяет связность каждые 50-100 миллисекунд.
Пример настройки (Cisco/Quagga стиль):
interface GigabitEthernet0/1 bfd interval 100 min_rx 100 multiplier 3
Теперь, если линк моргнет, переключение на бэкап произойдет быстрее, чем пользователь успеет заметить лаг в Zoom.
#networking #bfd #cisco #bgp #highavailability #ospf #network
🐧 Linux: Load Average врёт. Смотри на PSI (Pressure Stall Information)
Админы десятилетиями смотрели на load average.
Но что значит LA 4.0 на 4-ядерном CPU?
Это процессы, которые считают?
Или те, которые ждут диск?
Или ждут память?
Load Average смешивает всё в кучу.
В современных ядрах (Linux 4.20+) есть PSI — метрика, которая показывает реальную боль системы.
Она говорит: «Процессы тупили 15% времени, потому что ждали, пока диск прочитает данные».
Куда смотреть:
Как читать:
Вывод: some avg10=0.00 avg60=0.00 avg300=0.00 total=0 Если avg10 (среднее за 10 сек) равно 20.00, значит, 20% времени ваши задачи просто висели и ждали ввода-вывода. Это точный диагноз тормозов, в отличие от размытого Load Avg.
#linux #performance #psi #kernel #monitoring #troubleshooting #sysadmin
Админы десятилетиями смотрели на load average.
Но что значит LA 4.0 на 4-ядерном CPU?
Это процессы, которые считают?
Или те, которые ждут диск?
Или ждут память?
Load Average смешивает всё в кучу.
В современных ядрах (Linux 4.20+) есть PSI — метрика, которая показывает реальную боль системы.
Она говорит: «Процессы тупили 15% времени, потому что ждали, пока диск прочитает данные».
Куда смотреть:
/proc/pressure/cpu
/proc/pressure/io
/proc/pressure/memory
Как читать:
cat /proc/pressure/io
Вывод: some avg10=0.00 avg60=0.00 avg300=0.00 total=0 Если avg10 (среднее за 10 сек) равно 20.00, значит, 20% времени ваши задачи просто висели и ждали ввода-вывода. Это точный диагноз тормозов, в отличие от размытого Load Avg.
#linux #performance #psi #kernel #monitoring #troubleshooting #sysadmin
❤2
🪟 Windows: Pktmon — встроенный «Wireshark», о котором молчит Microsoft
Вам нужно срочно отследить сетевые пакеты на сервере, но ставить Wireshark запрещено политиками безопасности? Начиная с Windows 10/Server 2019, в системе уже есть мощный сниффер — Pktmon.
Он работает на уровне драйверов и видит трафик даже внутри виртуального свитча Hyper-V и контейнеров, где обычный Wireshark слеп.
Как пользоваться:
1. Добавить фильтр (например, порт 443): pktmon filter add -p 443
2. Запустить захват: pktmon start --etw -p 0 -c 0 (пишет в реальном времени)
3. Остановить: pktmon stop
4. Конвертировать лог в понятный формат (txt или pcapng): pktmon etl2pcap pktmon.etl
Теперь полученный файл можно открыть в Wireshark на своей машине. Никакого стороннего софта на проде!
#windows #networking #pktmon #sniffer #security #troubleshooting #powershell
Вам нужно срочно отследить сетевые пакеты на сервере, но ставить Wireshark запрещено политиками безопасности? Начиная с Windows 10/Server 2019, в системе уже есть мощный сниффер — Pktmon.
Он работает на уровне драйверов и видит трафик даже внутри виртуального свитча Hyper-V и контейнеров, где обычный Wireshark слеп.
Как пользоваться:
1. Добавить фильтр (например, порт 443): pktmon filter add -p 443
2. Запустить захват: pktmon start --etw -p 0 -c 0 (пишет в реальном времени)
3. Остановить: pktmon stop
4. Конвертировать лог в понятный формат (txt или pcapng): pktmon etl2pcap pktmon.etl
Теперь полученный файл можно открыть в Wireshark на своей машине. Никакого стороннего софта на проде!
#windows #networking #pktmon #sniffer #security #troubleshooting #powershell
🧠 Skills: Метод USE — священный грааль диагностики
Когда сервер «ложится», паника заставляет админа тыкать во все команды подряд:
Для каждого ресурса (CPU, Диск, Память, Сеть) вы должны проверить три параметра:
1. Utilization (Утилизация): Насколько ресурс занят? (в 😵
* Пример: Диск занят на 90%.
2. Saturation (Насыщение): Есть ли очередь из тех, кто не может получить ресурс?
* Пример: Очередь диска (await) выросла.
3. Errors (Ошибки): Есть ли аппаратные или логические сбои?
* Пример: I/O errors в логах контроллера.
Если вы будете идти по этому чеклисту, вы найдете проблему за 2 минуты, а не за 2 часа хаотичного поиска.
#skills #troubleshooting #brendangregg #performance #methodology #admin #career
Когда сервер «ложится», паника заставляет админа тыкать во все команды подряд:
top , free , ping . Остановитесь. Брендан Грегг (гуру производительности) придумал метод USE, который работает для любой системы, будь то Linux, Windows, SQL или микроволновка.Для каждого ресурса (CPU, Диск, Память, Сеть) вы должны проверить три параметра:
1. Utilization (Утилизация): Насколько ресурс занят? (в 😵
* Пример: Диск занят на 90%.
2. Saturation (Насыщение): Есть ли очередь из тех, кто не может получить ресурс?
* Пример: Очередь диска (await) выросла.
3. Errors (Ошибки): Есть ли аппаратные или логические сбои?
* Пример: I/O errors в логах контроллера.
Если вы будете идти по этому чеклисту, вы найдете проблему за 2 минуты, а не за 2 часа хаотичного поиска.
#skills #troubleshooting #brendangregg #performance #methodology #admin #career
🐚 Bash: Шаблон «Пуленепробиваемого» скрипта
90% админских скриптов падают молча.
Например, cd /wrong/path не сработал, а следующая команда rm -rf * удалила всё в корне (утрирую, но суть ясна). В 2026 году мы используем Bash Strict Mode и Traps.
Код для начала любого скрипта:
Разбор магии:
1. set -e: Скрипт умрет сразу, если любая команда вернет ошибку.
2. set -u: Запрещает использовать пустые переменные (спасает от rm -rf /$UNDEFINED_VAR).
3. set -o pipefail: Ловит ошибки даже в середине конвейера (grep | awk).
4. trap: Гарантированно выполнит функцию cleanup, даже если скрипт упадет с ошибкой.
Это база. Не пишите в прод без этого хедера.
#linux #bash #scripting #devops #bestpractices #automation
90% админских скриптов падают молча.
Например, cd /wrong/path не сработал, а следующая команда rm -rf * удалила всё в корне (утрирую, но суть ясна). В 2026 году мы используем Bash Strict Mode и Traps.
Код для начала любого скрипта:
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
# Функция очистки при выходе (даже аварийном)
cleanup() {
echo "🧹 Убираем мусор..."
rm -f /tmp/temp_*.txt
}
# Trap ловит сигналы выхода (EXIT, ошибка, Ctrl+C)
trap cleanup EXIT
echo "🚀 Начинаем работу..."
# Ваш код
Разбор магии:
1. set -e: Скрипт умрет сразу, если любая команда вернет ошибку.
2. set -u: Запрещает использовать пустые переменные (спасает от rm -rf /$UNDEFINED_VAR).
3. set -o pipefail: Ловит ошибки даже в середине конвейера (grep | awk).
4. trap: Гарантированно выполнит функцию cleanup, даже если скрипт упадет с ошибкой.
Это база. Не пишите в прод без этого хедера.
#linux #bash #scripting #devops #bestpractices #automation
⚡ PowerShell: Настоящая многопоточность с -Parallel
В старых версиях PowerShell (5.1) мы страдали с Start-Job (медленно) или Runspaces (сложно).
В PowerShell 7+ (который к 2026 году должен стоять везде) циклы ускоряются в 10-50 раз одной опцией.
Задача: Пингaнуть 100 серверов или проверить службу.
Обычный foreach будет делать это последовательно 5 минут.
Решение 2026 года:
Фишка: Параметр -ThrottleLimit регулирует нагрузку на вашу машину.
Это самый простой способ ускорить рутину админа.
#windows #powershell #scripting #performance #automation #sysadmin
В старых версиях PowerShell (5.1) мы страдали с Start-Job (медленно) или Runspaces (сложно).
В PowerShell 7+ (который к 2026 году должен стоять везде) циклы ускоряются в 10-50 раз одной опцией.
Задача: Пингaнуть 100 серверов или проверить службу.
Обычный foreach будет делать это последовательно 5 минут.
Решение 2026 года:
$servers = 1..100 | ForEach-Object { "Server-$_" }
# Запускаем в 10 потоков одновременно
$results = $servers | ForEach-Object -Parallel {
# Внутри этого блока - отдельный поток
$s = $_
$check = Test-NetConnection -ComputerName $s -Port 443 -WarningAction SilentlyContinue
# Возвращаем объект (а не текст!)
[PSCustomObject]@{
Server = $s
Port443 = $check.TcpTestSucceeded
Time = (Get-Date).ToString("HH:mm:ss")
}
} -ThrottleLimit 10
# Красивый вывод
$results | Format-Table -AutoSize
Фишка: Параметр -ThrottleLimit регулирует нагрузку на вашу машину.
Это самый простой способ ускорить рутину админа.
#windows #powershell #scripting #performance #automation #sysadmin
🧠 Skill: JSON — универсальный клей админа
Раньше мы грепали текст (grep | awk).
В 2026 году, когда вокруг Docker, Kubernetes и REST API, вывод почти всегда можно получить в JSON.
Парсить JSON как текст — это путь к ошибкам.
Учимся работать с объектами, а не строками:
🐧 Linux (jq): Не делайте grep "status", делайте:
(Выведет имена только упавших сервисов).
🪟 PowerShell: Здесь JSON становится родным объектом .NET автоматически:
Совет: Если консольная утилита имеет флаг --json (как kubectl, aws cli, docker), всегда используйте его для скриптов. Это делает вашу автоматизацию неубиваемой при смене форматирования вывода разработчиками.
#skills #json #jq #powershell #bash #devops #api
Раньше мы грепали текст (grep | awk).
В 2026 году, когда вокруг Docker, Kubernetes и REST API, вывод почти всегда можно получить в JSON.
Парсить JSON как текст — это путь к ошибкам.
Учимся работать с объектами, а не строками:
🐧 Linux (jq): Не делайте grep "status", делайте:
curl -s https://api.site.com/health | jq '.services[] | select(.status=="down") | .name'
(Выведет имена только упавших сервисов).
🪟 PowerShell: Здесь JSON становится родным объектом .NET автоматически:
$data = curl https://api.site.com/health | ConvertFrom-Json $data.services | Where-Object { $_.status -eq 'down' } | Select-Object name
Совет: Если консольная утилита имеет флаг --json (как kubectl, aws cli, docker), всегда используйте его для скриптов. Это делает вашу автоматизацию неубиваемой при смене форматирования вывода разработчиками.
#skills #json #jq #powershell #bash #devops #api
👍2🔥2👏1
🐧 Bash: Умная очистка логов без риска убить систему
Частая ошибка админа — удалять логи командой rm. Если сервис продолжает писать в файл, место на диске не освободится (файл останется "призраком"), пока сервис не рестартанут. 👻 Правильный путь — обнуление через перенаправление.
Скрипт-однострочник для безопасной очистки:
Почему это OK:
1. > "{}" — очищает содержимое файла, но оставляет сам файл на месте.
2. Сервис (nginx, mysql) не теряет связь с файлом и продолжает писать в него без рестарта.
3. Система мгновенно видит свободное место. 📦
#linux #bash #sysadmin #automation #storage #server_cleanup 🛠️
Частая ошибка админа — удалять логи командой rm. Если сервис продолжает писать в файл, место на диске не освободится (файл останется "призраком"), пока сервис не рестартанут. 👻 Правильный путь — обнуление через перенаправление.
Скрипт-однострочник для безопасной очистки:
#!/bin/bash
# Находим все логи больше 500Мб в /var/log и обнуляем их содержимое
find /var/log -type f -name "*.log" -size +500M -exec sh -c '> "{}"' \;
echo "✅ Тяжелые логи обнулены, дескрипторы сохранены!"
Почему это OK:
1. > "{}" — очищает содержимое файла, но оставляет сам файл на месте.
2. Сервис (nginx, mysql) не теряет связь с файлом и продолжает писать в него без рестарта.
3. Система мгновенно видит свободное место. 📦
#linux #bash #sysadmin #automation #storage #server_cleanup 🛠️
❤1
🧠 Skill: MTR — "Швейцарский нож" сетевой диагностики
Забудь про обычный ping или traceroute.
Когда клиент говорит "интернет тормозит", тебе нужен MTR (My Traceroute).
Он объединяет пинг и трассировку, показывая потери пакетов на каждом прыжке (hop) в динамике. 📈
Как читать вывод mtr:
Запусти:
Смотри на колонку Loss %:
* Если потери только на 1-2 прыжке — проблема в локалке или у провайдера.
* Если потери только в середине и дальше пропадают — это ICMP rate limiting (не страшно).
* Если потери начались на 5-м прыжке и идут до самого конца — ты нашел проблемный узел. 🎯
* Команда для Linux: sudo apt install mtr -y && mtr 8.8.8.8 Для Windows: Рекомендую форк WinMTR-Redux.
Умение читать графики MTR — это навык, который отделяет админа-новичка от сетевого инженера. 👨💻
#networking #mtr #troubleshooting #skills #sysadmin #devops 🌐
Забудь про обычный ping или traceroute.
Когда клиент говорит "интернет тормозит", тебе нужен MTR (My Traceroute).
Он объединяет пинг и трассировку, показывая потери пакетов на каждом прыжке (hop) в динамике. 📈
Как читать вывод mtr:
Запусти:
mtr -rw google.com
Смотри на колонку Loss %:
* Если потери только на 1-2 прыжке — проблема в локалке или у провайдера.
* Если потери только в середине и дальше пропадают — это ICMP rate limiting (не страшно).
* Если потери начались на 5-м прыжке и идут до самого конца — ты нашел проблемный узел. 🎯
* Команда для Linux: sudo apt install mtr -y && mtr 8.8.8.8 Для Windows: Рекомендую форк WinMTR-Redux.
Умение читать графики MTR — это навык, который отделяет админа-новичка от сетевого инженера. 👨💻
#networking #mtr #troubleshooting #skills #sysadmin #devops 🌐
✍2🔥2👍1
🐧 Bash: Параллельный запуск задач без боли и GNU Parallel
Многие админы не знают, что для параллельного выполнения задач в скриптах не обязательно ставить тяжелые утилиты. В Bash есть встроенный механизм управления фоновыми процессами через wait. Это маст-хэв, когда нужно, например, одновременно проверить доступность 50 хостов или сжать 20 папок с логами. 📦
Пример «умного» скрипта:
Почему это OK:
1. Скорость: Скрипт выполняется за время самого долгого пинга, а не по очереди.
2. Простота: Никаких лишних зависимостей.
3. Контроль: Команда wait гарантирует, что скрипт не пойдет дальше, пока все «хвосты» не закроются.
#linux #bash #automation #sysadmin #performance #scripting 🛠️
Многие админы не знают, что для параллельного выполнения задач в скриптах не обязательно ставить тяжелые утилиты. В Bash есть встроенный механизм управления фоновыми процессами через wait. Это маст-хэв, когда нужно, например, одновременно проверить доступность 50 хостов или сжать 20 папок с логами. 📦
Пример «умного» скрипта:
#!/bin/bash
targets=("192.168.1.1" "192.168.1.2" "192.168.1.3") # и так далее
for ip in "${targets[@]}"; do
(
if ping -c 1 -W 1 "$ip" > /dev/null; then
echo "✅ $ip доступен"
else
echo "❌ $ip лежит"
fi
) & # Запуск в фоне
done
wait # Ждем завершения всех фоновых задач
echo "🎯 Все проверки завершены!"
Почему это OK:
1. Скорость: Скрипт выполняется за время самого долгого пинга, а не по очереди.
2. Простота: Никаких лишних зависимостей.
3. Контроль: Команда wait гарантирует, что скрипт не пойдет дальше, пока все «хвосты» не закроются.
#linux #bash #automation #sysadmin #performance #scripting 🛠️
⚡ PowerShell: Ищем «тяжелые» файлы быстрее, чем проводник
Когда на диске Windows Server внезапно заканчивается место, стандартный поиск Windows — это мучение. 🐌 Через PowerShell можно выудить список самых больших файлов за считанные секунды и сразу отсортировать их.
Полезный скрипт для поиска ТОП-10 тяжеловесов:
Фишка: Параметр -ErrorAction SilentlyContinue позволяет скрипту не спотыкаться на системных папках, куда у админа нет доступа, и продолжать поиск. Вывод в гигабайтах сразу дает понять масштаб бедствия. 📈
#windows #powershell #sysadmin #storage #cleanup #automation 🧹
Когда на диске Windows Server внезапно заканчивается место, стандартный поиск Windows — это мучение. 🐌 Через PowerShell можно выудить список самых больших файлов за считанные секунды и сразу отсортировать их.
Полезный скрипт для поиска ТОП-10 тяжеловесов:
# Ищем файлы больше 500Мб в папке C:\Shares
$path = "C:\Shares"
Get-ChildItem -Path $path -Recurse -File -ErrorAction SilentlyContinue |
Sort-Object Length -Descending |
Select-Object Name, @{Name="Size(GB)";Expression={$_.Length / 1GB}}, Directory |
Select-Object -First 10 |
Format-Table -AutoSize
Write-Host "📊 Сканирование завершено. Время чистить диски!" -ForegroundColor Cyan
Фишка: Параметр -ErrorAction SilentlyContinue позволяет скрипту не спотыкаться на системных папках, куда у админа нет доступа, и продолжать поиск. Вывод в гигабайтах сразу дает понять масштаб бедствия. 📈
#windows #powershell #sysadmin #storage #cleanup #automation 🧹
✍1👍1🔥1👏1
🌐 Networking: DNS-over-HTTPS (DoH) в Linux — приватность уровня 2026
В 2026 году обычный DNS-трафик (порт 53) — это открытая книга для любого, кто сидит на транзите. Если хочешь скрыть свои запросы от посторонних глаз и защититься от подмены DNS, пора переходить на DoH. В современных дистрибутивах (Ubuntu 24.04+/Debian 13+) это настраивается через systemd-resolved. 🔐
Как включить за 1 минуту:
Отредактируй конфиг: sudo nano /etc/systemd/resolved.conf
Добавь или измени строки:
Перезапусти службу: sudo systemctl restart systemd-resolved
Как проверить: resolvectl status — в строке "Protocols" должно появиться +DoH.
Теперь твои DNS-запросы зашифрованы внутри обычного HTTPS-трафика. Провайдер видит, что ты куда-то ходишь, но не знает, на какие именно домены. 🕵️♂️
#networking #security #linux #doh #privacy #sysadmin #dns 🛡️
В 2026 году обычный DNS-трафик (порт 53) — это открытая книга для любого, кто сидит на транзите. Если хочешь скрыть свои запросы от посторонних глаз и защититься от подмены DNS, пора переходить на DoH. В современных дистрибутивах (Ubuntu 24.04+/Debian 13+) это настраивается через systemd-resolved. 🔐
Как включить за 1 минуту:
Отредактируй конфиг: sudo nano /etc/systemd/resolved.conf
Добавь или измени строки:
[Resolve]
DNS=1.1.1.1#cloudflare-dns.com
DNSOverHTTPS=yes
Перезапусти службу: sudo systemctl restart systemd-resolved
Как проверить: resolvectl status — в строке "Protocols" должно появиться +DoH.
Теперь твои DNS-запросы зашифрованы внутри обычного HTTPS-трафика. Провайдер видит, что ты куда-то ходишь, но не знает, на какие именно домены. 🕵️♂️
#networking #security #linux #doh #privacy #sysadmin #dns 🛡️
🔥1
🐧 Bash: Проверка SSL-сертификатов до того, как они «протухнут»
Пятница — идеальный день, чтобы проверить, не отвалится ли какой-нибудь домен в субботу утром. 📉 Вместо того чтобы заходить на сайты руками, напишем скрипт, который массово проверяет даты истечения через openssl.
Полезный скрипт для списка доменов:
Почему это маст-хэв: Этот скрипт можно легко обернуть в телеграм-бота, чтобы получать алерты, если до истечения осталось меньше 10 дней. Безопасность — это когда всё работает тихо. 🤫
#linux #bash #ssl #security #automation #sysadmin #devops 🔐
Пятница — идеальный день, чтобы проверить, не отвалится ли какой-нибудь домен в субботу утром. 📉 Вместо того чтобы заходить на сайты руками, напишем скрипт, который массово проверяет даты истечения через openssl.
Полезный скрипт для списка доменов:
#!/bin/bash
# Список доменов для проверки
DOMAINS=("google.com" "github.com" "my-company.ru")
echo "⏳ Проверка сертификатов..."
for domain in "${DOMAINS[@]}"; do
expiration_date=$(echo | openssl s_client -servername "$domain" -connect "$domain":443 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
# Переводим в формат timestamp для сравнения
exp_epoch=$(date -d "$expiration_date" +%s)
now_epoch=$(date +%s)
days_left=$(( ($exp_epoch - $now_epoch) / 86400 ))
if [ $days_left -lt 7 ]; then
echo "🚨 $domain: ОСТАЛОСЬ ВСЕГО $days_left ДНЕЙ!"
else
echo "✅ $domain: еще $days_left дней"
fi
done
Почему это маст-хэв: Этот скрипт можно легко обернуть в телеграм-бота, чтобы получать алерты, если до истечения осталось меньше 10 дней. Безопасность — это когда всё работает тихо. 🤫
#linux #bash #ssl #security #automation #sysadmin #devops 🔐
⚡ PowerShell: Как узнать, кто удалил файл на сетевом диске?
«Я ничего не трогал, оно само исчезло!» — классика. 🤡 Если в Active Directory включен аудит доступа к объектам, PowerShell поможет быстро найти виновника без долгого копания в Event Viewer.
Скрипт для поиска события удаления (Event ID 4660):
Нюанс: Чтобы это работало, на нужной папке в свойствах безопасности (вкладка «Аудит») должен быть включен аудит на удаление.
#windows #powershell #security #audit #active_directory #sysadmin 📂
«Я ничего не трогал, оно само исчезло!» — классика. 🤡 Если в Active Directory включен аудит доступа к объектам, PowerShell поможет быстро найти виновника без долгого копания в Event Viewer.
Скрипт для поиска события удаления (Event ID 4660):
# Укажите время, за которое ищем логи (последние 24 часа)
$TimeFilter = (Get-Date).AddDays(-1)
$Events = Get-WinEvent -FilterHashtable @{
LogName = 'Security'
ID = 4660
StartTime = $TimeFilter
} -ErrorAction SilentlyContinue
foreach ($Event in $Events) {
[xml]$EventXml = $Event.ToXml()
$User = $EventXml.Event.EventData.Data | Where-Object { $_.Name -eq 'SubjectUserName' } | Select-Object -ExpandProperty '#text'
$Time = $Event.TimeCreated
Write-Host "🗑️ Файл был удален пользователем: $User в $Time" -ForegroundColor Red
}
Нюанс: Чтобы это работало, на нужной папке в свойствах безопасности (вкладка «Аудит») должен быть включен аудит на удаление.
#windows #powershell #security #audit #active_directory #sysadmin 📂
🧠 Skill: Протокол SSH Multiplexing — ускоряем работу в 10 раз
Если ты часто прыгаешь по одним и тем же серверам, то знаешь, как бесит ждать 2-3 секунды, пока SSH установит соединение. В 2026 году админы используют Multiplexing, чтобы переиспользовать уже открытое TCP-соединение для новых сессий. 🚀
Как настроить в своем ~/.ssh/config:
Что это дает:
1. Первое подключение: Обычное (ввод пароля/ключа).
2. Второе и последующие: Мгновенное открытие консоли (0.1 сек).
3. ControlPersist 10m: Соединение будет висеть в фоне 10 минут после закрытия последней сессии, чтобы ты мог вернуться мгновенно.
Это критически ускоряет работу Ansible и твоих собственных Bash-скриптов, которые ходят по серверам. 🏎️
#skills #ssh #linux #performance #sysadmin #productivity #automation 🌐
Если ты часто прыгаешь по одним и тем же серверам, то знаешь, как бесит ждать 2-3 секунды, пока SSH установит соединение. В 2026 году админы используют Multiplexing, чтобы переиспользовать уже открытое TCP-соединение для новых сессий. 🚀
Как настроить в своем ~/.ssh/config:
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 10m
Что это дает:
1. Первое подключение: Обычное (ввод пароля/ключа).
2. Второе и последующие: Мгновенное открытие консоли (0.1 сек).
3. ControlPersist 10m: Соединение будет висеть в фоне 10 минут после закрытия последней сессии, чтобы ты мог вернуться мгновенно.
Это критически ускоряет работу Ansible и твоих собственных Bash-скриптов, которые ходят по серверам. 🏎️
#skills #ssh #linux #performance #sysadmin #productivity #automation 🌐