📦 TCP vs UDP: Почему VoIP и игры выбирают ненадежность?
Джуниор спрашивает: "TCP гарантирует доставку, а UDP теряет пакеты. Почему мы вообще используем UDP для звонков и YouTube?"
Ответ в Заголовках (Overhead).
1. TCP (Тяжеловес):
* Заголовок 20-60 байт.
* Рукопожатие, подтверждение каждого пакета (ACK), контроль порядка, повторная отправка.
* Результат: Если пакет потерялся, видео "замрет" и будет ждать его. Вы увидите лаг.
2. UDP (Спринтер):
* Заголовок всего 8 байт.
* Отправил и забыл. Никаких проверок.
* Результат: Если пакет с куском голоса потерялся — вы услышите микро-щелчок, но разговор продолжится в реальном времени.
Суть: В разговоре лучше пропустить букву, чем замолчать на 2 секунды, вспоминая её. Поэтому SIP, RTP и стриминг — это всегда UDP. Не блокируйте его на фаерволах!
#network #tcp #udp #protocols #theory #voip #streaming #basics
Джуниор спрашивает: "TCP гарантирует доставку, а UDP теряет пакеты. Почему мы вообще используем UDP для звонков и YouTube?"
Ответ в Заголовках (Overhead).
1. TCP (Тяжеловес):
* Заголовок 20-60 байт.
* Рукопожатие, подтверждение каждого пакета (ACK), контроль порядка, повторная отправка.
* Результат: Если пакет потерялся, видео "замрет" и будет ждать его. Вы увидите лаг.
2. UDP (Спринтер):
* Заголовок всего 8 байт.
* Отправил и забыл. Никаких проверок.
* Результат: Если пакет с куском голоса потерялся — вы услышите микро-щелчок, но разговор продолжится в реальном времени.
Суть: В разговоре лучше пропустить букву, чем замолчать на 2 секунды, вспоминая её. Поэтому SIP, RTP и стриминг — это всегда UDP. Не блокируйте его на фаерволах!
#network #tcp #udp #protocols #theory #voip #streaming #basics
📊 Linux: Хватит щуриться в df -h. Ставь duf
Вы пишете
Поставьте
Почему это мастхэв:
1. Красота: Рисует цветные бары (сколько занято/свободно). Глаз считывает инфо за 0.1 сек.
2. Группировка: Сам отделяет локальные диски, сетевые шары и псевдо-ФС (tmpfs).
3. JSON: Умеет отдавать вывод в JSON для скриптов мониторинга.
Установка:
Один раз увидите — и удалите алиас на
#linux #storage #duf #cli #tools #visualization #diskusage
Вы пишете
df -h , чтобы проверить место. И видите кривую таблицу, где заголовки съехали, а tmpfs перемешана с реальными дисками. В 2026 году это несерьезно.Поставьте
duf (Disk Usage/Free).Почему это мастхэв:
1. Красота: Рисует цветные бары (сколько занято/свободно). Глаз считывает инфо за 0.1 сек.
2. Группировка: Сам отделяет локальные диски, сетевые шары и псевдо-ФС (tmpfs).
3. JSON: Умеет отдавать вывод в JSON для скриптов мониторинга.
Установка:
sudo apt install duf
Один раз увидите — и удалите алиас на
df .#linux #storage #duf #cli #tools #visualization #diskusage
✍2
📶 CMD: Твой Wi-Fi врет тебе (netsh)
Значок Wi-Fi в трее показывает "3 палочки". Но интернет тормозит. Почему? Потому что "палочки" — это маркетинг. Они не показывают ни уровень шума, ни реальную скорость линка.
Посмотрите правде в глаза через консоль.
Команда:
Куда смотреть в выводе:
1. Signal: Точное значение в % (например, 80%).
2. Radio type: Вы сидите на старом 802.11n или современном 802.11ax?
3. Receive/Transmit Rate: Реальная скорость канала в Мбит/с. Если там "54 Mbps", то гигабитный интернет вам не поможет.
Лайфхак: Запустите это в цикле, ходя по офису с ноутбуком, чтобы найти "мертвые зоны", где сигнал падает ниже 60%.
#windows #wifi #cmd #troubleshooting #network #netsh #wireless
Значок Wi-Fi в трее показывает "3 палочки". Но интернет тормозит. Почему? Потому что "палочки" — это маркетинг. Они не показывают ни уровень шума, ни реальную скорость линка.
Посмотрите правде в глаза через консоль.
Команда:
netsh wlan show interfaces
Куда смотреть в выводе:
1. Signal: Точное значение в % (например, 80%).
2. Radio type: Вы сидите на старом 802.11n или современном 802.11ax?
3. Receive/Transmit Rate: Реальная скорость канала в Мбит/с. Если там "54 Mbps", то гигабитный интернет вам не поможет.
Лайфхак: Запустите это в цикле, ходя по офису с ноутбуком, чтобы найти "мертвые зоны", где сигнал падает ниже 60%.
#windows #wifi #cmd #troubleshooting #network #netsh #wireless
✍2👏1
💾 Правило 3-2-1
В пятницу вечером самое время спросить себя: "Если завтра сгорит серверная, а облако заблокируют — я восстановлю данные?".
Существует только один стандарт надежности бэкапов. Правило 3-2-1.
Разбор:
1. 3 копии данных: Одна боевая (оригинал) + Две резервных.
* Почему: Вероятность смерти одного диска — 1/100. Трех сразу — 1/1 000 000.
2. 2 разных носителя: Не храните все копии на одном RAID-массиве или одном типе дисков.
* Пример: HDD сервера + Ленточная библиотека (или NAS другого бренда).
3. 1 копия оффсайт: Одна копия должна лежать физически в другом здании (или облаке).
* Почему: Пожар, потоп или кража в офисе уничтожат и сервер, и локальный бэкап.
Если у вас нет пункта №3 — считайте, у вас нет бэкапов.
#backup #security #theory #321rule #bestpractice #disasterrecovery #adminlife
В пятницу вечером самое время спросить себя: "Если завтра сгорит серверная, а облако заблокируют — я восстановлю данные?".
Существует только один стандарт надежности бэкапов. Правило 3-2-1.
Разбор:
1. 3 копии данных: Одна боевая (оригинал) + Две резервных.
* Почему: Вероятность смерти одного диска — 1/100. Трех сразу — 1/1 000 000.
2. 2 разных носителя: Не храните все копии на одном RAID-массиве или одном типе дисков.
* Пример: HDD сервера + Ленточная библиотека (или NAS другого бренда).
3. 1 копия оффсайт: Одна копия должна лежать физически в другом здании (или облаке).
* Почему: Пожар, потоп или кража в офисе уничтожат и сервер, и локальный бэкап.
Если у вас нет пункта №3 — считайте, у вас нет бэкапов.
#backup #security #theory #321rule #bestpractice #disasterrecovery #adminlife
Сегодня Пятница:
Всем хороших выходных! Пусть ваш Signal будет 100%, а Disk Usage не превышает 50%! 🍻
Всем хороших выходных! Пусть ваш Signal будет 100%, а Disk Usage не превышает 50%! 🍻
❤6👍1🔥1
🛡️ SSH: Защита от Bruteforce без Fail2Ban? Используем SSH ProxyJump и внутренние лимиты
Многие по привычке ставят Fail2Ban, который парсит логи и забивает таблицу iptables тысячами правил. Но в современных дистрибутивах можно ограничить количество попыток соединений на уровне самого демона или использовать «прыжковый» сервер.
Если вам нужно быстро ограничить аппетиты ботов, обратите внимание на параметр MaxStartups в sshd_config.
Как настроить:
Что это значит:
1. 10: До 10 одновременных неавторизованных подключений разрешены.
2. 30: Если их больше 10, SSH начнет сбрасывать новые попытки с вероятностью 30%.
3. 60: Если попыток больше 60, все новые подключения будут блокироваться до завершения старых.
Это защищает от перегрузки процесса SSH и делает атаку методом перебора бессмысленной.
#security #ssh #linux #devops #hardening #admin
Многие по привычке ставят Fail2Ban, который парсит логи и забивает таблицу iptables тысячами правил. Но в современных дистрибутивах можно ограничить количество попыток соединений на уровне самого демона или использовать «прыжковый» сервер.
Если вам нужно быстро ограничить аппетиты ботов, обратите внимание на параметр MaxStartups в sshd_config.
Как настроить:
В файле /etc/ssh/sshd_config: MaxStartups 10:30:60
Что это значит:
1. 10: До 10 одновременных неавторизованных подключений разрешены.
2. 30: Если их больше 10, SSH начнет сбрасывать новые попытки с вероятностью 30%.
3. 60: Если попыток больше 60, все новые подключения будут блокироваться до завершения старых.
Это защищает от перегрузки процесса SSH и делает атаку методом перебора бессмысленной.
#security #ssh #linux #devops #hardening #admin
✍3
🪟 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 🛠️