🚦 Linux: Какая программа «жрет» интернет? (nethogs)
Сервер тормозит. Канал забит. Вы запускаете top — там всё чисто по CPU. Вы запускаете iftop — там куча IP-адресов, но непонятно, какой именно процесс генерирует этот трафик. Это бэкап? Или Nginx? Или майнер?
Вам нужен nethogs. Это как top, но для трафика. Он группирует скорость не по IP, а по PID и названию процесса.
Запуск:
Что вы увидите:
Сразу видно: Python-скрипт (вероятно, бэкап) выжирает весь аплоад. Убиваем процесс, спасаем сеть.
Установка: apt install nethogs / yum install nethogs
#linux #network #troubleshooting #nethogs #cli #traffic
Сервер тормозит. Канал забит. Вы запускаете top — там всё чисто по CPU. Вы запускаете iftop — там куча IP-адресов, но непонятно, какой именно процесс генерирует этот трафик. Это бэкап? Или Nginx? Или майнер?
Вам нужен nethogs. Это как top, но для трафика. Он группирует скорость не по IP, а по PID и названию процесса.
Запуск:
sudo nethogs eth0
Что вы увидите:
PID USER PROGRAM SENT RECEIVED
1234 root /usr/bin/python3 105 KB/s 10 KB/s
5678 www-data /usr/sbin/nginx 10 KB/s 5 KB/s
Сразу видно: Python-скрипт (вероятно, бэкап) выжирает весь аплоад. Убиваем процесс, спасаем сеть.
Установка: apt install nethogs / yum install nethogs
#linux #network #troubleshooting #nethogs #cli #traffic
👍2
🔑 CMD: Вспоминаем забытый пароль от Wi-Fi
Классика: Приходит начальник с новым айфоном. "Подключи меня к нашему Wi-Fi в переговорке". А вы этот пароль вводили 2 года назад и забыли. Он "зазвездочен" в настройках Windows.
Не надо лезть в админку роутера. Windows помнит всё в открытом виде.
Одна команда в консоли:
(Где Office_Guest — имя вашей сети)
Листаем вниз до раздела Security settings -> Key Content. Там и лежит ваш пароль открытым текстом.
Совет: Если забыли точное название сети, сначала введите netsh wlan show profiles, чтобы увидеть весь список сохраненных сетей.
Работает на любом ноутбуке с Windows. Спасает в 10 случаях из 10.
#windows #wifi #cmd #hacks #adminlife #network
Классика: Приходит начальник с новым айфоном. "Подключи меня к нашему Wi-Fi в переговорке". А вы этот пароль вводили 2 года назад и забыли. Он "зазвездочен" в настройках Windows.
Не надо лезть в админку роутера. Windows помнит всё в открытом виде.
Одна команда в консоли:
netsh wlan show profile name="Office_Guest" key=clear
(Где Office_Guest — имя вашей сети)
Листаем вниз до раздела Security settings -> Key Content. Там и лежит ваш пароль открытым текстом.
Совет: Если забыли точное название сети, сначала введите netsh wlan show profiles, чтобы увидеть весь список сохраненных сетей.
Работает на любом ноутбуке с Windows. Спасает в 10 случаях из 10.
#windows #wifi #cmd #hacks #adminlife #network
❤8
💀 Cron мертв. Да здравствуют Systemd Timers
Мы все привыкли писать crontab -e. Это просто, но убого: ❌ Если задача упала, вы узнаете об этом только если настроили почту. ❌ Логи надо перенаправлять вручную (>> /var/log/my.log 2>&1). ❌ Нельзя сказать: «Запусти бэкап только ПОСЛЕ того, как загрузилась база данных».
В 2025 году Архитектор использует Systemd Timers.
Как это сделать:
Создаем сервис (/etc/systemd/system/backup.service): Описываем, что делать.
Создаем таймер (/etc/systemd/system/backup.timer): Описываем, когда делать.
Активируем: systemctl enable --now backup.timer
Бонусы:
* systemctl list-timers — показывает, когда был последний запуск и когда следующий.
* journalctl -u backup.service — все логи из коробки.
* Можно добавить OnFailure=alert.service, чтобы телеграфировать об ошибках.
#linux #systemd #cron #automation #modern #bestpractice
Мы все привыкли писать crontab -e. Это просто, но убого: ❌ Если задача упала, вы узнаете об этом только если настроили почту. ❌ Логи надо перенаправлять вручную (>> /var/log/my.log 2>&1). ❌ Нельзя сказать: «Запусти бэкап только ПОСЛЕ того, как загрузилась база данных».
В 2025 году Архитектор использует Systemd Timers.
Как это сделать:
Создаем сервис (/etc/systemd/system/backup.service): Описываем, что делать.
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
Создаем таймер (/etc/systemd/system/backup.timer): Описываем, когда делать.
[Timer]
OnCalendar=*-*-* 03:00:00 # Каждый день в 3 ночи
Persistent=true # Если сервер был выключен, запустить сразу при включении!
[Install]
WantedBy=timers.target
Активируем: systemctl enable --now backup.timer
Бонусы:
* systemctl list-timers — показывает, когда был последний запуск и когда следующий.
* journalctl -u backup.service — все логи из коробки.
* Можно добавить OnFailure=alert.service, чтобы телеграфировать об ошибках.
#linux #systemd #cron #automation #modern #bestpractice
🚀 PowerShell: Ускоряем чтение логов в 100 раз (XPath)
Задача: Найти в Event Log событие блокировки пользователя (ID 4740) за последний час. Обычный админ пишет так:
Проблема: PowerShell сначала выкачивает ВСЕ миллион событий из журнала к себе в память, и только потом отсеивает нужные. Это вешает сервер.
Сеньор использует Server-side filtering (XPath):
Результат: Вместо 2 минут команда отрабатывает за 0.3 секунды. Фильтруйте данные на источнике, а не в пайплайне.
#powershell #windows #performance #scripting #optimization #xml
Задача: Найти в Event Log событие блокировки пользователя (ID 4740) за последний час. Обычный админ пишет так:
# 🐢 Медленно (Client-side filtering)
Get-WinEvent -LogName Security |
Where-Object { $_.Id -eq 4740 -and $_.TimeCreated -gt (Get-Date).AddHours(-1) }
Проблема: PowerShell сначала выкачивает ВСЕ миллион событий из журнала к себе в память, и только потом отсеивает нужные. Это вешает сервер.
Сеньор использует Server-side filtering (XPath):
# 🐇 Быстро (Фильтрация на уровне движка Windows)
$XML = "*[System[(EventID=4740) and TimeCreated[timediff(@SystemTime) <= 3600000]]]"
Get-WinEvent -LogName Security -FilterXPath $XML
Результат: Вместо 2 минут команда отрабатывает за 0.3 секунды. Фильтруйте данные на источнике, а не в пайплайне.
#powershell #windows #performance #scripting #optimization #xml
💣 Bash: Защита от «Ой, я запустил это на Проде»
У вас есть скрипт cleanup.sh или reset-db.sh. Однажды вы, уставший, случайно запустите его не на тестовом сервере, а на srv-prod-01.
Добавьте этот Safety Check в начало любого опасного скрипта. Он спасет вам карьеру.
Этот простой if заставляет мозг проснуться перед тем, как нажать Enter.
#bash #scripting #safety #production #failsafe #devops
У вас есть скрипт cleanup.sh или reset-db.sh. Однажды вы, уставший, случайно запустите его не на тестовом сервере, а на srv-prod-01.
Добавьте этот Safety Check в начало любого опасного скрипта. Он спасет вам карьеру.
#!/bin/bash
# 1. Получаем имя хоста
CURRENT_HOST=$(hostname)
# 2. Проверяем, есть ли "prod" в имени
if [[ "$CURRENT_HOST" == *"prod"* ]]; then
echo "⚠️ ВНИМАНИЕ! Вы запускаете опасный скрипт на ПРОДАКШЕНЕ ($CURRENT_HOST)!"
echo "Введите 'YES', чтобы продолжить, или что угодно для отмены:"
read -r CONFIRM
if [ "$CONFIRM" != "YES" ]; then
echo "❌ Отмена операции."
exit 1
fi
fi
echo "🚀 Поехали..."
# Дальше идет ваша логика
Этот простой if заставляет мозг проснуться перед тем, как нажать Enter.
#bash #scripting #safety #production #failsafe #devops
🔒 Linux: Как защитить файл от rm -rf (Даже от Root)
Вы думаете, что пользователь root может всё? Ошибаетесь. Есть уровень файловой системы, где права rwx (777) не имеют значения. Это атрибуты ext4/xfs.
Если вы хотите защитить критический конфиг (например, /etc/resolv.conf, который вечно перезаписывается NetworkManager-ом) или логи от хакера — используйте Immutable bit.
1. Делаем файл бессмертным:
Теперь попробуйте rm, mv или echo "test" > .... Вы получите: Operation not permitted. Даже под sudo. Даже под root.
2. Как проверить, почему файл не удаляется: Если ls -l показывает, что права есть, а удалить нельзя — смотрите атрибуты:
Видите букву i? Это оно.
3. Как вернуть всё назад:
Где применять: Защита скриптов автозагрузки, критических конфигов и бинарников от изменения вирусами-шифровальщиками.
#linux #security #chattr #filesystem #hacks #root
Вы думаете, что пользователь root может всё? Ошибаетесь. Есть уровень файловой системы, где права rwx (777) не имеют значения. Это атрибуты ext4/xfs.
Если вы хотите защитить критический конфиг (например, /etc/resolv.conf, который вечно перезаписывается NetworkManager-ом) или логи от хакера — используйте Immutable bit.
1. Делаем файл бессмертным:
sudo chattr +i /etc/critical_config.conf
Теперь попробуйте rm, mv или echo "test" > .... Вы получите: Operation not permitted. Даже под sudo. Даже под root.
2. Как проверить, почему файл не удаляется: Если ls -l показывает, что права есть, а удалить нельзя — смотрите атрибуты:
lsattr /etc/critical_config.conf
# Вывод: ----i---------e---- /etc/critical_config.conf
Видите букву i? Это оно.
3. Как вернуть всё назад:
sudo chattr -i /etc/critical_config.conf
Где применять: Защита скриптов автозагрузки, критических конфигов и бинарников от изменения вирусами-шифровальщиками.
#linux #security #chattr #filesystem #hacks #root
🚀 Linux: Хватит ждать netstat. Используй ss
Когда на сервере 10,000 соединений (DDoS или HighLoad), команда netstat -tunlap может зависнуть на минуту, съедая 100% CPU. Почему? Потому что она читает /proc файловой системы для каждого сокета. Это медленно.
В 2025 году используйте ss (Socket Statistics). Она берет данные напрямую из ядра через Netlink API.
Маст-хэв команды:
Общая сводка (идеально для проверки на DDoS):
Покажет мгновенно: "TCP: 50000 established".
Кто слушает порты (аналог netstat):
Киллер-фича: Показать самые "тяжелые" соединения по памяти:
Если вы все еще пишете netstat, вы теряете время.
#linux #network #performance #ss #netstat #troubleshooting
Когда на сервере 10,000 соединений (DDoS или HighLoad), команда netstat -tunlap может зависнуть на минуту, съедая 100% CPU. Почему? Потому что она читает /proc файловой системы для каждого сокета. Это медленно.
В 2025 году используйте ss (Socket Statistics). Она берет данные напрямую из ядра через Netlink API.
Маст-хэв команды:
Общая сводка (идеально для проверки на DDoS):
ss -s
Покажет мгновенно: "TCP: 50000 established".
Кто слушает порты (аналог netstat):
ss -tulpn
Киллер-фича: Показать самые "тяжелые" соединения по памяти:
ss -tm
Если вы все еще пишете netstat, вы теряете время.
#linux #network #performance #ss #netstat #troubleshooting
🧹 PowerShell: Чистим AD от "мертвых" компьютеров
Конец года — лучшее время для инвентаризации. В Active Directory часто копятся записи компьютеров, которые уже год как на свалке. Это дыра в безопасности и мусор в отчетах.
Найдем компьютеры, которые не входили в сеть более 180 дней.
Нюанс: Мы используем свойство LastLogonDate. Оно реплицируется между контроллерами (в отличие от LastLogon), но с задержкой в 14 дней. Для поиска "старья" (180+ дней) эта погрешность неважна.
Скрипт:
Задача: Запустите в режиме "только чтение". Вы удивитесь, сколько у вас в домене машин с Windows 7, которых физически уже не существует.
#windows #activedirectory #powershell #cleanup #security #scripting
Конец года — лучшее время для инвентаризации. В Active Directory часто копятся записи компьютеров, которые уже год как на свалке. Это дыра в безопасности и мусор в отчетах.
Найдем компьютеры, которые не входили в сеть более 180 дней.
Нюанс: Мы используем свойство LastLogonDate. Оно реплицируется между контроллерами (в отличие от LastLogon), но с задержкой в 14 дней. Для поиска "старья" (180+ дней) эта погрешность неважна.
Скрипт:
$DaysInactive = 180
$TimeLimit = (Get-Date).AddDays(-$DaysInactive)
Get-ADComputer -Filter {LastLogonDate -lt $TimeLimit -and Enabled -eq $true} -Properties LastLogonDate, OperatingSystem |
Select-Object Name, LastLogonDate, OperatingSystem |
Sort-Object LastLogonDate |
Format-Table -AutoSize
# Хотите сразу отключить их? Раскомментируйте:
# | Disable-ADAccount -WhatIf
Задача: Запустите в режиме "только чтение". Вы удивитесь, сколько у вас в домене машин с Windows 7, которых физически уже не существует.
#windows #activedirectory #powershell #cleanup #security #scripting
👍3
❄️ Read-Only Friday: Входим в "Зону смерти"
19 декабря — это рубеж. Начиная с сегодняшнего дня и до 12 января мы входим в зону повышенного риска.
Почему нельзя деплоить (даже "маленькие фиксы"):
1. Внимание рассеяно: Половина команды мыслями уже выбирает подарки или планирует отпуск. Вероятность человеческой ошибки (Human Error) возрастает на 200%.
2. Закон подлости: Если баг вылезет, он вылезет 31 декабря в 18:00.
3. Саппорт недоступен: Если ваш апдейт положит базу, вендор Oracle/Microsoft может отвечать на тикет 48 часов.
Манифест на сегодня: ✅ Читаем логи. ✅ Пишем документацию. ✅ Делаем бэкапы (и проверяем их!). ❌ Не обновляем ядра. ❌ Не меняем правила Firewall.
Ваше спокойствие на каникулах куется сегодня. Ничего не трогайте.
#readonlyfriday #codefreeze #adminlife #devops #newyear #safety
19 декабря — это рубеж. Начиная с сегодняшнего дня и до 12 января мы входим в зону повышенного риска.
Почему нельзя деплоить (даже "маленькие фиксы"):
1. Внимание рассеяно: Половина команды мыслями уже выбирает подарки или планирует отпуск. Вероятность человеческой ошибки (Human Error) возрастает на 200%.
2. Закон подлости: Если баг вылезет, он вылезет 31 декабря в 18:00.
3. Саппорт недоступен: Если ваш апдейт положит базу, вендор Oracle/Microsoft может отвечать на тикет 48 часов.
Манифест на сегодня: ✅ Читаем логи. ✅ Пишем документацию. ✅ Делаем бэкапы (и проверяем их!). ❌ Не обновляем ядра. ❌ Не меняем правила Firewall.
Ваше спокойствие на каникулах куется сегодня. Ничего не трогайте.
#readonlyfriday #codefreeze #adminlife #devops #newyear #safety
❤2✍2💯2
🐠 Linux: Превращаем сервер в аквариум
Если вы все сделали правильно (см. Пост 1), то работы у вас мало. Самое время расслабиться и помедитировать, глядя в терминал.
Встречайте asciiquarium. Это анимация аквариума в ASCII-графике. Рыбки плавают, водоросли колышутся, иногда проплывает утка или лебедь.
Установка (для релакса):
Запускаем: asciiquarium Нажимаем F11 (Full Screen). Всё. Вы заняты. Вы "мониторите".
#linux #fun #cli #asciiquarium #friday #relax
Если вы все сделали правильно (см. Пост 1), то работы у вас мало. Самое время расслабиться и помедитировать, глядя в терминал.
Встречайте asciiquarium. Это анимация аквариума в ASCII-графике. Рыбки плавают, водоросли колышутся, иногда проплывает утка или лебедь.
Установка (для релакса):
# Ubuntu/Debian (через Snap проще всего)
sudo snap install asciiquarium
# Или классика (требует perl-curses)
sudo apt install asciiquarium
Запускаем: asciiquarium Нажимаем F11 (Full Screen). Всё. Вы заняты. Вы "мониторите".
#linux #fun #cli #asciiquarium #friday #relax
📝 Git: "Что я вообще делал на этой неделе?"
Пятница — время писать отчеты (Status Report). Но память подводит: кажется, что всю неделю только пили кофе и чинили принтеры. Давайте спросим у Git, чем мы реально занимались.
Алиас "git standup": Покажет список ваших коммитов за последние 7 дней во всех репозиториях текущей папки.
Сделаем красиво (добавьте в .gitconfig):
Теперь просто пишем git standup — и отчет для менеджера готов за 1 секунду.
#git #productivity #alias #cli #devops #reporting
Пятница — время писать отчеты (Status Report). Но память подводит: кажется, что всю неделю только пили кофе и чинили принтеры. Давайте спросим у Git, чем мы реально занимались.
Алиас "git standup": Покажет список ваших коммитов за последние 7 дней во всех репозиториях текущей папки.
git log --all --since='7 days ago' --author="$(git config user.name)" --oneline --no-merges --date=short --pretty=format:"%ad: %s"
Сделаем красиво (добавьте в .gitconfig):
[alias]
standup = !git log --all --since='7 days ago' --author=\"$(git config user.name)\" --oneline --no-merges --date=short --pretty=format:\"%ad: %s\"
Теперь просто пишем git standup — и отчет для менеджера готов за 1 секунду.
#git #productivity #alias #cli #devops #reporting
🎭 Синдром самозванца: Ты не один
Конец года — время подведения итогов. И часто в голову лезет мысль:
"Я ничего не знаю. Вокруг все пишут на Go, деплоят в K8s и тюнят eBPF, а я тут скрипты на Bash ковыряю. Меня скоро разоблачат."
Коллеги, это Синдром самозванца. Им страдают 70% сеньоров.
Факты, которые лечат:
1. IT бесконечно: Никто не знает всего. Тот парень, который крут в Kubernetes, скорее всего, плавает в базах данных.
2. Google — это нормально: Сеньор отличается от джуна не тем, что помнит все флаги tar, а тем, что быстрее находит решение.
3. Ваша ценность — стабильность: Бизнесу плевать на то, какой модный стек вы знаете. Бизнесу важно, чтобы сервер работал. Если вы это обеспечиваете — вы профи.
Выдохните. Вы проделали отличную работу в этом году.
#career #psychology #impostersyndrome #motivation #adminlife #softskills
Конец года — время подведения итогов. И часто в голову лезет мысль:
"Я ничего не знаю. Вокруг все пишут на Go, деплоят в K8s и тюнят eBPF, а я тут скрипты на Bash ковыряю. Меня скоро разоблачат."
Коллеги, это Синдром самозванца. Им страдают 70% сеньоров.
Факты, которые лечат:
1. IT бесконечно: Никто не знает всего. Тот парень, который крут в Kubernetes, скорее всего, плавает в базах данных.
2. Google — это нормально: Сеньор отличается от джуна не тем, что помнит все флаги tar, а тем, что быстрее находит решение.
3. Ваша ценность — стабильность: Бизнесу плевать на то, какой модный стек вы знаете. Бизнесу важно, чтобы сервер работал. Если вы это обеспечиваете — вы профи.
Выдохните. Вы проделали отличную работу в этом году.
#career #psychology #impostersyndrome #motivation #adminlife #softskills
❤5👍1
🗺 NextTrace: Трассировка, на которую приятно смотреть
Мы привыкли к traceroute или mtr. Это сухие строки с IP-адресами и задержками. Но в 2025 году мы хотим видеть, как именно пакет летит из Москвы в Амстердам, а оттуда в Нью-Йорк.
Встречайте NextTrace. Это traceroute нового поколения на Go.
Что он делает:
Геолокация: Сразу показывает страну, город и провайдера (AS) для каждого хопа.
Визуализация: Умеет рисовать маршрут прямо на ASCII-карте в терминале или генерировать ссылку на 3D-карту в браузере.
Параллельность: Работает быстрее классических утилит.
Запуск:
Вы увидите, как ваши пакеты пересекают океан. Залипательное зрелище для субботнего вечера.
#network #tools #nexttrace #visualization #cli #routing
Мы привыкли к traceroute или mtr. Это сухие строки с IP-адресами и задержками. Но в 2025 году мы хотим видеть, как именно пакет летит из Москвы в Амстердам, а оттуда в Нью-Йорк.
Встречайте NextTrace. Это traceroute нового поколения на Go.
Что он делает:
Геолокация: Сразу показывает страну, город и провайдера (AS) для каждого хопа.
Визуализация: Умеет рисовать маршрут прямо на ASCII-карте в терминале или генерировать ссылку на 3D-карту в браузере.
Параллельность: Работает быстрее классических утилит.
Запуск:
# Установка одной строкой (Linux/MacOS)
curl nxtrace.org/nt | bash
# Запуск с картой
nexttrace --map google.com
Вы увидите, как ваши пакеты пересекают океан. Залипательное зрелище для субботнего вечера.
#network #tools #nexttrace #visualization #cli #routing
👍2
🤯 Load Average: Почему 1.0 — это не всегда 100% CPU?
Мы видим в htop параметр Load Average: 4.0 (на 4 ядрах). Новички думают: "Ага, процессор загружен на 100%!". Сеньоры знают: "Не факт. Возможно, это диск умирает".
В чем подвох: В Linux в расчет Load Average (LA) попадают процессы в двух состояниях:
R (Running/Runnable): Реально считают на CPU или стоят в очереди к нему.
D (Uninterruptible Sleep): Ждут ввода-вывода (Disk I/O, Network NFS).
Аналогия с кассой:
Состояние R: Очередь людей к кассе. Кассир (CPU) работает на износ.
Состояние 😧 Кассир свободен, но покупатель ушел взвешивать бананы и не возвращается. Очередь стоит и ждет его. CPU простаивает (iowait), но LA растет!
Как отличить? Смотрите в vmstat 1.
Колонка r (run): Высокая? Проблема в CPU (код).
Колонка b (blocked): Высокая? Проблема в Диске/IO.
Не меняйте процессор, если у вас тормозит жесткий диск.
#linux #kernel #loadaverage #performance #theory #interview
Мы видим в htop параметр Load Average: 4.0 (на 4 ядрах). Новички думают: "Ага, процессор загружен на 100%!". Сеньоры знают: "Не факт. Возможно, это диск умирает".
В чем подвох: В Linux в расчет Load Average (LA) попадают процессы в двух состояниях:
R (Running/Runnable): Реально считают на CPU или стоят в очереди к нему.
D (Uninterruptible Sleep): Ждут ввода-вывода (Disk I/O, Network NFS).
Аналогия с кассой:
Состояние R: Очередь людей к кассе. Кассир (CPU) работает на износ.
Состояние 😧 Кассир свободен, но покупатель ушел взвешивать бананы и не возвращается. Очередь стоит и ждет его. CPU простаивает (iowait), но LA растет!
Как отличить? Смотрите в vmstat 1.
Колонка r (run): Высокая? Проблема в CPU (код).
Колонка b (blocked): Высокая? Проблема в Диске/IO.
Не меняйте процессор, если у вас тормозит жесткий диск.
#linux #kernel #loadaverage #performance #theory #interview
🐻 Uptime Kuma: Твой личный Status Page
У тебя дома крутится Home Assistant, Plex, NAS и VPN. Как узнать, что VPN упал, пока ты в кафе? Zabbix для дома — это оверхед. Поставь Uptime Kuma.
Это невероятно красивый и простой инструмент для мониторинга, который выглядит как профессиональные статус-страницы (StatusPage.io).
Что умеет: ✅ Пинговать HTTP(s), TCP, Ping, DNS. ✅ Проверять срок действия SSL-сертификатов (напомнит заранее!). ✅ Слать уведомления в Telegram, Discord, Slack. ✅ Рисовать красивые графики аптайма ("сердечный ритм").
Запуск в Docker (одной командой):
Заходи на http://localhost:3001, настрой за 5 минут и чувствуй себя спокойным.
#homelab #monitoring #uptimekuma #docker #selfhosted #tools
У тебя дома крутится Home Assistant, Plex, NAS и VPN. Как узнать, что VPN упал, пока ты в кафе? Zabbix для дома — это оверхед. Поставь Uptime Kuma.
Это невероятно красивый и простой инструмент для мониторинга, который выглядит как профессиональные статус-страницы (StatusPage.io).
Что умеет: ✅ Пинговать HTTP(s), TCP, Ping, DNS. ✅ Проверять срок действия SSL-сертификатов (напомнит заранее!). ✅ Слать уведомления в Telegram, Discord, Slack. ✅ Рисовать красивые графики аптайма ("сердечный ритм").
Запуск в Docker (одной командой):
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
Заходи на http://localhost:3001, настрой за 5 минут и чувствуй себя спокойным.
#homelab #monitoring #uptimekuma #docker #selfhosted #tools
🐊 Croc: Передача файлов сквозь NAT и Firewalls
Ситуация: Нужно перекинуть файл с ноутбука на домашний сервер (или другу).
* scp? Нужен белый IP и SSH-доступ.
* Облако? Долго, и файл приватный.
* USB-флешка? Мы в 2025 году.
Используйте croc. Это утилита на Go, которая создает прямой зашифрованный туннель (P2P) между двумя компьютерами через Relay-сервер. Пробивает любой NAT.
Как это работает:
На отправителе:
На получателе (где угодно в мире):
✅ Работает быстрее облака (использует всю ширину канала).
✅ End-to-End шифрование (PAKE).
✅ Возобновление прерванной закачки.
Поставьте один раз, и вы забудете про WeTransfer и мучения с FTP.
#tools #croc #filetransfer #p2p #security #musthave
Ситуация: Нужно перекинуть файл с ноутбука на домашний сервер (или другу).
* scp? Нужен белый IP и SSH-доступ.
* Облако? Долго, и файл приватный.
* USB-флешка? Мы в 2025 году.
Используйте croc. Это утилита на Go, которая создает прямой зашифрованный туннель (P2P) между двумя компьютерами через Relay-сервер. Пробивает любой NAT.
Как это работает:
На отправителе:
croc send secret-file.zip
# Вывод: Code is: 1234-abcd-xyz
На получателе (где угодно в мире):
croc 1234-abcd-xyz
✅ Работает быстрее облака (использует всю ширину канала).
✅ End-to-End шифрование (PAKE).
✅ Возобновление прерванной закачки.
Поставьте один раз, и вы забудете про WeTransfer и мучения с FTP.
#tools #croc #filetransfer #p2p #security #musthave
👍2
🛡 Tmux: Искусство "Бессмертной сессии"
Вы запустили долгий скрипт (обновление базы, компиляция) по SSH. Мигнул интернет. VPN отвалился. Итог: SSH-сессия разорвана, скрипт убит, данные в базе повреждены.
Архитектор никогда не работает в "голом" SSH. Он работает в tmux (Terminal Multiplexer).
Суть: tmux запускает виртуальный терминал на сервере, который не зависит от вашего подключения.
Шпаргалка за 30 секунд:
1. Запуск: tmux (вы внутри).
2. Запускаем скрипт: ./long-script.sh.
3. Отключаемся (Detach): Нажимаем Ctrl+B, отпускаем, жмем D.
Вы вышли в обычную консоль. Можно закрыть ноутбук, уйти домой.
Возвращаемся (Attach):
Магия! Скрипт всё еще бежит, курсор там же, где вы его оставили.
Сделайте привычкой: зашли на сервер — сразу набрали tmux. Это ваша страховка от разрывов связи.
#linux #tmux #ssh #productivity #skill #terminal
Вы запустили долгий скрипт (обновление базы, компиляция) по SSH. Мигнул интернет. VPN отвалился. Итог: SSH-сессия разорвана, скрипт убит, данные в базе повреждены.
Архитектор никогда не работает в "голом" SSH. Он работает в tmux (Terminal Multiplexer).
Суть: tmux запускает виртуальный терминал на сервере, который не зависит от вашего подключения.
Шпаргалка за 30 секунд:
1. Запуск: tmux (вы внутри).
2. Запускаем скрипт: ./long-script.sh.
3. Отключаемся (Detach): Нажимаем Ctrl+B, отпускаем, жмем D.
Вы вышли в обычную консоль. Можно закрыть ноутбук, уйти домой.
Возвращаемся (Attach):
tmux attach
Магия! Скрипт всё еще бежит, курсор там же, где вы его оставили.
Сделайте привычкой: зашли на сервер — сразу набрали tmux. Это ваша страховка от разрывов связи.
#linux #tmux #ssh #productivity #skill #terminal
👍2
🚌 Bus Factor: Почему быть "незаменимым" — это ловушка
Многие админы стремятся стать единственными, кто знает, как работает сеть или как деплоится бэкенд. Им кажется, что это гарантия безопасности: "Меня не уволят, потому что без меня всё рухнет".
Это карьерный тупик. Если ваш Bus Factor = 1 (если вас собьет автобус, проект умрет), то:
Вы не уйдете в отпуск. Вас будут дергать в горах и на пляже.
Вас не повысят. Руководство не может перевести вас на позицию Архитектора или CTO, потому что на текущем месте вас некем заменить. Вы становитесь заложником своей рутины.
Что делает Архитектор: Он стремится стать ненужным.
Автоматизирует всё, что можно.
Пишет документацию так, чтобы справился джун.
Делится знаниями.
Парадокс: Чем проще вас заменить в текущих задачах, тем ценнее вы становитесь для компании как инженер, способный строить новые системы, а не чинить старые.
#career #management #busfactor #softskills #growth #philosophy
Многие админы стремятся стать единственными, кто знает, как работает сеть или как деплоится бэкенд. Им кажется, что это гарантия безопасности: "Меня не уволят, потому что без меня всё рухнет".
Это карьерный тупик. Если ваш Bus Factor = 1 (если вас собьет автобус, проект умрет), то:
Вы не уйдете в отпуск. Вас будут дергать в горах и на пляже.
Вас не повысят. Руководство не может перевести вас на позицию Архитектора или CTO, потому что на текущем месте вас некем заменить. Вы становитесь заложником своей рутины.
Что делает Архитектор: Он стремится стать ненужным.
Автоматизирует всё, что можно.
Пишет документацию так, чтобы справился джун.
Делится знаниями.
Парадокс: Чем проще вас заменить в текущих задачах, тем ценнее вы становитесь для компании как инженер, способный строить новые системы, а не чинить старые.
#career #management #busfactor #softskills #growth #philosophy
📍 DNS: Зачем нужна точка в конце (google.com.)?
Вы наверняка видели в конфигах BIND или в старых учебниках домены с точкой на конце: example.com. Зачем она?
Это FQDN (Fully Qualified Domain Name) — полностью определенное имя домена.
Как это работает: Когда вы пишете в браузере google.com (без точки), ваш компьютер на самом деле пытается быть умным. Если вы находитесь в корпоративной сети corp.local, резолвер может сначала попробовать найти:
google.com.corp.local (А вдруг это внутренний сервер?)
И только потом google.com. (Корень интернета).
Точка в конце говорит системе жестко:
"Не пытайся подставить локальные суффиксы. Иди сразу в корневой DNS (Root Zone)."
Практика: В критических скриптах и конфигах серверов (особенно Nginx/Postfix) использование точки в конце (proxy_pass http://backend.local.;) ускоряет резолвинг и защищает от атак с подменой локальных доменов.
#network #dns #theory #fqdn #internet #basics
Вы наверняка видели в конфигах BIND или в старых учебниках домены с точкой на конце: example.com. Зачем она?
Это FQDN (Fully Qualified Domain Name) — полностью определенное имя домена.
Как это работает: Когда вы пишете в браузере google.com (без точки), ваш компьютер на самом деле пытается быть умным. Если вы находитесь в корпоративной сети corp.local, резолвер может сначала попробовать найти:
google.com.corp.local (А вдруг это внутренний сервер?)
И только потом google.com. (Корень интернета).
Точка в конце говорит системе жестко:
"Не пытайся подставить локальные суффиксы. Иди сразу в корневой DNS (Root Zone)."
Практика: В критических скриптах и конфигах серверов (особенно Nginx/Postfix) использование точки в конце (proxy_pass http://backend.local.;) ускоряет резолвинг и защищает от атак с подменой локальных доменов.
#network #dns #theory #fqdn #internet #basics
👍2
🐤 Canary Tokens: Ловушка для любопытного хакера
Как узнать, что злоумышленник (или любопытный инсайдер) проник в вашу сеть и шарится по папкам? Логи Windows Security читать сложно. SIEM стоит дорого.
Используйте Canary Tokens (Канарейку).
Суть: Вы создаете "фейковый" файл или ссылку, которая выглядит очень аппетитно. Например:
* Файл bitcoin_wallet_passwords.docx на рабочем столе.
* Запись в DNS.
* Ссылку в корпоративной Wiki "Зарплаты руководства".
Как только кто-то откроет этот файл, он "стукнет" на сервер, и вам придет письмо: "Кто-то с IP 192.168.1.55 открыл ловушку!".
Как попробовать бесплатно: Зайдите на canarytokens.org. Сгенерируйте токен (например, документ Word). Положите его в папку "Secrets". Ждите. Это лучшая сигнализация от скрытых угроз.
#security #canarytokens #hacking #defense #honeypot #tools
Как узнать, что злоумышленник (или любопытный инсайдер) проник в вашу сеть и шарится по папкам? Логи Windows Security читать сложно. SIEM стоит дорого.
Используйте Canary Tokens (Канарейку).
Суть: Вы создаете "фейковый" файл или ссылку, которая выглядит очень аппетитно. Например:
* Файл bitcoin_wallet_passwords.docx на рабочем столе.
* Запись в DNS.
* Ссылку в корпоративной Wiki "Зарплаты руководства".
Как только кто-то откроет этот файл, он "стукнет" на сервер, и вам придет письмо: "Кто-то с IP 192.168.1.55 открыл ловушку!".
Как попробовать бесплатно: Зайдите на canarytokens.org. Сгенерируйте токен (например, документ Word). Положите его в папку "Secrets". Ждите. Это лучшая сигнализация от скрытых угроз.
#security #canarytokens #hacking #defense #honeypot #tools
❤2
🛡 Linux: Как запретить системе убивать твою Базу Данных (OOM Killer)
Ситуация: На сервере кончилась память (RAM). Ядро Linux включает механизм OOM Killer (Out Of Memory Killer), который, как санитар леса, начинает убивать самые "жирные" процессы, чтобы спасти систему. Чаще всего под нож попадает MySQL, PostgreSQL или Java-приложение. И сервер падает.
Вы можете сказать ядру: "Не трогай этот процесс, убей лучше что-нибудь другое".
Как это сделать: У каждого процесса есть файл /proc/[PID]/oom_score_adj. Значения в нем: от -1000 (бессмертный) до 1000 (убить первым).
Защищаем процесс (например, SSH или БД):
Как сделать это вечным (через Systemd): Добавьте в unit-файл сервиса (/etc/systemd/system/mysql.service.d/override.conf):
Теперь, даже если память кончится полностью, Linux убьет Apache, агенты мониторинга, cron, но Базу Данных будет держать до последнего байта.
#linux #kernel #oom #stability #systemd #bestpractice
Ситуация: На сервере кончилась память (RAM). Ядро Linux включает механизм OOM Killer (Out Of Memory Killer), который, как санитар леса, начинает убивать самые "жирные" процессы, чтобы спасти систему. Чаще всего под нож попадает MySQL, PostgreSQL или Java-приложение. И сервер падает.
Вы можете сказать ядру: "Не трогай этот процесс, убей лучше что-нибудь другое".
Как это сделать: У каждого процесса есть файл /proc/[PID]/oom_score_adj. Значения в нем: от -1000 (бессмертный) до 1000 (убить первым).
Защищаем процесс (например, SSH или БД):
# Находим PID (например, 1234)
# Записываем -1000 в score_adj
echo -1000 > /proc/1234/oom_score_adj
Как сделать это вечным (через Systemd): Добавьте в unit-файл сервиса (/etc/systemd/system/mysql.service.d/override.conf):
[Service]
OOMScoreAdjust=-1000
Теперь, даже если память кончится полностью, Linux убьет Apache, агенты мониторинга, cron, но Базу Данных будет держать до последнего байта.
#linux #kernel #oom #stability #systemd #bestpractice