Admin Guides | Сисадмин
11.4K subscribers
1.25K photos
20 videos
34 files
560 links
Обучающий канал по ОС Linux & Windows для начинающих и действующих администраторов.

Админ, реклама: @Ak_Mihail
Биржа: https://telega.in/c/admguides

РКН: https://kurl.ru/nQejS
Download Telegram
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Transparent Hugepage defrag и как это влияет на производительность системы?

Ответ: Transparent Hugepage (THP) defrag — это механизм в Linux, который пытается объединять мелкие страницы памяти в большие (HugePages) для оптимизации TLB и уменьшения накладных расходов на управление памятью.

Однако агрессивная дефрагментация может вызвать паузы в работе приложений из-за копирования страниц, поэтому в высоконагруженных системах её часто отключают или настраивают в режиме “madvise”, чтобы влияние на производительность было минимальным.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3
Поиск «тяжёлых» файлов: ncdu

Когда на сервере заканчивается место, команды вроде du и ls -lh не всегда помогают быстро понять, что именно съедает дисковое пространство. 


На помощь приходит ncdu — интерактивный аналог du, который показывает размер каталогов и файлов в удобной древовидной структуре и позволяет управлять ими прямо из интерфейса.

Например, чтобы проверить логи:

ncdu /var/log


Откроется текстовый интерфейс, где можно быстро сортировать файлы и папки по размеру, перемещать их или удалять.

Это помогает находить крупные логи, временные файлы и другие объекты, которые занимают место, без необходимости писать сложные скрипты.

Плюсы ncdu:
Видно, сколько реально занимает каждая папка.
Можно удалять или перемещать файлы прямо в интерфейсе.
Быстро ориентируетесь на серверах с ограниченным SSD.
Подходит для диагностики как пользовательских, так и системных директорий.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86🔥1
Первый альфа-выпуск дистрибутива KDE Linux

Команда KDE представила первый альфа-выпуск дистрибутива KDE Linux. 


Системные образы (~5 ГБ) работают в Live-режиме, основаны на Arch Linux, обновляются атомарно и поддерживают зашифрованные разделы для пользовательских данных.

Обновления идут на пассивный Btrfs-раздел с возможностью отката, а дополнительные приложения можно устанавливать через Flatpak, AppImage, Snap, Distrobox или Toolbox.

Альфа рассчитана на тестирование и контроль качества, поддерживает только UEFI, Wayland и новые GPU NVIDIA (Turing+).

В будущем появятся Stable и Enthusiast Edition с финальными и свежими релизами KDE Plasma.
9👍5🔥2👎1
Inotify и fsnotify для событий на файловой системе

Linux умеет уведомлять процессы о событиях на файловой системе.

С помощью inotify (и абстракции fsnotify в ядре) можно отслеживать создание, удаление, модификацию файлов и каталогов, что удобно для автоматизации.

Пример применения: нужно запускать скрипт каждый раз, когда появляются новые логи или выгружается дамп БД. 


Вместо регулярного опроса ls или find достаточно «подписаться» на события файловой системы — это экономит ресурсы и ускоряет реакцию.

Базовый пример с inotifywait (из пакета inotify-tools):

# следим за появлением новых файлов в каталоге /var/log/myapp
inotifywait -m /var/log/myapp -e create -e moved_to |
while read path action file; do
echo "Новый файл $file обнаружен в $path, запускаем скрипт..."
/usr/local/bin/process_new_log.sh "$path/$file"
done


Что можно отслеживать:
• create — создание файла
• delete — удаление
• modify — изменение содержимого
• moved_to / moved_from — перемещение файлов в/из каталога
10👍7
Почему так?
😁213🥴3
Быстрый поиск строк в логах: ripgrep

Когда на сервере гигабайты логов, а надо срочно найти конкретную ошибку, стандартный grep начинает тормозить.

Здесь помогает ripgrep (rg) — современный инструмент поиска по тексту. 


Он оптимизирован под большие объёмы данных и работает в разы быстрее.

Пример для поиска ошибок во всех логах:

rg "ERROR" /var/log


По умолчанию он рекурсивно обходит каталоги и выводит совпадения с путём к файлу и номером строки.

Если нужен контекст вокруг найденной строки:

rg -C 3 "FATAL" /var/log/postgresql


Так выводятся три строки до и после совпадения — удобно при анализе логов PostgreSQL, Nginx или системных журналов.

ripgrep поддерживает регулярные выражения, можно искать сразу несколько шаблонов и фильтровать файлы по расширениям. Например:

rg -t sql "SELECT.*FROM" /var/log


Вывод ограничится только SQL-логами.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥7👍1
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Как работает механизм Copy-on-Write (CoW) в Linux и зачем он нужен?

Ответ: Copy-on-Write (CoW) — это оптимизационный механизм, который позволяет нескольким процессам совместно использовать одну и ту же область памяти до тех пор, пока один из них не попытается ее изменить.

При fork дочерний процесс получает копию страниц памяти родительского, но фактически обе копии указывают на одни и те же физические адреса. Только если один из процессов пытается записать в память, ядро создает новую копию изменяемой страницы.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4
BGP PIC (Prefix Independent Convergence)

BGP PIC ускоряет failover, предустанавливая резервный next-hop. 


При падении primary hop трафик мгновенно переключается без полной перерасчётки маршрутов. Обычно обычный BGP failover занимает секунды, с PIC — миллисекунды.

Применяется в WAN и датацентрах с критическим SLA, ECMP-сценариях, L3VPN/EVPN.

Виды:

Core (по префиксу) — precomputed backup next-hop в FIB, переключение мгновенное.
Edge (по соседу) — резерв на уровне BGP-соседа, удобно для PE/CE.

Настройка на Cisco IOS-XR:

router bgp 65001
address-family ipv4 unicast
bgp bestpath pic
network 10.0.0.0 mask 255.255.255.0


Juniper JunOS:

protocols {
bgp {
group IBGP {
type internal;
local-address 192.168.0.1;
family inet { unicast; }
pic;
}
}
}


Для проверки failover включают BFD, пингуют primary hop и отключают линк. С BGP PIC потеря пакетов минимальна, трафик идёт на backup сразу.

⚡️Особенности: резервный next-hop должен быть в FIB, потребляет RAM/CPU для precompute, на больших таблицах BGP может потребоваться tuning.
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3💯2
Cron не запускает скрипт. Вручную работает. Причина?
Anonymous Quiz
30%
Скрипт без shebang
26%
Неправильный cron
42%
Нет прав root
2%
Плохой swap
🤡19🤣74
Инкрементальные бэкапы с tar

Помимо привычных архивов, tar умеет делать инкрементальные бэкапы через ключ --listed-incremental.

Он хранит «снимок» метаданных файлов и при следующем запуске берёт только изменения.

Пример:

# первый полный бэкап
tar --listed-incremental=/var/backups/snapshot.file \
-czf full-backup.tar.gz /home

# инкрементальный
tar --listed-incremental=/var/backups/snapshot.file \
-czf incr-backup.tar.gz /home


👉 snapshot.file — база, где хранится информация о прошлых бэкапах. Если её удалить, то следующий архив будет снова полным.

Плюсы:
экономия места (в архив попадают только изменившиеся файлы);
встроено в стандартный tar, не нужны отдельные утилиты;
можно комбинировать с cron и хранением на удалённом сервере.

Подходит для небольших серверов, dev-сред и домашних каталогов, где не нужна тяжёлая система бэкапов, но важна скорость и простота.
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥9👍4
Рейтинг языков программирования TIOBE за сентябрь 2025: Python растёт, Perl возвращается

Авторы TIOBE опубликовали свежий рейтинг. Топ-8 остался без изменений (1. Python, 2. C++, 3. C, 4. Java, 5. C#, 6. JavaScript, 7. Visual Basic, 8. Go).

Perl уступил 9-е место Delphi/Object Pascal, но при этом удержался в десятке — год назад он был на 27-м месте.


Рост Perl связывают с огромным количеством книг на Amazon и его уникальными возможностями работы с текстом: регулярные выражения, богатая библиотека CPAN, поддержка Unicode.

Хотя Perl 6 (ныне Raku) так и не взлетел, Perl 5 продолжает обновляться и привлекает внимание.

Эксперты отмечают, что текстовые форматы (XML, JSON, YAML, Markdown, логи) остаются ключевыми даже в эпоху ИИ, и Perl здесь по-прежнему один из лучших инструментов.
5🔥2
etckeeper: контроль версий для /etc

Каталог /etc — сердце системы: здесь лежат конфиги сервисов, сетевые настройки, права доступа. 


Проблема в том, что правки накапливаются хаотично - руками, апдейтами пакетов, скриптами. В итоге, когда «вдруг перестало работать», непонятно кто и когда изменил конфиг.

etckeeper решает задачу просто: сохраняет /etc в Git (или другом VCS). Получаем историю изменений, удобный diff и возможность быстро откатить.

Установка (Debian/Ubuntu):

sudo apt install etckeeper git
sudo etckeeper init
sudo etckeeper commit "init"


После этого можно работать как с обычным репозиторием:

sudo git status /etc
sudo git diff /etc/ssh/sshd_config
sudo git log /etc


Фишка — etckeeper интегрируется с apt и yum: перед обновлением пакетов он автоматически делает commit.

Можно добавить git remote и пушить историю в отдельный репозиторий (например, на приватный GitLab или в backup).

Это удобно для серверов, где нужно отслеживать конфиги централизованно.
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍8
Купили бы своему ребенку?
👍80🔥14👎2
fstrim: освобождение места на SSD

SSD не всегда «понимает», что файлы были удалены — блоки могут оставаться помеченными как занятые.

Из-за этого диск со временем теряет скорость записи.


Команда fstrim помогает сообщить диску, какие блоки можно реально очистить.

Проверка вручную:

sudo fstrim -v /


Выведет, сколько байт освободилось на корневом разделе.

Чтобы не делать это руками, есть встроенный systemd-таймер. Достаточно один раз включить:

sudo systemctl enable fstrim.timer
sudo systemctl start fstrim.timer


Теперь очистка будет выполняться автоматически раз в неделю.

Это безопасный и простой способ поддерживать SSD в нормальной форме без лишних ухищрений.
👍194
💬 Вопрос на собеседовании для DevOps-инженера

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое SoftIRQ в Linux и зачем он используется?

Ответ: SoftIRQ (Software Interrupt Request) — это механизм в ядре Linux для обработки отложенных задач, которые нельзя выполнить в контексте аппаратного прерывания (IRQ), но и запускать как обычные процессы слишком дорого.

SoftIRQ используется, например, в сетевом стеке (обработка пакетов), планировщике задач и таймерах. Он позволяет разгрузить обработчики прерываний, обеспечивая баланс между низкими задержками и производительностью.
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍3
lsns: кто держит namespace?

Linux активно использует namespaces — они изолируют процессы по сетям, PID, пользователям, монтам и прочим ресурсам. 


В обычной работе это не видно, но как только в системе появляются контейнеры, systemd-изоляторы или «подозрительные» процессы, namespaces становятся критически важны для отладки.

Инструмент lsns позволяет быстро посмотреть, какие процессы «сидят» в каких пространствах имён.

Простейший запуск:

lsns


На выходе будет таблица: PID, тип namespace, время создания и т.д.

Это помогает понять, например, кто держит лишний mount namespace или почему сетевой стек не совпадает с основным.

Можно фильтровать по типу:

lsns -t net


Покажет все сетевые namespaces — полезно для диагностики контейнеров.

А если нужно конкретно узнать, кто держит PID namespace:

lsns -t pid
👍97
В crontab записано:

0 2 * * * /usr/local/bin/backup.sh Когда будет выполняться скрипт?
Anonymous Quiz
11%
Каждое воскресенье в 2 ночи
78%
Каждый день в 2 ночи
7%
Каждую минуту в 2 ночи
4%
Каждый час
😁12🤪6👍53
Swap-файл vs swap-раздел: как влияет на SSD и работу в системах с малым ОЗУ

На слабых серверах и миниатюрных VPS наличие подкачки решает всё. Даже базовая установка apt без swap может закончиться «убийством» процессов через OOM-killer.

Но что выбрать: swap-файл или swap-раздел? И главное — как сделать, чтобы не угробить SSD и не словить тормоза?


Что выбрать — swap-файл или swap-раздел?

Swap-раздел исторически считался более «надёжным» вариантом: он выделяется на физическом уровне и не фрагментируется. Но в реальности:
менять его размер сложно (особенно без LVM);
требует переформатирования или изменения разметки;
неудобен в облаках и на VPS.

Swap-файл — более гибкий и удобный. Особенно если:
вы работаете на облаке с единственным диском;
у вас ограниченное место;
нужно быстро изменить размер или выключить swap.

На современных ядрах swap-файл работает почти так же эффективно, как и раздел, особенно если создать его правильно.

Как правильно создать swap-файл

Не используйте dd — он может создать фрагментированный файл:

# Плохо:
dd if=/dev/zero of=/swapfile bs=1M count=1024


Вместо этого:

# Хорошо:
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile


В fstab:

/swapfile none swap sw 0 0


Дополнительные улучшения: zswap и zram

Чтобы продлить срок службы SSD и ускорить работу на слабых системах:

Zswap — сжатая подкачка в RAM. Включается одной командой:

echo 1 > /sys/module/zswap/parameters/enabled


Zram — компрессированный swap в памяти. Особенно эффективен на embedded и ARM-устройствах:

modprobe zram
echo lz4 > /sys/block/zram0/comp_algorithm
echo 512M > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0


Настройка поведения подкачки

Чтобы система не бросалась в swap при любой нагрузке:

sysctl vm.swappiness=10


10–20 — хороший баланс: сначала используется RAM, и только потом swap.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥138👍2
💬 Вопрос на собеседовании для сисадмина

Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.


Вопрос: Что такое Writeback в Linux и как он влияет на производительность системы?

Ответ: Writeback — это процесс записи изменённых (dirty) страниц памяти обратно на диск. Когда приложение изменяет данные в памяти, они сначала остаются в RAM для ускорения работы, а ядро периодически переносит их на постоянное хранилище.

Система управляет writeback через параметры vm.dirty_ratio и vm.dirty_background_ratio, а также через демоны pdflush или flush. Правильная настройка writeback снижает задержки при записи, предотвращает перегрузку диска и балансирует использование оперативной памяти и I/O.
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍8
capsh и Linux capabilities

В Linux root-аккаунт обладает полным набором прав, но далеко не всегда это нужно. Capabilities позволяют «разрезать» привилегии на части и выдавать только нужные.

Это снижает риски: сервис не сможет сделать ничего лишнего, даже если его взломают.


Например, чтобы процесс слушал порты ниже 1024, достаточно capability CAP_NET_BIND_SERVICE. Полный root здесь избыточен.

Проверка текущих прав:

capsh --print


Запуск процесса только с нужной capability:

capsh --drop=all --add=cap_net_bind_service -- -c "./server"


⚡️Так можно запускать сервисы безопаснее, следуя принципу «минимально необходимых прав». Это актуально и для контейнеров, и для демонов в продакшене.
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍9