Неравнодушен к серверным и сетевым технологиям? Приходи на Selectel Infra MeetUp!
Selectel проводит мероприятие для инженеров дата-центров. Приходите, чтобы узнать о развитии технологий и оборудования в ЦОДах и получить советы по карьерному развитию.
📍23 мая, Москва (оффлайн и онлайн)
В программе:
— хардкорные лекции и практические воркшопы,
— карьерные консультации от экспертов,
— афтепати с розыгрышами призов и нетворкингом.
Посмотреть подробную программу и зарегистрироваться: https://slc.tl/a77gh
Чтобы не пропустить митап и узнавать о других мероприятиях, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwnoL2g
Selectel проводит мероприятие для инженеров дата-центров. Приходите, чтобы узнать о развитии технологий и оборудования в ЦОДах и получить советы по карьерному развитию.
📍23 мая, Москва (оффлайн и онлайн)
В программе:
— хардкорные лекции и практические воркшопы,
— карьерные консультации от экспертов,
— афтепати с розыгрышами призов и нетворкингом.
Посмотреть подробную программу и зарегистрироваться: https://slc.tl/a77gh
Чтобы не пропустить митап и узнавать о других мероприятиях, воркшопах и бесплатных курсах Selectel, подписывайтесь на @selectel_events
Реклама. АО «Селектел», ИНН 7810962785, ERID: 2VtzqwnoL2g
👍3❤1
Как быстро найти, кто грузит CPU: команды mpstat и pidstat
1️⃣ Посмотреть загрузку всех ядер
• -P ALL — все ядра
• 1 5 — обновлять каждые 1 секунду, всего 5 раз
Что смотрим?
%usr — % загрузка CPU пользовательскими процессами
%sys — % загрузка системными процессами (ядро)
%idle — % простоя (чем больше, тем лучше!)
Если %idle близок к 0 — CPU сильно загружен.
2️⃣ Найти самые «жирные» процессы по CPU
Вывод покажет процессы и их %CPU каждую секунду.
3️⃣ Быстрая сортировка процессов по загрузке CPU
Показывает 10 самых «тяжелых» по CPU процессов.
4️⃣ Если нужно — снизить приоритет процесса
Чем выше число, тем ниже приоритет.
И мониторинг в реальном времени
top отсортирует процессы по CPU. Чтобы выйти — нажмите q.
mpstat -P ALL 1 5
• -P ALL — все ядра
• 1 5 — обновлять каждые 1 секунду, всего 5 раз
Что смотрим?
%usr — % загрузка CPU пользовательскими процессами
%sys — % загрузка системными процессами (ядро)
%idle — % простоя (чем больше, тем лучше!)
Если %idle близок к 0 — CPU сильно загружен.
pidstat 1 5
Вывод покажет процессы и их %CPU каждую секунду.
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -10
Показывает 10 самых «тяжелых» по CPU процессов.
renice +10 <PID>
Чем выше число, тем ниже приоритет.
И мониторинг в реальном времени
top -o %CPU
top отсортирует процессы по CPU. Чтобы выйти — нажмите q.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤3
Вышел Podman 5.5.0
Это инструмент для управления контейнерами, образами и томами на Linux, macOS и Windows (через Podman VM). Код написан на Go и Shell, лицензия Apache 2.0.
Релизы выходят четыре раза в год. В версии 5.5.0 исправлены баги и добавлены новые команды:
⏺ podman machine cp — копирование файлов в Podman VM
⏺ podman artifact extract — копирование содержимого OCI-артефактов на диск
⏺ опция ‑mount=artifact для монтирования OCI-артефактов в контейнеры
Требуется минимум Go 1.23 для сборки. Обновлены ключевые модули: Buildah 1.40.0, containers/common 0.63.0 и другие.
Это инструмент для управления контейнерами, образами и томами на Linux, macOS и Windows (через Podman VM). Код написан на Go и Shell, лицензия Apache 2.0.
Релизы выходят четыре раза в год. В версии 5.5.0 исправлены баги и добавлены новые команды:
Требуется минимум Go 1.23 для сборки. Обновлены ключевые модули: Buildah 1.40.0, containers/common 0.63.0 и другие.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Быстрая диагностика и устранение проблем с BIND (named)
BIND — один из самых распространённых DNS-серверов в Linux-средах. Он отвечает за трансляцию имён в IP и обратно, поддерживает зону прямого и обратного разрешения, DNSSEC и многое другое.
1️⃣ Проверяем статус сервиса
Если сервис не запущен — запустите его:
Если он падает — смотрим логи.
2️⃣ Логи BIND — первое место для поиска проблем
В зависимости от дистрибутива логи могут быть в /var/log/messages, /var/log/syslog или /var/log/named/named.log.
Чтобы быстро смотреть последние ошибки:
или
Обращайте внимание на ошибки синтаксиса, проблемы с зонами, отказ в доступе.
3️⃣ Проверка конфигурации BIND
Перед перезапуском всегда проверяйте конфигурацию:
Если команда не выводит ошибок — конфиг валидный.
4️⃣ Проверка файлов зон
Ошибки в зонах — частая причина проблем.
Проверяем файл зоны (например, zonefile.db):
Если есть ошибки — будут показаны с подробностями.
5️⃣ Тестируем DNS-запросы локально
Если ответ корректный — BIND работает локально.
6️⃣ Проверяем права и доступ к файлам
BIND должен иметь права читать зоны и конфиги:
Если проблемы с правами — исправьте:
7️⃣ Перезапуск BIND с выводом ошибок
Если сервис упал — посмотрите последние ошибки в журнале.
8️⃣ Обновление записей зоны без перезапуска — динамическое обновление
Если настроено, используйте:
Команда перезагрузит конкретную зону без остановки сервиса.
9️⃣ Диагностика проблем с сетевым доступом к BIND
Проверяем, слушает ли BIND на нужных интерфейсах:
Проверяем firewall:
Убедитесь, что порт 53 открыт для TCP и UDP.
BIND — один из самых распространённых DNS-серверов в Linux-средах. Он отвечает за трансляцию имён в IP и обратно, поддерживает зону прямого и обратного разрешения, DNSSEC и многое другое.
systemctl status named
Если сервис не запущен — запустите его:
systemctl start named
Если он падает — смотрим логи.
В зависимости от дистрибутива логи могут быть в /var/log/messages, /var/log/syslog или /var/log/named/named.log.
Чтобы быстро смотреть последние ошибки:
journalctl -u named -f
или
tail -f /var/log/named/named.log
Обращайте внимание на ошибки синтаксиса, проблемы с зонами, отказ в доступе.
Перед перезапуском всегда проверяйте конфигурацию:
named-checkconf
Если команда не выводит ошибок — конфиг валидный.
Ошибки в зонах — частая причина проблем.
Проверяем файл зоны (например, zonefile.db):
named-checkzone example.com /etc/bind/zones/example.com.db
Если есть ошибки — будут показаны с подробностями.
dig @localhost example.com
Если ответ корректный — BIND работает локально.
BIND должен иметь права читать зоны и конфиги:
ls -l /etc/bind/zones/
Если проблемы с правами — исправьте:
chown -R bind:bind /etc/bind/zones/
chmod 640 /etc/bind/zones/*.db
systemctl restart named
journalctl -xe -u named
Если сервис упал — посмотрите последние ошибки в журнале.
Если настроено, используйте:
rndc reload example.com
Команда перезагрузит конкретную зону без остановки сервиса.
Проверяем, слушает ли BIND на нужных интерфейсах:
ss -tulnp | grep named
Проверяем firewall:
iptables -L -n | grep 53
Убедитесь, что порт 53 открыт для TCP и UDP.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥1
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
В системах с NUMA важно оптимизировать размещение процессов и потоков, чтобы они максимально использовали локальную память, снижая задержки и увеличивая производительность. Для этого применяются настройки CPU и памяти, а также специальные инструменты, например numactl, позволяющие управлять привязкой процессов к узлам NUMA.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔9🔥3😁1
Когда dig не помогает: отладка DNS на уровне сети
Пользователь жалуется, что “ничего не открывается”, а dig возвращает нормальные ответы. BIND работает, зона валидна. Что тогда?
1️⃣ Проверяем, действительно ли DNS отрабатывает
Проверяем, вернулся ли полный ответ с нужным A или CNAME. Обратите внимание на поля:
• ANSWER SECTION: есть ли IP?
• AUTHORITY SECTION: может быть ответом, если рекурсивный запрос не разрешился.
2️⃣ Проверяем клиентский резолвинг
Возможно, система вообще не использует ваш DNS.
3️⃣ Используем strace для захвата DNS-запросов
Это покажет, делает ли вообще клиент DNS-запрос и куда.
4️⃣ Тестируем с tcpdump
• Видно ли, что запрос приходит к BIND?
• Есть ли ответ?
• Уходит ли запрос наружу, если ваш сервер — рекурсор?
5️⃣ Проверяем рекурсивность
Если вы администрируете DNS-сервер, но запросы снаружи не работают — возможно, вы не разрешили рекурсию:
Проверьте named.conf и ACL.
6️⃣ Проверяем MTU и DNS over UDP
Если ответы DNS большие (например, с DNSSEC), они могут не помещаться в UDP. В таком случае клиент должен повторно делать запрос по TCP.
Проверяем:
Если работает только с +tcp, а без него — нет, возможны проблемы с фаерволом или MTU.
7️⃣ Проверяем, что система действительно использует DNS
Некоторые системы с systemd используют systemd-resolved. Проверяем:
Или:
Если ответы кэшируются или не доходят — лучше отключить systemd-resolved и использовать классический resolv.conf.
Пользователь жалуется, что “ничего не открывается”, а dig возвращает нормальные ответы. BIND работает, зона валидна. Что тогда?
dig @127.0.0.1 example.com
Проверяем, вернулся ли полный ответ с нужным A или CNAME. Обратите внимание на поля:
• ANSWER SECTION: есть ли IP?
• AUTHORITY SECTION: может быть ответом, если рекурсивный запрос не разрешился.
cat /etc/resolv.conf
Возможно, система вообще не использует ваш DNS.
strace -e trace=network curl https://example.com
Это покажет, делает ли вообще клиент DNS-запрос и куда.
tcpdump -i any port 53 -n
• Видно ли, что запрос приходит к BIND?
• Есть ли ответ?
• Уходит ли запрос наружу, если ваш сервер — рекурсор?
Если вы администрируете DNS-сервер, но запросы снаружи не работают — возможно, вы не разрешили рекурсию:
options {
recursion yes;
allow-recursion { trusted-nets; };
};
Проверьте named.conf и ACL.
Если ответы DNS большие (например, с DNSSEC), они могут не помещаться в UDP. В таком случае клиент должен повторно делать запрос по TCP.
Проверяем:
dig +tcp example.com
Если работает только с +tcp, а без него — нет, возможны проблемы с фаерволом или MTU.
Некоторые системы с systemd используют systemd-resolved. Проверяем:
resolvectl status
Или:
systemd-resolve --status
Если ответы кэшируются или не доходят — лучше отключить systemd-resolved и использовать классический resolv.conf.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥4
Что делает утилита gitleaks?
Anonymous Quiz
9%
Очищает репозиторий
13%
Находит скрытые уязвимости
73%
Сканирует git-репозиторий на предмет утечек секретов
5%
Проверяет код на XSS
👍8
Почему systemd-таймер срабатывает не тогда, когда вы ждёте?
Настроили systemd-таймер, всё вроде по документации. Но скрипт не запускается, или запускается не в то время? Это не баг — это AccuracySec.
1️⃣ Что такое AccuracySec и зачем он нужен?
По умолчанию systemd не гарантирует миллисекундную точность.
Чтобы сэкономить ресурсы, он может откладывать таймер до ближайшего «удобного» момента. Именно это делает AccuracySec.
Пример:
Если не задать AccuracySec, systemd может спокойно сдвинуть запуск на несколько минут вперёд — и вы будете гадать, почему бэкап не стартует ровно в 03:00.
2️⃣ Как проверить, что ваш таймер вообще живой?
Покажет ближайшее время запуска и прошедшие срабатывания. Если не видите свой таймер — возможно, вы забыли Enable=true.
3️⃣ Почему OnBootSec не сработал после перезагрузки?
Это типовая ошибка: вы включили таймер, но не активировали сам юнит.
Проверьте:
А ещё — не забывайте, что OnBootSec=5min означает запуск спустя 5 минут после загрузки, а не сразу.
4️⃣ Хотите запуск точно по расписанию?
Сделайте AccuracySec=1s, и systemd не будет «оптимизировать» время:
Persistent=true важен, если хотите, чтобы задача выполнилась после выключения — она «догонит» при следующем старте
Настроили systemd-таймер, всё вроде по документации. Но скрипт не запускается, или запускается не в то время? Это не баг — это AccuracySec.
По умолчанию systemd не гарантирует миллисекундную точность.
Чтобы сэкономить ресурсы, он может откладывать таймер до ближайшего «удобного» момента. Именно это делает AccuracySec.
Пример:
[Timer]
OnCalendar=*-*-* 03:00:00
AccuracySec=1s
Если не задать AccuracySec, systemd может спокойно сдвинуть запуск на несколько минут вперёд — и вы будете гадать, почему бэкап не стартует ровно в 03:00.
systemctl list-timers
Покажет ближайшее время запуска и прошедшие срабатывания. Если не видите свой таймер — возможно, вы забыли Enable=true.
Это типовая ошибка: вы включили таймер, но не активировали сам юнит.
Проверьте:
systemctl status your-timer.timer
А ещё — не забывайте, что OnBootSec=5min означает запуск спустя 5 минут после загрузки, а не сразу.
Сделайте AccuracySec=1s, и systemd не будет «оптимизировать» время:
[Timer]
OnCalendar=*-*-* 05:00:00
AccuracySec=1s
Persistent=true
Persistent=true важен, если хотите, чтобы задача выполнилась после выключения — она «догонит» при следующем старте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1
Вышел AlmaLinux 9.6 — синхронизирован с RHEL 9.6
20 мая 2025 года вышел стабильный релиз AlmaLinux 9.6. Дистрибутив основан на ядре Linux 5.14 и полностью бинарно совместим с Red Hat Enterprise Linux 9.6.
Доступны сборки для x86_64, ARM64, ppc64le и s390x.
Обновления и особенности:
⏺ Улучшенная производительность и безопасность
⏺ Удалены RHEL-специфичные пакеты (insights-client, subscription-manager и др.)
⏺ Расширена поддержка оборудования (LSI, Adaptec, Dell, QLogic и др.)
⏺ Репозиторий Synergy — дополнительное ПО (Pantheon, Warpinator и др.)
20 мая 2025 года вышел стабильный релиз AlmaLinux 9.6. Дистрибутив основан на ядре Linux 5.14 и полностью бинарно совместим с Red Hat Enterprise Linux 9.6.
Доступны сборки для x86_64, ARM64, ppc64le и s390x.
Проект поддерживается некоммерческой AlmaLinux OS Foundation, распространяется бесплатно и развивается открытым сообществом.
Обновления и особенности:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Присоединяйтесь к обзору «Нимбиуса» — решения класса Cloud Management Platform
«Нимбиус» — это российская разработка — аналог VMware vRealize и Red Hat CloudForms, которая помогает крупным компаниям создавать частные облака и управлять гибридной инфраструктурой по модели Infrastructure-as-a-Code.
На мероприятии вы узнаете, как платформа повышает эффективность работы команд разработки и эксплуатации ИТ-инфраструктуры, а также увидите последние достижения:
▪️Интеграции с платформами zVirt и SpaceVM
▪️Новые PaaS-сервисы в маркетплейсе — СУБД и Kubernetes
▪️Единый модуль биллинга и аллокации затрат
Что еще в программе?
▪️Обзор трендов на инфраструктурном рынке в РФ
▪️Live-demo функционала продукта, новых фишек
▪️Непридуманные истории внедрения в Enterprise
Когда: 30 мая, 14:00 мск
Формат: онлайн
🔗 Регистрация
«Нимбиус» — это российская разработка — аналог VMware vRealize и Red Hat CloudForms, которая помогает крупным компаниям создавать частные облака и управлять гибридной инфраструктурой по модели Infrastructure-as-a-Code.
На мероприятии вы узнаете, как платформа повышает эффективность работы команд разработки и эксплуатации ИТ-инфраструктуры, а также увидите последние достижения:
▪️Интеграции с платформами zVirt и SpaceVM
▪️Новые PaaS-сервисы в маркетплейсе — СУБД и Kubernetes
▪️Единый модуль биллинга и аллокации затрат
Что еще в программе?
▪️Обзор трендов на инфраструктурном рынке в РФ
▪️Live-demo функционала продукта, новых фишек
▪️Непридуманные истории внедрения в Enterprise
Когда: 30 мая, 14:00 мск
Формат: онлайн
🔗 Регистрация
👍4🔥1
zombie процессы
Иногда вы запускаете top или ps aux, и вдруг замечаете статус Z. Это зомби-процесс. Он уже умер, но остался в таблице процессов, потому что его родитель не вызвал wait().
Такое бывает из-за багов, утечек, криво написанных демонов или скриптов.
Диагностика
Показать все зомби в системе:
Пример вывода:
1234 — это PID зомби.
567 — это PPID — родитель, который должен был вызвать wait().
Посмотреть, кто этот родитель:
Если родитель всё ещё жив, но “не собирает” зомби — это потенциальная проблема.
Что делать?
⏺ Если это ваш сервис/скрипт — проверьте, обрабатываете ли вы SIGCHLD и вызываете ли wait() в родителе. В bash это можно сделать так:
⏺ Перезапустите родительский процесс, чтобы он корректно завершил своих детей:
⏺ Если родитель — PID 1 (init/systemd) — зомби обычно исчезают автоматически, как только systemd обрабатывает SIGCHLD.
Создаём зомби для отладки
Если хотите поэкспериментировать:
Компилируем и запускаем:
Иногда вы запускаете top или ps aux, и вдруг замечаете статус Z. Это зомби-процесс. Он уже умер, но остался в таблице процессов, потому что его родитель не вызвал wait().
Такое бывает из-за багов, утечек, криво написанных демонов или скриптов.
Диагностика
Показать все зомби в системе:
ps -eo pid,ppid,state,cmd | grep ' Z '
Пример вывода:
1234 567 Z [my-dead-child]
1234 — это PID зомби.
567 — это PPID — родитель, который должен был вызвать wait().
Посмотреть, кто этот родитель:
ps -p 567 -o pid,comm
Если родитель всё ещё жив, но “не собирает” зомби — это потенциальная проблема.
Что делать?
while true; do
./child &
wait $!
done
systemctl restart <service>
Создаём зомби для отладки
Если хотите поэкспериментировать:
// zombie.c
#include <stdlib.h>
#include <unistd.h>
int main() {
if (fork() > 0) {
sleep(60); // родитель спит, не вызывает wait
} else {
exit(0); // ребёнок умирает
}
}
Компилируем и запускаем:
gcc zombie.c -o zombie
./zombie
ps aux | grep Z
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15👎3❤1
Чем больше у вас данных, тем страшнее их потерять 👀
29 мая в 11:00 облачный провайдер Cloud․ru расскажет, как защитить бизнес от потери данных с помощью облачных технологий.
Что будет на вебинаре:
🤖 Непрерывность данных — почему без бэкапов бизнес в зоне риска.
🤖 Резервное копирование и аварийное восстановление — когда и зачем нужно.
🤖 Облако для защиты данных — как и зачем использовать.
🤖 Дополнительные методы защиты — что еще важно учитывать.
Будет live-демо — эксперт покажет настройку резервного копирования и восстановления в прямом эфире.
Зарегистрироваться на вебинар🖱
29 мая в 11:00 облачный провайдер Cloud․ru расскажет, как защитить бизнес от потери данных с помощью облачных технологий.
Что будет на вебинаре:
Будет live-демо — эксперт покажет настройку резервного копирования и восстановления в прямом эфире.
Зарегистрироваться на вебинар
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍12❤3🤗3
“Too many open files”: куда утекают дескрипторы
Сервисы начинают сыпать ошибками:
Но ulimit -n вроде нормальный. Что происходит?
⏺ Причина:
Открытые файлы — это не только обычные файлы, но и сокеты, пайпы, устройства.
У каждого процесса есть лимит на количество открытых дескрипторов (nofile). При его превышении начинаются ошибки.
Проверка лимитов
⏺ Поиск виновника
Показываем процессы с наибольшим числом открытых файлов:
Смотрим, что именно открыто у подозреваемого:
⏺ Что делать?
Если утекают дескрипторы — проверьте код, особенно вызовы open() и close().
Если активно растёт число сетевых соединений — проверьте, не остаются ли открытые сокеты:
Как увеличить лимит
Для systemd-сервисов:
Сервисы начинают сыпать ошибками:
EMFILE: Too many open files
Но ulimit -n вроде нормальный. Что происходит?
Открытые файлы — это не только обычные файлы, но и сокеты, пайпы, устройства.
У каждого процесса есть лимит на количество открытых дескрипторов (nofile). При его превышении начинаются ошибки.
Проверка лимитов
ulimit -n # лимит текущей сессии
cat /proc/$$/limits # все лимиты текущего процесса
Показываем процессы с наибольшим числом открытых файлов:
for pid in $(ls /proc | grep -E '^[0-9]+$'); do
count=$(ls /proc/$pid/fd 2>/dev/null | wc -l)
echo "$count $pid"
done | sort -nr | head
Смотрим, что именно открыто у подозреваемого:
ls -l /proc/<PID>/fd
Если утекают дескрипторы — проверьте код, особенно вызовы open() и close().
Если активно растёт число сетевых соединений — проверьте, не остаются ли открытые сокеты:
netstat -anp | grep <PID>
Как увеличить лимит
# Временно
ulimit -n 65535
# Постоянно — /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
Для systemd-сервисов:
[Service]
LimitNOFILE=65535
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23
Какой способ безопаснее всего передать root-доступ по SSH для администрирования?
Anonymous Quiz
3%
Открыть root-доступ по паролю
5%
Использовать PermitRootLogin yes
89%
Настроить PermitRootLogin prohibit-password и использовать ключ
2%
Разрешить root-доступ через Telnet
👍10🔥2
Когда sshd пускает всех: настройка ограничения доступа по IP и ключам
Пользователь жалуется, что к серверу могут подключаться нежелательные IP, а ключи не всегда работают.
Как быстро проверить и настроить безопасный доступ?
1️⃣ Проверяем текущие подключения и логи SSH
Смотрим, кто подключается и есть ли ошибки аутентификации.
2️⃣ Ограничиваем доступ по IP в sshd_config
Добавьте в /etc/ssh/sshd_config:
Или используйте AllowGroups с похожим синтаксисом.
3️⃣ Разрешаем доступ только по ключам, отключаем пароль
4️⃣ Проверяем разрешённые ключи в ~/.ssh/authorized_keys
Убедитесь, что ключи корректные и права на папку и файл строго выставлены:
5️⃣ Перезапускаем sshd
6️⃣ Тестируем подключение с нужных IP и с ключами
Если не работает — запускайте ssh с повышенной детализацией:
7️⃣ При подозрениях — включаем дополнительный лог в sshd_config:
Это поможет понять, почему соединение не проходит.
Пользователь жалуется, что к серверу могут подключаться нежелательные IP, а ключи не всегда работают.
Как быстро проверить и настроить безопасный доступ?
ss -tnpa | grep sshd
journalctl -u sshd -e
Смотрим, кто подключается и есть ли ошибки аутентификации.
Добавьте в /etc/ssh/sshd_config:
AllowUsers [email protected].*
DenyUsers user2@*
Или используйте AllowGroups с похожим синтаксисом.
PasswordAuthentication no
PubkeyAuthentication yes
Убедитесь, что ключи корректные и права на папку и файл строго выставлены:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
systemctl restart sshd
Если не работает — запускайте ssh с повышенной детализацией:
ssh -vvv user@server
LogLevel VERBOSE
Это поможет понять, почему соединение не проходит.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
Давайте разберем один из частых вопросов, который может быть задан на собеседовании и как на него отвечать.
Как с ним работать:
— Поведение можно контролировать с помощью параметра oom_score_adj. Чем выше значение (макс. 1000), тем выше вероятность, что процесс будет убит.
— Можно настроить cgroups и ограничить память для отдельных групп процессов, чтобы сбои не затрагивали всю систему.
— Желательно использовать swap-файл/раздел, чтобы отложить момент срабатывания OOM, но не полагаться на это как на основную защиту.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
Релиз Rust Coreutils 0.1.0
24 мая 2025 вышла версия 0.1.0 проекта Rust Coreutils (uutils) — кроссплатформенной альтернативы GNU Coreutils, написанной на Rust.
В набор входят популярные утилиты: ls, cp, cat, chmod, date и другие.
Rust Coreutils уже будет использоваться по умолчанию в Ubuntu 25.10.
Основные улучшения версии 0.1.0:
⏺ Поддержка SELinux в ключевых утилитах (cp, ls, mkdir, stat и др.).
⏺ Оптимизации производительности: uutils в ряде случаев быстрее GNU.
⏺ Улучшена совместимость с тестами GNU Coreutils (522 успешных теста).
⏺ Расширены функции и добавлены опции во многие утилиты.
Проект распространяется под MIT-лицензией — более либеральной, чем GPL у GNU Coreutils.
24 мая 2025 вышла версия 0.1.0 проекта Rust Coreutils (uutils) — кроссплатформенной альтернативы GNU Coreutils, написанной на Rust.
В набор входят популярные утилиты: ls, cp, cat, chmod, date и другие.
Цель — создать производительную и безопасную замену Coreutils, которая будет работать на Linux, Windows, Redox и Fuchsia.
Rust Coreutils уже будет использоваться по умолчанию в Ubuntu 25.10.
Основные улучшения версии 0.1.0:
Проект распространяется под MIT-лицензией — более либеральной, чем GPL у GNU Coreutils.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10👎3🤣1
Bonding интерфейсов в Linux: простая настройка для отказоустойчивости и скорости
Bonding - это объединение нескольких физических сетевых интерфейсов в один логический, чтобы увеличить пропускную способность или обеспечить резервирование.
Зачем нужно?
• Если один кабель или интерфейс упадёт, сеть не потеряется.
• Можно повысить скорость, суммируя каналы.
Как проверить, поддерживается ли bonding?
Простой пример конфигурации (mode=1 — active-backup):
⏺ Создаём файл /etc/sysconfig/network-scripts/ifcfg-bond0 (для RHEL/CentOS):
⏺ Настраиваем интерфейсы, которые в bonding, например /etc/sysconfig/network-scripts/ifcfg-eth0:
Аналогично для eth1.
⏺ Перезапускаем сеть:
Что важно знать:
1️⃣ Режим bonding влияет на логику работы: active-backup — резервирование, balance-rr — агрегация с балансировкой нагрузки, другие — для продвинутых сценариев.
2️⃣ На коммутаторе тоже нужно настроить LACP или соответствующий режим.
Bonding - это объединение нескольких физических сетевых интерфейсов в один логический, чтобы увеличить пропускную способность или обеспечить резервирование.
Зачем нужно?
• Если один кабель или интерфейс упадёт, сеть не потеряется.
• Можно повысить скорость, суммируя каналы.
Как проверить, поддерживается ли bonding?
modprobe bonding
lsmod | grep bonding
Простой пример конфигурации (mode=1 — active-backup):
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
Аналогично для eth1.
ifdown eth0 eth1
ifup bond0
Что важно знать:
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1