🧠 Terminal: Вспоминаем, что делали в прошлом году (Ctrl+R + fzf)
После отпуска сложно вспомнить: "Какой там был длинный ключ у той команды для Docker?".
Обычный поиск в истории (Ctrl+R) неудобен — он показывает только одно совпадение.
Сделайте себе подарок на 2026 год — поставьте fzf (Fuzzy Finder).
Зачем: Он превращает поиск по истории (Ctrl+R) в интерактивный список.
Вы пишете "dock", и видите все команды с этим словом, можете выбрать стрелочками и запустить.
Установка (Linux/macOS):
Использование: Просто нажмите Ctrl+R в терминале.
Ваша продуктивность вырастет в разы.
Вы перестанете набирать одни и те же команды вручную.
#tools #fzf #productivity #terminal #cli #bash #zsh
После отпуска сложно вспомнить: "Какой там был длинный ключ у той команды для Docker?".
Обычный поиск в истории (Ctrl+R) неудобен — он показывает только одно совпадение.
Сделайте себе подарок на 2026 год — поставьте fzf (Fuzzy Finder).
Зачем: Он превращает поиск по истории (Ctrl+R) в интерактивный список.
Вы пишете "dock", и видите все команды с этим словом, можете выбрать стрелочками и запустить.
Установка (Linux/macOS):
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Использование: Просто нажмите Ctrl+R в терминале.
Ваша продуктивность вырастет в разы.
Вы перестанете набирать одни и те же команды вручную.
#tools #fzf #productivity #terminal #cli #bash #zsh
GitHub
GitHub - junegunn/fzf: :cherry_blossom: A command-line fuzzy finder
:cherry_blossom: A command-line fuzzy finder. Contribute to junegunn/fzf development by creating an account on GitHub.
🕵️♂️ Linux: Кто ломился в дверь, пока мы спали?
Пока вы доедали оливье, боты продолжали брутфорсить ваши SSH-порты.
Работа у них такая.
Полезно узнать, с каких IP идет основная атака, чтобы забанить подсети целиком, а не по одному.
Обычный
Команда (Магия AWK):
(Для CentOS/RHEL замените файл на /var/log/secure и поле $(NF-3) на $11, так как формат лога чуть другой).
Результат: Вы увидите четкий список: 5421 192.168.x.x 1200 10.0.x.x
Если видите тысячи попыток с одного IP — это не забывчивый коллега. Это ботнет. В бан его! 🚫
#linux #security #logs #awk #bash #hardening #defense
Пока вы доедали оливье, боты продолжали брутфорсить ваши SSH-порты.
Работа у них такая.
Полезно узнать, с каких IP идет основная атака, чтобы забанить подсети целиком, а не по одному.
Обычный
lastb показывает слишком много мусора. Вытащим только "Топ-10" негодяев одной строкой.Команда (Магия AWK):
# Для Debian/Ubuntu
grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10
(Для CentOS/RHEL замените файл на /var/log/secure и поле $(NF-3) на $11, так как формат лога чуть другой).
Результат: Вы увидите четкий список: 5421 192.168.x.x 1200 10.0.x.x
Если видите тысячи попыток с одного IP — это не забывчивый коллега. Это ботнет. В бан его! 🚫
#linux #security #logs #awk #bash #hardening #defense
👮♂️ PowerShell: Ревизия локальных админов
За время праздников (или в суете перед ними) кто-то мог выдать временные права "Локального админа" пользователю, чтобы поставить софт, и... благополучно забыть забрать. Это классическая дыра в безопасности.
Проверяем состав элитного клуба на сервере одной командой.
Скрипт:
На что смотреть: В списке должны быть только:
👑 Administrator (Встроенный)
🏢 Domain Admins (Группа домена)
🤖 Легитимные сервисные учетки.
Если видите DESKTOP\Ivan (обычный юзер) — удаляйте немедленно:
#windows #powershell #security #audit #localadmin #cleanup
За время праздников (или в суете перед ними) кто-то мог выдать временные права "Локального админа" пользователю, чтобы поставить софт, и... благополучно забыть забрать. Это классическая дыра в безопасности.
Проверяем состав элитного клуба на сервере одной командой.
Скрипт:
Get-LocalGroupMember -Group "Administrators" | Select-Object Name, PrincipalSource, ObjectClass
На что смотреть: В списке должны быть только:
👑 Administrator (Встроенный)
🏢 Domain Admins (Группа домена)
🤖 Легитимные сервисные учетки.
Если видите DESKTOP\Ivan (обычный юзер) — удаляйте немедленно:
Remove-LocalGroupMember -Group "Administrators" -Member "Ivan"
#windows #powershell #security #audit #localadmin #cleanup
🏎️ Curl: Почему сайт тормозит? (Разбор на атомы)
Пользователь жалуется: "Сайт открывается полчаса".
Вы пингуете — пинг ок. Где затык? DNS тупит? Канал забит? Или Бэкенд (PHP/Python) долго думает?
Чтобы не гадать, используйте curl с форматированием. Он покажет тайминги каждого этапа.
Команда (сохрани в алиасы!):
Как читать диагностику:
* DNS: Высокое? 👉 Виноват провайдер или ваш DNS-сервер.
* TCP: Высокое? 👉 Проблемы с маршрутизацией или каналом.
* TTFB (Time To First Byte): Высокое? 👉 Сервер получил запрос, но долго генерировал ответ (БД, код). Сеть не виновата!
Total: Общее время.
Это лучший способ доказать разработчикам, что проблема на их стороне (или убедиться, что на вашей).
#network #curl #troubleshooting #performance #web #latency #tips
Пользователь жалуется: "Сайт открывается полчаса".
Вы пингуете — пинг ок. Где затык? DNS тупит? Канал забит? Или Бэкенд (PHP/Python) долго думает?
Чтобы не гадать, используйте curl с форматированием. Он покажет тайминги каждого этапа.
Команда (сохрани в алиасы!):
curl -w "\nDNS: %{time_namelookup}s\nTCP: %{time_connect}s\nSSL: %{time_appconnect}s\nTTFB: %{time_starttransfer}s\nTotal: %{time_total}s\n" -o /dev/null -s https://google.com
Как читать диагностику:
* DNS: Высокое? 👉 Виноват провайдер или ваш DNS-сервер.
* TCP: Высокое? 👉 Проблемы с маршрутизацией или каналом.
* TTFB (Time To First Byte): Высокое? 👉 Сервер получил запрос, но долго генерировал ответ (БД, код). Сеть не виновата!
Total: Общее время.
Это лучший способ доказать разработчикам, что проблема на их стороне (или убедиться, что на вашей).
#network #curl #troubleshooting #performance #web #latency #tips
🕵️♂️ Linux: Кто занял порт? Кто держит файл? (lsof)
Классика: вы пытаетесь перезапустить Nginx, а он кричит: "Address already in use". Или пытаетесь размонтировать флешку, а Linux говорит: "Device is busy". Не гадайте. Вызывайте детектива — lsof (List Open Files).
1. Кто слушает порт 80?
Вывод покажет PID процесса. Можно сразу его убить.
2. Кто держит файл или папку? Если не дает удалить папку /var/www, узнайте, кто в ней сидит:
3. Что делает конкретный юзер?
В Linux "всё есть файл" (и сокеты, и библиотеки). Поэтому
#linux #cli #lsof #troubleshooting #sysadmin #tips
Классика: вы пытаетесь перезапустить Nginx, а он кричит: "Address already in use". Или пытаетесь размонтировать флешку, а Linux говорит: "Device is busy". Не гадайте. Вызывайте детектива — lsof (List Open Files).
1. Кто слушает порт 80?
lsof -i :80
Вывод покажет PID процесса. Можно сразу его убить.
2. Кто держит файл или папку? Если не дает удалить папку /var/www, узнайте, кто в ней сидит:
lsof +D /var/www
3. Что делает конкретный юзер?
lsof -u username
В Linux "всё есть файл" (и сокеты, и библиотеки). Поэтому
lsof видит вообще всё.#linux #cli #lsof #troubleshooting #sysadmin #tips
🛡 PowerShell: Доверяй, но проверяй хеши (Get-FileHash)
Вы скачали ISO-образ Windows, драйвер для RAID-контроллера или инсталлятор. Как убедиться, что файл не побился при скачивании? И, что важнее, что хакеры не подменили его на сервере (Supply Chain Attack)?
Всегда сверяйте Hash Sum. В PowerShell это делается нативно.
Команда:
Как сверить автоматически (Лайфхак): Если у вас есть эталонный хеш с сайта разработчика, не сравнивайте глазами! Пусть компьютер работает:
Возьмите за правило: скачал критический софт — проверил хеш.
#windows #powershell #security #hashing #sha256 #audit
Вы скачали ISO-образ Windows, драйвер для RAID-контроллера или инсталлятор. Как убедиться, что файл не побился при скачивании? И, что важнее, что хакеры не подменили его на сервере (Supply Chain Attack)?
Всегда сверяйте Hash Sum. В PowerShell это делается нативно.
Команда:
Get-FileHash -Path .\Server_Image.iso -Algorithm SHA256
Как сверить автоматически (Лайфхак): Если у вас есть эталонный хеш с сайта разработчика, не сравнивайте глазами! Пусть компьютер работает:
$TrueHash = "A1B2C3... (копипаст с сайта)"
$FileHash = (Get-FileHash .\setup.exe).Hash
if ($FileHash -eq $TrueHash) { "✅ OK" } else { "❌ DANGER! Файл изменен!" }
Возьмите за правило: скачал критический софт — проверил хеш.
#windows #powershell #security #hashing #sha256 #audit
📡 Network: mtr — Пинг и Трассировка в одном флаконе
ping показывает только доступность конечной точки. traceroute показывает маршрут, но только один раз. Админу нужно видеть динамику: на каком именно узле провайдера теряются пакеты прямо сейчас?
Используйте
Это интерактивная утилита, которая постоянно обновляет статистику по каждому хопу (узлу) маршрута.
Установка и запуск:
Что искать: Смотрите на колонку Loss%.
* Если потери начинаются на 3-м узле и идут до конца — виноват этот узел.
* Если потери только на одном узле, а дальше всё чисто — это просто защита от DDOS на роутере, можно игнорировать.
#network #tools #mtr #troubleshooting #latency #packetloss
ping показывает только доступность конечной точки. traceroute показывает маршрут, но только один раз. Админу нужно видеть динамику: на каком именно узле провайдера теряются пакеты прямо сейчас?
Используйте
mtr (My Traceroute).Это интерактивная утилита, которая постоянно обновляет статистику по каждому хопу (узлу) маршрута.
Установка и запуск:
# Linux
sudo apt install mtr
mtr google.com
# Windows (Есть аналог WinMTR, но лучше через WSL)
sudo mtr 8.8.8.8
Что искать: Смотрите на колонку Loss%.
* Если потери начинаются на 3-м узле и идут до конца — виноват этот узел.
* Если потери только на одном узле, а дальше всё чисто — это просто защита от DDOS на роутере, можно игнорировать.
#network #tools #mtr #troubleshooting #latency #packetloss
⌨️ Bash: Магия восклицательного знака (!)
Вы только что набрали длинную команду, но забыли sudo. Или создали папку и хотите сразу в неё зайти. Не нажимайте "Вверх" и не правьте курсором. Используйте History Expansion.
Это экономит тысячи нажатий клавиш в год.
🔹 Забыл sudo?
🔹 Использовать аргумент из прошлой команды?
🔹 Найти последнюю команду, начинающуюся на...
Маленькие трюки для большой скорости. 🏎
#linux #bash #cli #productivity #tips #shortcuts
Вы только что набрали длинную команду, но забыли sudo. Или создали папку и хотите сразу в неё зайти. Не нажимайте "Вверх" и не правьте курсором. Используйте History Expansion.
Это экономит тысячи нажатий клавиш в год.
🔹 Забыл sudo?
apt update
# Error: Permission denied
sudo !!
# Bash сам подставит последнюю команду: sudo apt update
🔹 Использовать аргумент из прошлой команды?
mkdir /var/www/html/project_x
cd !$
# Bash подставит последний аргумент: cd /var/www/html/project_x
🔹 Найти последнюю команду, начинающуюся на...
!vim
# Запустит последнюю команду, которая начиналась с "vim"
Маленькие трюки для большой скорости. 🏎
#linux #bash #cli #productivity #tips #shortcuts
📦 Winget: Обнови весь софт одной командой
В 2026 году качать .exe установщики с сайтов и кликать "Далее-Далее" — это моветон. В Windows уже давно встроен крутой пакетный менеджер Winget (как apt или brew).
Пятница — идеальное время, чтобы обновить весь свой софт (Браузеры, Notepad++, 7Zip, VS Code) пока пьешь кофе.
Команда:
Что произойдет: Windows сама проверит версии всех установленных программ, скачает новые и тихо установит их. Если хотите видеть красивый прогресс-бар в стиле ретро:
#windows #winget #updates #automation #powershell #tools
В 2026 году качать .exe установщики с сайтов и кликать "Далее-Далее" — это моветон. В Windows уже давно встроен крутой пакетный менеджер Winget (как apt или brew).
Пятница — идеальное время, чтобы обновить весь свой софт (Браузеры, Notepad++, 7Zip, VS Code) пока пьешь кофе.
Команда:
winget upgrade --all
Что произойдет: Windows сама проверит версии всех установленных программ, скачает новые и тихо установит их. Если хотите видеть красивый прогресс-бар в стиле ретро:
winget upgrade --all --rainbow 🌈#windows #winget #updates #automation #powershell #tools
🛑 Alias: Ремень безопасности для админа (rm -i)
В пятницу вечером концентрация падает. Одно неловкое движение, и rm -rf * удаляет не временную папку, а продакшен. Сделайте так, чтобы Linux всегда спрашивал подтверждение перед удалением или перезаписью файлов.
Добавьте эти строки в свой ~/.bashrc (или .zshrc):
Как это спасет: Теперь, когда вы напишете
#linux #safety #alias #bestpractice #readonlyfriday #config
В пятницу вечером концентрация падает. Одно неловкое движение, и rm -rf * удаляет не временную папку, а продакшен. Сделайте так, чтобы Linux всегда спрашивал подтверждение перед удалением или перезаписью файлов.
Добавьте эти строки в свой ~/.bashrc (или .zshrc):
# Интерактивный режим (спрашивать "Вы уверены?")
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
Как это спасет: Теперь, когда вы напишете
rm important_file , система спросит: remove regular file 'important_file' ? У вас будет секунда, чтобы подумать: "Ой, не тот сервер!".#linux #safety #alias #bestpractice #readonlyfriday #config
🐧 Linux: Почему твой сервер тормозит при свободной памяти? (swappiness)
Вы смотрите в
Как проверить текущее значение:
Как исправить (Best Practice для серверов): Снижаем до
1. На лету (до перезагрузки):
2. Навсегда: Добавьте в файл /etc/sysctl.conf:
Ваша БД скажет вам спасибо.
#linux #kernel #performance #optimization #swap #memory
Вы смотрите в
free -h : свободной RAM еще 2 ГБ, но система уже начала сбрасывать данные в Swap (на диск). Из-за этого всё тормозит. Виноват параметр Swappiness. По умолчанию он равен 60 (из 100 ). Для десктопа это ок, для сервера баз данных — это катастрофа.Как проверить текущее значение:
sysctl vm.swappiness
# Вывод: 60
Как исправить (Best Practice для серверов): Снижаем до
10 . Это скажет ядру: "Используй Swap только тогда, когда RAM действительно кончается".1. На лету (до перезагрузки):
sysctl vm.swappiness=10
2. Навсегда: Добавьте в файл /etc/sysctl.conf:
vm.swappiness=10
Ваша БД скажет вам спасибо.
#linux #kernel #performance #optimization #swap #memory
🔐 PowerShell: "Я ввожу пароль правильно, но не пускает!"
Классика утра понедельника: пользователи вернулись, пальцы забыли пароли, учетки заблокировались (Account Locked Out). Не нужно искать бедолаг вручную в
Найти всех заблокированных прямо сейчас:
Разблокировать всех одной командой (Режим Бога): (Использовать осторожно!)
Будьте героем, который чинит вход за 5 секунд.
#windows #powershell #activedirectory #ad #helpdesk #automation
Классика утра понедельника: пользователи вернулись, пальцы забыли пароли, учетки заблокировались (Account Locked Out). Не нужно искать бедолаг вручную в
ADUC . Используйте PowerShell модуль Active Directory.Найти всех заблокированных прямо сейчас:
Search-ADAccount -LockedOut |
Select-Object Name, SamAccountName, LockedOut |
Format-Table -AutoSize
Разблокировать всех одной командой (Режим Бога): (Использовать осторожно!)
Search-ADAccount -LockedOut | Unlock-ADAccount
Будьте героем, который чинит вход за 5 секунд.
#windows #powershell #activedirectory #ad #helpdesk #automation
👍2
⏳ Network: Когда обновится этот чертов домен? (TTL)
Вы сменили IP-адрес сервера в DNS. Клиенты жалуются, что видят старый сайт. Вы говорите: "Ждите обновления кэша". Но сколько ждать? Час? Сутки?
Смотрите на TTL (Time To Live). Это число, которое показывает, сколько секунд запись будет жить в кэше резолвера.
Команда:
Смотрим в ответ (ANSWER SECTION):
Вот это число 185 — это секунды. Запустите команду еще раз через 10 секунд — число станет 175. Как только оно дойдет до 0, резолвер пойдет спрашивать авторитетный DNS-сервер и получит ваш новый IP.
Вывод: Перед переездом всегда заранее снижайте TTL до 60 секунд (за сутки до работ), чтобы переключение прошло мгновенно.
#network #dns #ttl #dig #migration #theory #troubleshooting
Вы сменили IP-адрес сервера в DNS. Клиенты жалуются, что видят старый сайт. Вы говорите: "Ждите обновления кэша". Но сколько ждать? Час? Сутки?
Смотрите на TTL (Time To Live). Это число, которое показывает, сколько секунд запись будет жить в кэше резолвера.
Команда:
dig google.com
Смотрим в ответ (ANSWER SECTION):
google.com. 185 IN A 142.250.185.78
Вот это число 185 — это секунды. Запустите команду еще раз через 10 секунд — число станет 175. Как только оно дойдет до 0, резолвер пойдет спрашивать авторитетный DNS-сервер и получит ваш новый IP.
Вывод: Перед переездом всегда заранее снижайте TTL до 60 секунд (за сутки до работ), чтобы переключение прошло мгновенно.
#network #dns #ttl #dig #migration #theory #troubleshooting
🐧 Sed: Хирург для твоих конфигов
Вам нужно поменять порт в конфиге Nginx на 50 серверах. Заходить на каждый и открывать
Синтаксис:
Примеры из жизни:
1. Заменить слово во всем файле (безопасно):
2. Раскомментировать строку (удалить # в начале):
3. Удалить пустые строки (чистка мусора):
Освойте
#linux #sed #bash #automation #config #cli
Вам нужно поменять порт в конфиге Nginx на 50 серверах. Заходить на каждый и открывать
nano ? Нет. Используйте sed (Stream Editor). Он умеет находить и заменять текст прямо в файлах.Синтаксис:
s/что_искать/на_что_менять/gПримеры из жизни:
1. Заменить слово во всем файле (безопасно):
# Создаст бэкап config.conf.bak перед изменением
sed -i.bak 's/DEBUG=true/DEBUG=false/g' config.conf
2. Раскомментировать строку (удалить # в начале):
sed -i 's/^#PermitRootLogin/PermitRootLogin/' /etc/ssh/sshd_config
3. Удалить пустые строки (чистка мусора):
sed -i '/^$/d' filename.txt
Освойте
sed , и Ansible вам станет понятнее, а скрипты — мощнее.#linux #sed #bash #automation #config #cli
🪟 CMD: Почему политика не применилась? (
Пользователь жалуется: "У меня нет нужного принтера" или "Обои не поменялись". Вы смотрите в редактор GPO — всё настроено. В чем дело? Наследование? WMI-фильтр? Группа безопасности?
Не гадайте. Сделайте HTML-отчет прямо на машине пользователя.
Команда (запуск от Админа):
Что это дает: Откройте
* Какая политика победила (Winning GPO).
* Какая была отклонена и почему (Access Denied / Empty / Disabled).
* Время применения.
Это в 100 раз понятнее, чем сухой вывод консольного
#windows #gpo #ad #troubleshooting #gpresult #cmd #sysadmin
gpresult /h )Пользователь жалуется: "У меня нет нужного принтера" или "Обои не поменялись". Вы смотрите в редактор GPO — всё настроено. В чем дело? Наследование? WMI-фильтр? Группа безопасности?
Не гадайте. Сделайте HTML-отчет прямо на машине пользователя.
Команда (запуск от Админа):
gpresult /h C:\report.html
Что это дает: Откройте
report.html в браузере. Это красивый, цветной отчет, где показано:* Какая политика победила (Winning GPO).
* Какая была отклонена и почему (Access Denied / Empty / Disabled).
* Время применения.
Это в 100 раз понятнее, чем сухой вывод консольного
gpresult /r .#windows #gpo #ad #troubleshooting #gpresult #cmd #sysadmin
✍2
🤝 Network: TCP 3-Way Handshake (База)
Мы говорим "установил соединение". А что происходит под капотом? Любое TCP-соединение (SSH, HTTP, RDP) начинается с Тройного рукопожатия. Если вы не понимаете этот процесс, вы не сможете траблшутить фаерволы.
Три шага:
1. SYN (Synchronize): Клиент шлет пакет серверу. "Привет, хочу поговорить. Мой номер очереди 100."
* Если здесь потеря — сервер недоступен или порт закрыт.
2. SYN-ACK (Synchronize-Acknowledge): Сервер отвечает. "Привет, слышу тебя (ACK 101). Давай говорить, мой номер 500 (SYN)."
* Если здесь потеря — сервер перегружен или блокирует обратный трафик.
3. ACK (Acknowledge): Клиент подтверждает. "Ок, твой номер 500 принял (ACK 501). Погнали передавать данные!"
Почему это важно: DDoS атака SYN Flood работает именно здесь: атакующий шлет миллионы
#network #tcp #theory #handshake #security #interview #basics
Мы говорим "установил соединение". А что происходит под капотом? Любое TCP-соединение (SSH, HTTP, RDP) начинается с Тройного рукопожатия. Если вы не понимаете этот процесс, вы не сможете траблшутить фаерволы.
Три шага:
1. SYN (Synchronize): Клиент шлет пакет серверу. "Привет, хочу поговорить. Мой номер очереди 100."
* Если здесь потеря — сервер недоступен или порт закрыт.
2. SYN-ACK (Synchronize-Acknowledge): Сервер отвечает. "Привет, слышу тебя (ACK 101). Давай говорить, мой номер 500 (SYN)."
* Если здесь потеря — сервер перегружен или блокирует обратный трафик.
3. ACK (Acknowledge): Клиент подтверждает. "Ок, твой номер 500 принял (ACK 501). Погнали передавать данные!"
Почему это важно: DDoS атака SYN Flood работает именно здесь: атакующий шлет миллионы
SYN , сервер ждет, отвечает SYN-ACK , но ACK в ответ не получает. Память сервера забивается "полуоткрытыми" соединениями, и он умирает.#network #tcp #theory #handshake #security #interview #basics
❤1
🦇 Linux: Хватит мучить глаза. Замени cat на bat
Команда
Встречайте
Почему это мастхэв:
1. Подсветка синтаксиса: Он сам понимает, что это за файл (JSON, YAML, SH), и раскрашивает его.
2. Git-интеграция: Слева показывает плюсики
3. Нумерация строк: Удобно говорить коллеге: "Посмотри строку 15".
4. Пейджинг: Если файл длинный, он работает как
Установка:
Попробуйте один раз, и к черно-белому тексту вы не вернетесь.
#linux #tools #cli #bat #productivity #visualization
Команда
cat (concatenate) была написана в 70-х. Она просто выплевывает текст. В 2026 году читать конфиги Nginx или Python-скрипты без подсветки синтаксиса — это боль.Встречайте
bat ("cat с крыльями").Почему это мастхэв:
1. Подсветка синтаксиса: Он сам понимает, что это за файл (JSON, YAML, SH), и раскрашивает его.
2. Git-интеграция: Слева показывает плюсики
+ и минусы - , если файл изменен относительно коммита.3. Нумерация строк: Удобно говорить коллеге: "Посмотри строку 15".
4. Пейджинг: Если файл длинный, он работает как
less (не забивает терминал).Установка:
sudo apt install bat
# В Debian/Ubuntu бинарник может называться batcat, поэтому делаем алиас:
alias cat='batcat'
Попробуйте один раз, и к черно-белому тексту вы не вернетесь.
#linux #tools #cli #bat #productivity #visualization
✍2
🟥 WizTree: Увидеть всё, что скрыто
Диск
Старый
Он не сканирует файлы по одному (как Проводник). Он читает напрямую MFT (Master File Table) файловой системы NTFS.
Результат: Сканирование диска на 1 ТБ занимает 2 секунды.
Визуализация (Treemap): Вы видите карту диска из цветных прямоугольников.
* Большой квадрат = Большой файл.
* Вы сразу видите "сироту" — файл подкачки
Удалять можно прямо из интерфейса. Лучший инструмент для быстрой очистки.
#windows #storage #wiztree #ntfs #troubleshooting #visualization #tools
Диск
C: переполнен. Windows показывает красную полоску. Что именно сожрало место? Папка WinSxS ? Кэш Docker? Или пользователь загрузил 50 ГБ фоток на рабочий стол?Старый
WinDirStat работает вечность. Используйте WizTree.Он не сканирует файлы по одному (как Проводник). Он читает напрямую MFT (Master File Table) файловой системы NTFS.
Результат: Сканирование диска на 1 ТБ занимает 2 секунды.
Визуализация (Treemap): Вы видите карту диска из цветных прямоугольников.
* Большой квадрат = Большой файл.
* Вы сразу видите "сироту" — файл подкачки
pagefile.sys или забытый ISO-образ.Удалять можно прямо из интерфейса. Лучший инструмент для быстрой очистки.
#windows #storage #wiztree #ntfs #troubleshooting #visualization #tools
💾 RAID: Геометрия надежности
Мы говорим: "Поставь в RAID 10". А вы помните физику процесса? Визуальное понимание того, как лежат блоки, спасает при восстановлении массива.
Быстрый рекап по картинке:
1. RAID 0 (Stripe): Данные "размазаны" по дискам (A1, A2).
🚀 Скорость: Максимальная (xN).
💀 Надежность: Ноль. Сдох один диск — потеряли всё.
2. RAID 1 (Mirror): Данные дублируются (A1 = A1).
🛡️ Надежность: Высокая.
📉 Цена: Платим за 2 диска, получаем место как за 1.
3. RAID 5 (Parity): Данные + Контрольная сумма (Parity) размазаны по всем дискам.
⚖️ Баланс: Если один диск умер, данные вычисляются по формуле из остальных.
🐢 Минус: Медленная запись (надо считать контрольную сумму).
4. RAID 10: Зеркало (1) внутри Страйпа (0). Лучшее из двух миров, но дорого.
Сохраните схему. Когда джун спросит, почему RAID 5 тормозит на запись, просто покажите блок Parity.
#storage #raid #theory #hardware #architecture #infographics #basics
Мы говорим: "Поставь в RAID 10". А вы помните физику процесса? Визуальное понимание того, как лежат блоки, спасает при восстановлении массива.
Быстрый рекап по картинке:
1. RAID 0 (Stripe): Данные "размазаны" по дискам (A1, A2).
🚀 Скорость: Максимальная (xN).
💀 Надежность: Ноль. Сдох один диск — потеряли всё.
2. RAID 1 (Mirror): Данные дублируются (A1 = A1).
🛡️ Надежность: Высокая.
📉 Цена: Платим за 2 диска, получаем место как за 1.
3. RAID 5 (Parity): Данные + Контрольная сумма (Parity) размазаны по всем дискам.
⚖️ Баланс: Если один диск умер, данные вычисляются по формуле из остальных.
🐢 Минус: Медленная запись (надо считать контрольную сумму).
4. RAID 10: Зеркало (1) внутри Страйпа (0). Лучшее из двух миров, но дорого.
Сохраните схему. Когда джун спросит, почему RAID 5 тормозит на запись, просто покажите блок Parity.
#storage #raid #theory #hardware #architecture #infographics #basics
❤3
🧟♂️ Linux: Атака зомби. Как убить то, что уже мертво?
Вы смотрите в
Спойлер: Это бесполезно. Зомби нельзя убить, потому что он уже мертв.
Что такое Zombie Process: Это процесс, который завершил выполнение, освободил память, но его запись осталась в таблице процессов, потому что "Родитель" (Parent Process) не прочитал его код завершения (exit code).
Как починить правильно: Нужно найти родителя и "пнуть" его (или убить).
1. Ищем зомби и их родителей:
Вывод:
2. Решение: Отправьте сигнал родителю, чтобы он "прибрался за детьми":
Если не помогло — убивайте родителя:
#linux #processes #zombie #troubleshooting #kernel #theory
Вы смотрите в
top и видите: zombie: 5 . Новички пытаются сделать kill -9 <PID_ZOMBIE> .Спойлер: Это бесполезно. Зомби нельзя убить, потому что он уже мертв.
Что такое Zombie Process: Это процесс, который завершил выполнение, освободил память, но его запись осталась в таблице процессов, потому что "Родитель" (Parent Process) не прочитал его код завершения (exit code).
Как починить правильно: Нужно найти родителя и "пнуть" его (или убить).
1. Ищем зомби и их родителей:
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Вывод:
Z 1050 1051 [php-fpm] <defunct> (Где 1050 — PPID родителя, 1051 — PID зомби).2. Решение: Отправьте сигнал родителю, чтобы он "прибрался за детьми":
kill -SIGCHLD 1050
Если не помогло — убивайте родителя:
kill -9 1050 . Зомби исчезнет вместе с ним (или его подберет процесс init ).#linux #processes #zombie #troubleshooting #kernel #theory