▶️ Общайтесь в чате Системного администратора
Коллеги, создали чат для общения и обсуждения текщих вопросов, которые возникают в процессе нашей любимой работы. Вступайте, общайтесь, решайте вопросы, помогайте другим.
https://max.ru/join/NyZzVvpXnAmqD8HNszZ_1JhOWW5IpMfquDqxCEHbG_c
11:44 22-02-2026
📌 ТОП-5 инструментов для безопасности сети! 🔐💻
👨💻 В мире кибербезопасности важно иметь в своем арсенале мощные инструменты для анализа, тестирования и защиты сети. Список ТОП-5 лучших инструментов, которые используют эксперты по безопасности:
🚀 1. Wireshark
🟢 Мощный анализатор пакетов, который позволяет изучать сетевой трафик в режиме реального времени.
🚀 2. Nmap
🟣 Универсальный инструмент сканирования сети и аудита безопасности. Позволяет находить открытые порты и уязвимости.
🚀 3. Snort
🟠 Открытая система обнаружения и предотвращения вторжений (IDS/IPS), которая анализирует сетевой трафик и блокирует угрозы.
🚀 4. Metasploit
🔵 Фреймворк для тестирования на проникновение, который помогает выявлять и использовать уязвимости систем.
🚀 5. Netcat
🟡 "Швейцарский нож" сетевого взаимодействия – позволяет чтение и запись данных через TCP и UDP.
⚡ Эти инструменты помогают анализировать и защищать сети, а также проверять их на уязвимости!
👉 @i_odmin
10:58 21-02-2026
Лента-липучка - стильно, практично
👉 @i_odmin
21:13 20-02-2026
Как устроен tcp/ip?
00:00 Модель OSI
02:15 Модель TCP/IP
04:20 Яндекс Практикум
06:00 TCP
16:48 UDP
18:19 System design
19:24 IPv4
23:48 ICMP
25:20 IPv6
26:26 Ethernet
29:00 Физический уровень
источник
👉 @i_odmin
14:26 20-02-2026
🚀 Шпаргалка по управлению логами с помощью Logrotate
Logrotate это мощный инструмент для управления лог-файлами в Linux. Он помогает автоматизировать ротацию, сжатие, удаление и отправку логов, чтобы они не занимали всё свободное место на диске.
Основные команды Logrotate
1. Запуск вручную:
logrotate /etc/logrotate.conf
Можно указать конкретный конфиг:
logrotate /etc/logrotate.d/myapp
2. Принудительная ротация:
logrotate -f /etc/logrotate.conf
3. Тестирование конфигурации:
logrotate -d /etc/logrotate.conf
(ключ -d включает режим отладки, изменения не применяются).
Структура конфигурационного файла
Конфигурация Logrotate обычно находится в /etc/logrotate.conf или в отдельных файлах в /etc/logrotate.d/.
Пример конфига для ротации логов приложения:
/var/log/myapp/*.log {
daily # Ротация ежедневно
missingok # Пропустить, если файл отсутствует
rotate 7 # Хранить 7 архивов
compress # Сжимать архивы (gzip)
delaycompress # Сжимать не сразу, а на следующий цикл
notifempty # Не ротировать пустые файлы
create 0644 root root # Создать новый файл с указанными правами
sharedscripts # Запускать скрипты один раз для всех логов
postrotate
/usr/bin/systemctl restart myapp > /dev/null
endscript
}
Ключевые директивы
- daily/weekly/monthly/yearly: Частота ротации.
- rotate N: Хранить N архивов.
- compress: Сжимать логи (по умолчанию gzip).
- delaycompress: Сжимать не сразу, а на следующий цикл.
- missingok: Пропустить, если файл отсутствует.
- notifempty: Не ротировать пустые файлы.
- size: Ротация по размеру (например, size 100M или `size 1G`).
- create MODE USER GROUP: Создать новый файл с указанными правами.
- postrotate/endscript: Выполнить команды после ротации.
- prerotate/endscript: Выполнить команды перед ротацией.
- sharedscripts: Запускать скрипты один раз для всех логов.
- dateext: Добавлять дату к имени архива (вместо номера).
- olddir DIR: Перемещать архивы в указанную директорию.
Полезные советы
- Проверяйте конфигурацию перед применением с помощью logrotate -d.
- Используйте cron для автоматизации запуска Logrotate.
- Не забывайте про postrotate, если нужно перезапускать сервисы после ротации.
👉 @i_odmin
08:08 20-02-2026
🖨 Печать из командной строки Linux
В этом руководстве мы настроим принтер, который будет печатать вывод в /dev/null. Мы также покажем, как отправить документ на принтер и управлять очередью печати.
Настройка демонстрационного принтера
Для настройки демонстрационного принтера мы будем использовать CUPS (Common UNIX Printing System). Это свободно распространяемый модуль печати, который большинство дистрибутивов Linux используют в качестве стандарта для управления принтерами.
🔹Установка CUPS
Сначала установите CUPS с помощью APT:
sudo apt install cups
Далее включите и запустите службу CUPS:
sudo systemctl enable --now cups
🔹Создание тестового принтера
Теперь создайте фиктивный принтер, печатающий на /dev/null:
sudo lpadmin -p demo-printer -E -v file:///dev/null
Если действие выполнено успешно, то он появится в списке принтеров:
sudo lpstat -s
Опционально мы можем отметить наш новый принтер как принтер по умолчанию:
sudo lpoptions -d demo-printer
🔹Печать из командной строки
Базовое использование
Чтобы распечатать документ, используйте команду "lp":
lp [файл_к_печати]
Поскольку принтер не указан, lp отправляет документ на печать на принтер по умолчанию. Если вы сконфигурировали демонстрационный принтер, печатающий в /dev/null, то на самом деле он не будет производить никакого вывода.
🔹Печать нескольких копий
Чтобы распечатать несколько копий документа, выполните следующую команду:
lp -n [количество_копий] [файл_к_печати]
🔹Очередь печати
При работе с реальными принтерами обычно требуется некоторое время для завершения печати одной копии. Однако у вас может быть несколько документов, которые вы хотите распечатать. Что делать в такой ситуации?
Благодаря функции очереди печати вы можете отправить на печать сразу все документы. Сервер CUPS хранит дополнительные документы в буфере. Как только текущее задание печати завершается, он автоматически отправляет на печать новый документ.
Для просмотра списка отпечатков, которые в данный момент находятся в очереди, используйте следующую команду:
lpq
🔹Отмена задания печати
Что делать, если вы случайно отправили на печать не тот документ? Пока документ еще не отправлен на принтер, мы можем удалить его из очереди печати:
cancel [номер_задания_печати]
Однако делать это следует быстро. Иначе документ будет уже напечатан.
🔹Двусторонняя печать
По умолчанию большинство принтеров настроены на одностороннюю печать. Однако мы можем указать CUPS на двухстороннюю печать:
lp -o sides=two-sided-long-edge [файл_к_печати]
Если вы хотите сделать двухстороннюю печать конфигурацией по умолчанию, используйте следующую команду:
lpoptions -o sides=two-sided-short-edge
Если необходимо вернуться к односторонней печати, выполните следующую команду:
lpoptions -o sides=one-sided
🔹Альбомная печать
Мы также можем указать печать в альбомном режиме. Для этого выполните следующую команду:
lp -o landscape [файл_к_печати]
🔹Вывод списка подключенных принтеров
Чтобы получить список всех принтеров, подключенных к системе, выполните следующую команду:
lpstat -a
🔹Установка принтера по умолчанию
При печати из командной строки без указания принтера команда "lp" отправляет документ на принтер по умолчанию.
Существует несколько способов задать принтер по умолчанию. Как было показано в начале данного руководства, для задания принтера по умолчанию можно использовать команду "lpoptions":
sudo lpoptions -d [имя_принтера]
В качестве альтернативы можно использовать переменную окружения PRINTER для указания принтера по умолчанию:
export PRINTER=[имя_принтера]
Если вы хотите сделать это изменение постоянным, добавьте эту строку в файл "bashrc":
tail ~/.bashrc
echo "export PRINTER=<имя_принтера>" >> ~/.bashrc
👉 @i_odmin
15:40 19-02-2026
Команда crontab: опции, ключи и примеры использования
Планировщик cron для запуска задач с заданными интервалом времени от имени текущего пользователя. Формат планирования задачи: "(минута) (час) (день_месяца) (месяц) (день_недели) команда".
Редактирует файл crontab для текущего пользователя:
crontab -e
Выводит список существующих задая для текущего пользоваетеля:
crontab -l
Удаляет все задачи cron для текущего пользователя:
crontab -r
Пример задачи, которая запускается ежедневно в 10:00. * означает любое значение:
0 10 * * * {{path/to/script.sh}}
Пример задачи, которая запускается каждую минуту 3-го апреля:
* * 3 Apr * {{path/to/script.sh}}
Пример задачи, которая запускается каждую пятницу в 02:30:
30 2 * * Fri {{path/to/script.sh}}
👉 @i_odmin
09:35 19-02-2026
Сети Cisco и Linux у Вас дома
Хорошим инженером можно стать так же, как хорошим спортсменом — нужно постоянно тренироваться, находить на это время и мотивацию. На нашем мастер-классе вы узнаете, как организовать «спортзал» дома и, занимаясь в формате «свободное обучение», повышать свою квалификацию в любое свободное время. А еще вы узнаете про использование геймификации — игрового подхода к образованию в наших методических материалах. Это точно оторвет вас от любимого сериала!
источник
👉 @i_odmin
10:54 18-02-2026
Bash. Проверки файлов
Kоманды позволяют проверять различные условия, касающиеся файлов
-d file # Проверяет, существует ли файл, и является ли он директорией.
-e file # Проверяет, существует ли файл.
-f file # Проверяет, существует ли файл, и является ли он файлом.
-r file # Проверяет, существует ли файл, и доступен ли он для чтения.
-s file # Проверяет, существует ли файл, и не является ли он пустым.
-w file # Проверяет, существует ли файл, и доступен ли он для записи.
-x file # Проверяет, существует ли файл, и является ли он исполняемым.
file1 -nt file2 # Проверяет, новее ли file1, чем file2.
file1 -ot file2 # Проверяет, старше ли file1, чем file2.
-O file # Проверяет, существует ли файл, и является ли его владельцем текущий пользователь.
-G file # Проверяет, существует ли файл, и соответствует ли его идентификатор группы идентификатору группы текущего пользователя.
#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ] # если файл сущетсвует и он является директорией
then
echo "The $mydir directory exists" # выводим сообщение
cd $mydir # переходим в него
ls # отображаем содержимое
else # ИНАЧЕ
echo "The $mydir directory does not exist"
fi
👉 @i_odmin
16:06 17-02-2026
Восстановление данных со сломанного USB-накопителя
👉 @i_odmin
14:56 17-02-2026
Структура каталогов в Linux
Структура каталогов Linux похожа на дерево. Первый каталог в файловой системе метко назван корневым каталогом «/», или можно сказать, что основание иерархии файловой системы начинается с корня. Корневой каталог содержит множество папок и файлов, в которых можно хранить еще больше папок, файлов и т.д. Вот пример того, как выглядит дерево каталогов.
https://i-odmin.ru/struktura-katalogov-v-linux/
👉 @i_odmin
10:04 17-02-2026
Копируем структуру директорий в Linux
В этой статье мы расскажем как в две команды скопировать структуру директорий без файлов через командрую строку Linux.
Сначала необходимо перейти в директорию, где находятся нужная структура
# cd /dir1
Затем выполняем команду, которая находит директории и сохраняет пути к ни в файл
# find . -type d > dirs.txt
Теперь необходимо перенести этот файл в директорию, где мы хотим воссоздать структуру
# mv ./dirs.txt /dir2
Переходим туда
# cd /dir2
И используя xargs читаем из файла пути и создаем по ним структуру директорий
# xargs mkdir -p < dirs.txt
👉 @i_odmin
18:48 16-02-2026
Atop или htop?
Что лучше использовать для мониторинга системы? 🖥️📊
Если вы работаете с Linux, то наверняка сталкивались с необходимостью мониторинга системы. Две популярные утилиты для этого - atop и htop. Но что выбрать?
🔹Htop - простота и удобство 🚀
Что это?
Улучшенная версия классического top. Показывает процессы в виде интерактивной таблицы с цветовым выделением.
- Плюсы:
• Простой и интуитивно понятный интерфейс.
• Поддержка мыши (можно кликать по процессам).
• Удобная сортировка процессов (по CPU, памяти и т.д.).
• Возможность "убивать" процессы прямо из интерфейса.
- Минусы:
• Нет истории данных (только текущее состояние).
• Меньше деталей о дисковых и сетевых операциях.
- Кому подойдет?
Если вам нужно быстро посмотреть, что нагружает систему, и удобно управлять процессами, htop - ваш выбор.
🔹Atop - мощь и детализация 🔍
Что это?
Продвинутая утилита для мониторинга, которая показывает не только текущее состояние системы, но и сохраняет историю данных.
- Плюсы:
• Детальная информация о CPU, памяти, дисках и сети.
• Возможность анализировать исторические данные (например, что происходило час назад).
• Поддержка мониторинга завершенных процессов.
• Гибкость: можно сортировать процессы по разным параметрам.
- Минусы:
• Более сложный интерфейс (новичкам может быть непривычно).
• Нет поддержки мыши.
🔹Кому подойдет?
Если вам нужен глубокий анализ производительности системы или диагностика проблем, atop - идеальный инструмент.
- htop - для быстрого мониторинга и управления процессами.
- atop - для детального анализа и работы с историческими данными.
Выбор зависит от ваших задач, но, скорее всего, будете использовать оба инструмента.
👉 @i_odmin
15:44 16-02-2026
📶 Сети для несетевиков // OSI/ISO, IP и MAC, NAT, TCP и UDP, DNS
В этом видео я рассказываю про базовые сетевые технологии, чтобы ты мог применять эти знания в работе, на собеседованиях, в пет-проектах и обучении. Здесь и про OSI/ISO, TCP/IP, порты, ip-адреса, mac-адреса и NAT. Конечно же, шутка про TCP и UDP.
0:00 Вступление
0:38 Зачем знать сети?
1:48 OSI/ISO - TCP/IP
8:19 MAC-адрес
9:35 IP-адрес
10:48 Порты
11:50 Маски и подсети
13:34 Белые и серые подсети
14:41 NAT network address translation
15:54 Ч ем отличается TCP и UDP?
18:03 Как работает DNS?
19:09 Траблшутинг
20:34 О чем не поговорили, но тоже очень важно
источник
👉 @i_odmin
10:05 16-02-2026
Курс Системного Администратора Linux для новичков. Часть 2
- Работа с ACL. Урок 10.
- Установка и управление пакетами в CentOS. Урок 11.
- Стандартные потоки ввода/вывода в Linux. Урок 12.
- Установка веб-сервера Apache. Урок 13.
- Стадии инициализации системы в Linux
источник
👉 @i_odmin
09:12 16-02-2026
Как найти и удалить старые файлы в Linux? 🗑️
Сейчас покажу, как быстро находить и удалять старые файлы в Linux. Это полезно для очистки логов, временных файлов и других ненужных данных.
🔍 Поиск файлов старше 30 дней:
find /path/to/directory -type f -mtime +30
- -type f — ищем только файлы;
- -mtime +30 — файлы старше 30 дней.
🗑️ Удаление этих файлов:
find /path/to/directory -type f -mtime +30 -delete
⚠ Осторожно! Удаление без подтверждения.
✅ Безопасный вариант с подтверждением:
find /path/to/directory -type f -mtime +30 -exec rm -i {} \;
Будет запрашиваться подтверждение перед удалением.
🔥 Автоматизация через cron:
Добавляем в crontab -e:
0 3 * * * find /var/log -type f -mtime +30 -delete
Очистка логов каждую ночь в 03:00.
👉 @i_odmin
11:06 15-02-2026
Замаскированные службы Linux
Как замаскировать службу в Linux.
Первое, что мы сделаем, это научимся маскировать службу в Linux. Возьмем к примеру службу MySQL. Откройте окно терминала и замаскируйте службу MySQL с помощью команды:
$ sudo systemctl mask mysql
Если вы не маскировали службу MySQL, она будет отображаться в выводе команды systemctl list-unit-files | grep masked. После маскировки служба MySQL не сможет запускаться ни автоматически, ни вручную. Попробуйте запустить службу командой:
$ sudo systemctl start mysql
Вы должны будете увидеть следующую ошибку:
Failed to start mysql.service: Unit mysql.service is masked.
Как размаскировать службу в Linux.
Теперь, когда вы замаскировали службу, разберем как все вернуть обратно. Команда будет такой:
$ sudo systemctl unmask mysql
Теперь, когда вы запустите MySQL, он будет работать, как обычно.
👉 @i_odmin
14:54 14-02-2026
Курс Системного Администратора Linux для новичков. Часть 1
- Вступление в курс по Системному Администрированию Линукс.
- Как установить Линукс/Linux. Урок 1 Установка.
- Базовые навыки и знакомство с консолью Линукс. Урок 2. Базовые навыки и команды
- Краткий обзор стандартных директорий Линукс. Урок 3. Базовое знакомство со структурой директорий.
- Базовые команды Линукс, часть 1. Урок 4.
- Базовые команды Линукс, часть 2, текстовый редактор vi. Урок 5
- Настройка ssh соединения к серверу, понятие айпи адреса. Урок 6.
- Пользователи и группы в Линукс. Урок 7.
- Права доступа в Линукс. Урок 8.
- Расширенные права доступа - SUID, SGID, Sticky bit. Урок 9.
- Работа с ACL. Урок 10.
- Установка и управление пакетами в CentOS. Урок 11.
- Стандартные потоки ввода/вывода в Linux. Урок 12.
- Установка веб-сервера Apache. Урок 13.
- Стадии инициализации системы в Linux
источник
👉 @i_odmin
11:50 14-02-2026
🚀 Подборка полезных IT каналов в Max
Системное администрирование, DevOps 📌
https://max.ru/i_odmin Все для системного администратора
https://max.ru/bash_srv Bash Советы
https://max.ru/sysadminof Книги для админов, полезные материалы
https://max.ru/i_odmin_book Библиотека Системного Администратора
https://max.ru/i_devops DevOps: Пишем о Docker, Kubernetes и др.
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
GitHub Сообщество 📌
https://max.ru/githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://max.ru/database_info Все про базы данных
Фронтенд разработка 📌
https://max.ru/frontend_1 Подборки для frontend разработчиков
Библиотеки 📌
https://max.ru/programmist_of Книги по программированию
https://max.ru/proglb Библиотека программиста
https://max.ru/bfbook Книги для программистов
Программирование 📌
https://max.ru/bookflow Лекции, видеоуроки, доклады с IT конференций
https://max.ru/itmozg Программисты, дизайнеры, новости из мира IT
https://max.ru/php_lib Библиотека PHP программиста 👨🏼💻👩💻
🔹1. Обновление системы
- Регулярно обновляйте систему и программное обеспечение:
- Включите автоматические обновления безопасности.
sudo apt update && sudo apt upgrade -y # Для Debian/Ubuntu
sudo yum update -y # Для CentOS/RHEL
🔹2. Настройка брандмауэра
- Используйте ufw (Uncomplicated Firewall) или firewalld для управления входящими и исходящими соединениями:
- Запретите все неиспользуемые порты.
🔹3. Защита SSH
- Измените порт SSH по умолчанию (22):
sudo nano /etc/ssh/sshd_config
Измените строку Port 22 на другой порт.
- Отключите вход под root:
PermitRootLogin no
- Используйте аутентификацию по ключу вместо пароля:
PasswordAuthentication no
- Ограничьте доступ по IP:
AllowUsers user@your_ip
🔹4. Управление пользователями и правами
- Создавайте отдельных пользователей с ограниченными правами для выполнения задач.
- Используйте sudo вместо входа под root.
- Регулярно проверяйте список пользователей и удаляйте ненужные учетные записи:
sudo deluser username
🔹5. Установка и настройка Fail2Ban
- Fail2Ban блокирует IP-адреса после нескольких неудачных попыток входа:
sudo apt install fail2ban # Для Debian/Ubuntu
sudo yum install fail2ban # Для CentOS/RHEL
- Настройте конфигурацию для SSH и других сервисов.
🔹6. Отключение ненужных сервисов
- Удалите или остановите неиспользуемые сервисы:
🔹7. Использование SELinux/AppArmor
- Включите SELinux (для CentOS/RHEL) или AppArmor (для Debian/Ubuntu) для усиления безопасности:
sudo setenforce 1 # Для SELinux
sudo systemctl enable apparmor # Для AppArmor
🔹8. Регулярное резервное копирование
- Настройте автоматическое резервное копирование важных данных.
- Храните резервные копии на отдельном сервере или в облаке.
🔹9. Мониторинг и логирование
- Используйте инструменты мониторинга, такие как htop, nmon или Prometheus.
- Регулярно проверяйте логи:
🔹10. Шифрование данных
- Используйте шифрование дисков (LUKS) для защиты данных.
- Настройте SSL/TLS для всех сервисов, работающих с данными.
🔹11. Аудит безопасности
- Используйте инструменты для сканирования уязвимостей, такие как Lynis или OpenSCAP:
sudo lynis audit system
👉 @i_odmin
09:27 09-02-2026
lnav (Log File Navigator) — это мощный инструмент для анализа логов, который создан для удобной работы с текстовыми файлами, содержащими журналы. Он объединяет функции текстового редактора и анализатора логов в одном интерфейсе.
🔑 Основные возможности:
1. Автоматическое объединение логов:
- lnav может объединять несколько лог-файлов с различными временными метками в хронологическом порядке, упрощая анализ событий из разных источников.
2. Подсветка синтаксиса:
- Он автоматически распознает форматы логов (например, JSON, syslog, Apache, MySQL) и подсвечивает ключевые элементы, такие как даты, уровни логов (INFO, ERROR), чтобы вы могли быстро находить нужную информацию.
3. Запросы на основе SQL:
- Позволяет выполнять запросы к логам с использованием встроенной поддержки SQLite. Это дает возможность фильтровать, сортировать и анализировать данные, как если бы это была база данных.
4. Обнаружение ошибок и предупреждений:
- lnav автоматически выделяет строки, содержащие ошибки (например, ERROR, WARN), чтобы привлечь внимание к потенциальным проблемам.
5. Просмотр в реальном времени:
- Поддерживает live-режим, в котором можно наблюдать за обновлением логов в режиме реального времени.
6. Портативность:
- Это консольное приложение, которое легко устанавливается на Linux, macOS и даже Windows через WSL.
📌 Примеры использования:
1. Анализ веб-серверных логов:
lnav /var/log/nginx/access.log
lnav автоматически подсветит запросы, статусы и временные метки.
2. Использование SQL-запроса для подсчета количества ошибок:
SELECT COUNT(*) FROM log WHERE log_level = 'ERROR';
3. Чтение логов в реальном времени:
tail -f /var/log/syslog | lnav
https://lnav.org/
👉 @i_odmin
08:16 06-02-2026
Zenith - что-то вроде top или htop, но с диаграммами с возможностью масштабирования, использованием CPU, GPU, сети и диска.
Особенности
Дополнительные графики использования ЦП, памяти, сети и дисков
Быстрый просмотр свободного места на диске, IP-адресов сетевых карт, частоты процессора
Выделение основных пользователей ЦП, памяти и диска
Процент заряда батареи, время зарядки или разрядки, потребляемая мощность
Таблица процессов с возможностью фильтрации по типу верхней части, включающая использование диска каждым процессом
Изменение приоритета процесса
Представления диаграмм с возможностью масштабирования (с поддержкой прокрутки назад во времени)
Управление процессами с помощью сигналов
Сохранение данных о производительности между запусками
Метрики использования GPU для графических процессоров NVIDIA (с --features nvidia), включая использование GPU для каждого процесса
Графики свободного места на диске
Учет задержек (в Linux при запуске zenith с правами root)
Установка на дистрибутивы Linux на базе Debian/Ubuntu (64-бит)
На одном из серверов был перенесен веб-сайт, из-за которого периодически подвисал дочерний httpd (apache2) процесс. Необходимо было временное решение на время отладки кода и решения проблемы на уровне сайта, которое отслеживало бы зависшие процессы.
Было решено написать bash скрипт, который отслеживает время жизни процесса, затраченное время процессора (CPU time) и нагрузку на процессов. В случае, если все 3 параметра достигают определенное пиковое конфигурируемое значение - процесс убивается.
Использование
./checker.sh param1 param2
#Пример:
./checker.sh httpd www-data
param1 - поисковая строка для вывода команды ps
param2 - опционально, вторая поисковая строка для уточнения результатов
#!/bin/bash
cpuLimit=5000 # cpu * 100
timeLimit=600 # process time limit in seconds
cpuTimelimit=400 # process cpu time limit in seconds
killSignal="HUP" # kill signal
debug=0 # 1 - not kill | 0 - kill
verbose=1 # 1 - print info | 1 - without output
##### END CONFIG #####
declare -i cpuLimit
declare -i timeLimit
declare -i cpuTimelimit
declare -i debug
declare -i verbose
declare -A pidTime
declare -A pidCpuTime
declare -A pidCpu
declare -A pidUser
declare -A pidApp
if [[ $arrSize -eq 0 ]];then
if [[ $verbose -eq 1 ]];then
echo "Required processes are not found"
fi
else
for i in "${!pidCpu[@]}";do
if [[ $verbose -eq 1 ]];then
echo "----------------"
echo "pid: $i"
echo "user: ${pidUser[$i]}"
echo "cpu: ${pidCpu[$i]}"
echo "time: ${pidTime[$i]}"
echo "cpu time: ${pidCpuTime[$i]}"
echo "app: ${pidApp[$i]}"
if [[ ${pidCpu[$i]} -gt $cpuLimit ]] ;then
echo "CPU WARNING"
fi
if [[ ${pidTime[$i]} -gt $timeLimit ]];then
echo "TIME WARNING"
fi
if [[ ${pidCpuTime[$i]} -gt $cpuTimelimit ]];then
echo "CPU TIME WARNING"
fi
fi
if [[ ${pidCpu[$i]} -gt $cpuLimit ]] && [[ ${pidTime[$i]} -gt $timeLimit ]] && [[ ${pidCpuTime[$i]} -gt $cpuTimelimit ]];then
if [[ $debug -ne 1 ]];then
kill -$killSignal $i
if [[ $verbose -eq 1 ]];then
echo "PID $i KILLED. Result code $?"
fi
fi
fi
done
fi
exit 0;
Скрипт имеет ряд параметров:
🔵 cpuLimit=5000 - задает лимит потребления CPU умноженного на 100 (5000 - потребление 50% процессора)
🔵 timeLimit=600 - задает лимит времени работы процесса в секундах
🔵 cpuTimeLimit=400 - задает лимит потребления процессорного времени
🔵 killSignal - сигнал, который передается утилите kill. Я выставил HUP, что делает безопасное завершение процесса. Если процесс остается, то можно попробовать KILL, но это чревато проблемами
🔵 verbose=1 - выводить информация о найденных процессах или нет
🔵 debug=1 — 1 - не убивать процесс (включив verbose - можно протестировать), 0 - убивать процесс
👉 @i_odmin
09:58 05-02-2026
Разбираем SQL на примере PostgreSQL — SELECT, JOIN, GROUP, HAVING, Coalesce и др.
Изучаем классические реляционные базы данных и язык для работы с ними — SQL — на примере топовой открытой СУБД PostgreSQL. Если вас пугает JOIN, вы не понимаете GROUP BY, вас смущает вопрос отличия WHERE от HAVING — смотрите видео полностью и обязательно прорабатывайте все запросы вместе с нами! Мы создадим и изучим работу с базой данных для интернет-магазина, хранящую в себе товары, их фотографии, покупателей и их заказы.
00:00 Зачем знать SQL и базы данных
02:47 Виды баз данных
03:28 Понятие сущностей, проектирование больших систем
06:01 Сущности в реляционных базах данных
06:50 Проектирование схемы БД магазина на бумаге
10:27 Перенос схемы БД в PostgreSQL, создание БД и таблиц
15:50 Заполняем БД данными
17:40 SELECT, получение данных из БД
19:03 JOIN, объединение таблиц
23:25 LEFT JOIN, RIGHT JOIN, INNER JOIN
26:57 Удаление данных их таблиц, обновление данных таблиц
28:23 Пример комплексного запроса с несколькими JOIN
32:31 Группировка данных GROUP BY
34:11 COALESCE
34:47 Сортировка данных, ORDER BY
35:13 HAVING
36:26 LIMIT, OFFSET
38:09 Выводы, итоги
источник
👉 @i_odmin
15:31 04-02-2026
Наглядное руководство по туннелированию SSH и переадресации портов
Если говорить коротко, то я жалею, что не знал о пробросе портов и туннелировании раньше. В этой статье я пытаюсь лучше понять это и поделиться с вами некоторым опытом и советами.
Темы:
🔹 сценарии использования
🔹 конфигурация
🔹 SSH jumphosts
🔹 локальная/удаленная/динамическая переадресация портов и ограничения
Данное видео представляет собой практическое руководство по эффективному монтированию сетевых папок в операционных системах на базе Linux. Автор подробно описывает преимущества использования опции multiuser, которая позволяет нескольким пользователям одновременно работать с общим ресурсом, используя их собственные учетные данные и права доступа.
В видео представлены два основных сценария настройки: через классическую связку логина и пароля с использованием защищенных ключей ядра и через систему аутентификации Kerberos. Предложенный метод решает проблемы безопасности и производительности, обеспечивая при этом единые пути к файлам для всех сотрудников.
Инструкция также содержит полезные советы по интеграции сетевых дисков в графический интерфейс и автоматизации процессов при загрузке системы.
Данный материал ориентирован на системных администраторов, занимающихся оптимизацией ИТ-инфраструктуры и импортозамещением программного обеспечения.
📺 Если вам удобно смотреть на youtube https://youtu.be/J-J9eqBPTgM
Бонус. На youtube к данному ролику добавили викторину для проверки знаний по данной теме.
👉 @i_odmin
08:24 03-02-2026
Как заставить пользователя изменить пароль при следующем входе в систему
Существует несколько способов.
Использование команды passwd
sudo passwd --expire [username]
Использование команды chage
sudo chage --lastday 0 [username]
Срок действия паролей
chage -l
Будет выведена следующая информация:
Когда пароль был последний раз изменен;
Дата окончания действия пароля;
Сколько дней осталось до окончания действия пароля;
Когда учетная запись пользователя будет закончена (можно, пожалуйста, далее мы будем говорить «заэкспайрится»?)
Минимальное количество дней между итерацией смены пароля;
Максимальное количество дней между итерацией смены пароля;
Заставляем пользователя менять пароль каждые 90 дней
sudo chage -M 90
Задаем срок жизни учетной записи (до 12 июня 2023)
sudo chage -E 2023-06-12 serg
sudo chage -E 2023-06-12 oleg
Сколько времени на смену пароля?
В примере даем Борису 10 дней на смену пароля с момента как пароль заэкспайрился
sudo chage -I 10 boris
Уведомление о смене пароля заранее
Через 25 дней истекает срок годности пароля Бориса
sudo chage -W 25 boris
Защищаемся от частой смены паролей пользователя
Минимальное количество дней между сменой паролей
sudo chage -m 25 boris
Удалить ограничение в днях
sudo chage -m 0 sergey
👉 @i_odmin
12:01 02-02-2026
📨 Протоколы безопасности электронной почты
🔹1. SSL/TLS
SSL (Secure Sockets Layer) и TLS (Transport Layer Security) - это протоколы шифрования, которые используются для защиты соединений между почтовым клиентом и сервером.
Ключевые моменты:
- Обеспечивают шифрование данных, чтобы защитить их от перехвата.
- Используются в протоколах передачи почты (SMTP, IMAP, POP3).
- Например, защищенное соединение обозначается как SMTPS (порт 465), IMAPS (порт 993) или POP3S (порт 995).
🔹2. SPF (Sender Policy Framework)
SPF помогает предотвратить подделку отправителя.
Как работает:
- Домены публикуют в DNS список IP-адресов, которые имеют право отправлять почту от их имени.
- Почтовые серверы проверяют, совпадает ли IP отправителя с разрешённым списком.
🔹3. DKIM (DomainKeys Identified Mail)
DKIM защищает письма от подделки.
Как работает:
- Использует цифровую подпись, которая добавляется в заголовок сообщения.
- Получатель может проверить подлинность письма с помощью публичного ключа, опубликованного в DNS отправителя.
🔹4. DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC объединяет SPF и DKIM для усиления защиты.
Ключевые функции:
- Позволяет владельцам доменов указать, как обработать сообщения, которые не проходят SPF или DKIM.
- Генерирует отчёты для отправителей о подозрительных действиях.
🔹5. S/MIME (Secure/Multipurpose Internet Mail Extensions)
Протокол для шифрования и подписания сообщений электронной почты.
Особенности:
- Обеспечивает конфиденциальность благодаря шифрованию содержимого.
- Гарантирует целостность письма и его происхождение с помощью цифровой подписи.
🔹6. PGP (Pretty Good Privacy)
PGP используется для шифрования электронной почты и файлов.
Как работает:
- Предоставляет возможность создавать пары открытых и закрытых ключей.
- Получатель расшифровывает письмо с помощью своего закрытого ключа.
🔹7. Антивирусы и антиспам-фильтры
Современные почтовые системы интегрируют механизмы сканирования писем для выявления вредоносных вложений и фишинговых ссылок.
🔹8. Использование современных стандартов (MTA-STS и DANE)
- MTA-STS (Mail Transfer Agent Strict Transport Security): обеспечивает защиту от атак типа man-in-the-middle (MITM), гарантируя, что сообщения отправляются только через защищённые TLS-соединения.
- DANE (DNS-Based Authentication of Named Entities): добавляет уровень аутентификации через DNSSEC.
Рекомендации для пользователей:
1. Используйте почтовые сервисы с поддержкой SSL/TLS.
2. Настройте SPF, DKIM и DMARC для своего домена.
3. Активируйте двухфакторную аутентификацию (2FA).
4. Регулярно обновляйте почтовые клиенты и серверы.
5. Обучайте сотрудников правилам кибербезопасности.
Эти протоколы и меры обеспечивают защиту от фишинга, перехвата данных и других угроз. Соблюдение рекомендаций минимизирует риски и делает вашу почту безопасной.
👉 @i_odmin
06:11 02-02-2026
Как ускорить навигацию командной строки
++++++++++++++++++++++++++++++
Повторный запуск под root — sudo !!
user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.
Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
Как надо: sudo !!
++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Повторный ввод последнего аргумента — Alt+
Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?
Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
Как надо:
mkdir MyNewDirectory
cd <Alt+.>
++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Поиск запущенной команды — Ctrl+R
Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!
Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?
Как не надо: Вверх. Вверх. Вверх. Enter.
Как надо: Ctrl+R
Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.
++++++++++++++++++++++++++++++
Переход в начальную директорию — cd
Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.
++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Возвращение в последнюю директорию — cd -
Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .
Как не надо: cd /var/www/foo
Как надо: cd -
++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++
Контроль работы: передний план, фоновый режим и проч.
Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.
Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.
«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.
user@host: jobs
[1] Stopped vim
Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.
++++++++++++++++++++++++++++++
👉 @i_odmin
17:00 30-01-2026
IPv4 vs IPv6
👉 @i_odmin
12:22 30-01-2026
Тестирование производительности файловых систем Linux: ZFS, XFS, Btrfs против ext4
Тестирование производительности ZFS, XFS, Btrfs и ext4 на виртуальной машине с Debian 13, и результаты на данный момент весьма любопытны. В тестах dbench самый высокий показатель пропускной способности демонстрирует ZFS, в то время как ext4 показывает самую низкую задержку (latency).
Заметно, что при низкой нагрузке (например, всего несколько потоков ввода-вывода) Btrfs оказывается в лидерах - так что она вполне подойдет для универсального десктопа под игры и мультимедиа.
Однако для серверного использования ситуация иная: пропускная способность ZFS великолепна при высокой нагрузке, в то время как задержки ext4 остаются низкими даже в тяжелых условиях. В противовес им, производительность Btrfs заметно снижается при росте нагрузки.
👉 @i_odmin
09:06 30-01-2026
Частые ошибки программирования на Bash
Качество скриптов, используемых для автоматизации и оптимизации работы системы, является залогом ее стабильности и долголетия, а также сохраняет время и нервы администратора этой системы. Несмотря на кажущуюся примитивность bash как языка программирования, он полон подводных камней и хитрых течений, способных значительно подпортить настроение как разработчику, так и администратору.
Большинство имеющихся руководств посвящено тому, как надо писать. Я же расскажу о том, как писать НЕ надо :-)
Данный текст является вольным переводом вики-страницы «Bash pitfalls» по состоянию на 13 декабря 2008 года. В силу викиобразности исходника, этот перевод может отличаться от оригинала. Поскольку объем текста слишком велик для публикации целиком, он будет публиковаться частями.
1. for i in ls *.mp3
Одна из наиболее часто встречающихся ошибок в bash-скриптах — это циклы типа такого:
for i in `ls *.mp3`; do # Неверно!
some command $i # Неверно!
done
Это не сработает, если в названии одного из файлов присутствуют пробелы, т.к. результат подстановки команды ls *.mp3 подвергается разбиению на слова. Предположим, что у нас в текущей директории есть файл 01 - Don't Eat the Yellow Snow.mp3. Цикл for пройдётся по каждому слову из названия файла и $i примет значения: "01", "-", "Don't", "Eat", "the", "Yellow", "Snow.mp3".
Заключить всю команду в кавычки тоже не получится:
for i in "`ls *.mp3`"; do # Неверно!
...
https://habr.com/ru/articles/47706/
👉 @i_odmin
16:23 29-01-2026
💥 Почему твой Bash-скрипт опять упал на проде? (wiki на 🇬🇧)
Признайтесь, у каждого было: пишешь скрипт, тестируешь - всё идеально. Запускаешь в реальных условиях и всё ломается из-за файла с пробелом в имени, пустой переменной или странного перевода строки.
Bash не прощает небрежности. Но вместо того чтобы каждый раз наступать на грабли самому, лучше изучить карту минного поля, которую составили до нас.
👉 Bash Pitfalls - это, без преувеличения, самый важный ресурс по безопасному шелл-скриптингу в интернете.
Здесь собраны десятки примеров того, как кажется правильным писать код, и объяснения, почему на самом деле это ужасная идея.
🟢 До сих пор используете for f in $(ls *.mp3)?
🟢 Забываете кавычки в if [ $foo = "bar" ]?
🟢 Не знаете, в чем опасность echo $variable?
Вам срочно сюда. Потратьте час времени, и вы сэкономите себе десятки часов отладки в будущем.
top есть почти везде, но без прокрутки/мыши/нормальной визуализации он быстро начинает раздражать. В подборке 7 тулзов “как top, только приятнее”.
1) htop - “дефолтная” замена top
Интерактивный монитор с прокруткой, мышью, цветами, фильтрацией и более удобными действиями над процессами.
2) atop - когда нужна история и разбор полётов
Умеет логировать нагрузку и потом разбирать “что происходило на сервере”, плюс подсветка близких к критическим значений.
3) nmon - мониторинг “по секциям”
Можно включать/выключать блоки статистики горячими клавишами и смотреть ровно то, что нужно (CPU/диски/сеть и т.д.).
4) vtop - красивый UI в терминале (Node.js)
Выглядит как TUI-“графика”, есть мышь/темы, но нужна среда Node.js и npm.
5) bashtop - эффектно, но может быть тяжелее
Визуально очень приятный монитор, расширяемый модулями (например, датчики/температуры), но потребляет больше ресурсов.
⚠️ На практике многие уже переходят на btop - это C++-продолжение bashtop/bpytop (обычно быстрее/легче).
6) gtop - ещё один “Node-монитор”
Похож по духу на vtop: просто, наглядно, но тоже требует Node.js/npm.
7) glances - “всё на одном экране” + удалёнка
Ставит целью показать максимум метрик в минимуме места, умеет client/server, web UI, экспорты/интеграции. Очень годно для админов, которые мониторят не один хост.
🧰 Мини-установка (Debian/Ubuntu):
sudo apt install htop atop nmon glances
(а vtop/gtop - через npm)
# chown -R vasya directory
Рекурсивно обойти директорию directory и назначить пользователя vasya владельцем всех вложенных файлов и директорий
# chown vasya:group /file
Назначить владельца и группу для файла /file
# chmod ugo+rwx /directory
Установить полные права доступа rwx ( Read Write eXecute ) для всех ugo ( User Group Other ) на директорию /directory. То-же самое можно сделать, используя числовой представление chmod 777 directory
# chmod go-rwx /directory
Удалить все права на директорию /directory для группы и остальных
# chgrp new_group file
Изменить группу-владельца для file на new_group
# chmod o+t /home/public
Установить так называемый STIKY-бит на директорию /home/public. Удалить файл в такой директории может только владелец данного файла
# chmod o-t /home/public
Удалить STIKY-бит с директории /home/public
# chmod u+s /bin/binary_file
Установить SUID-бит на файл /bin/binary_file. Это позволяет любому пользователю системы, запускать данный файл с правами владельца файла
# chmod u-s /bin/binary_file
Удалить SUID-бит с файла /bin/binary_file
# chmod g+s /home/public
Установить SGID-бит на директории /home/public
# chmod g-s /home/public
Удалить SGID-бит с директории /home/public
# find / -perm -u+s
Поиск всех файлов с установленным SUID битом, начиная с корня файловой системы
# ls -lh
Листинг текущего каталога с правами доступа
👉 @i_odmin
11:23 28-01-2026
🦀 Sniffnet: Мониторинг трафика
Если tcpdump кажется слишком хардкорным для текущей задачи, а запускать комбайн Wireshark ради быстрого взгляда на активность сети не хочется, посмотрите на Sniffnet.
Это мультиплатформенное приложение, написанное на Rust (значит, быстрое и безопасное по памяти), которое превращает сетевой анализ в наглядный дашборд.
🌍 Фильтрация: Можно быстро отсеять трафик по приложениям, протоколам (IP, UDP, TCP, ICMP) или даже по странам.
🔍 Детальная инспекция: Показывает доменные имена, провайдеров (ASN) и геолокацию хостов.
🔔 Умные уведомления: Можно настроить алерты, если трафик превысит определенный порог.
📁 PCAP: Умеет сохранять дампы для дальнейшего глубокого анализа.
🎨 Темы: Есть темная тема (обязательно для админа) и полная кастомизация цветов.
Работает на Linux, Windows и macOS. Установка простая, зависимости минимальные.
🔗 GitHub: https://github.com/GyulyVGC/sniffnet
#tools #rust #network #opensource #sysadmin
👉 @i_odmin
08:15 28-01-2026
Доступ через Kerberos для Linux машин в домен Windows
В этом видео я расскажу как получить доступ к сетевым ресурсам домена Windows для Linux машин, используя Kerberos.
Список пакетов которые протребуются:
1) krb5-user
2) ldap-utils
3) smbclient
4) установите пакет gvfs-backends если используете gnome
источник
👉 @i_odmin
10:34 27-01-2026
🎯 Мониторинг и оптимизация дискового пространства в Linux
💾 Мониторинг использования:
• Проверить свободное место:
df -h
• Размер директории:
du -sh /путь/к/директории
• Топ-10 крупных папок:
du -ah /путь | sort -rh | head -n 10
• Найти большие файлы (>1ГБ):
find / -type f -size +1G 2>/dev/null
• ncdu — анализ диска:
sudo apt install ncdu && ncdu /
• iotop — мониторинг операций с файлами:
iotop
• fslint — поиск мусорных файлов:
sudo apt install fslint
📊 Мониторинг в реальном времени:
• Свободное место:
df -h
• Загрузка диска процессами:
iotop
• Отслеживание изменений в директории:
inotifywait -m /путь
👉 @i_odmin
17:10 26-01-2026
Репозиторий 101 Linux Commands eBook содержит бесплатную электронную книгу, в которой собрано 101 базовых и продвинутых команд Linux.
Она ориентирована на пользователей, желающих улучшить свои навыки работы с Linux, и включает примеры использования, объяснения и полезные советы для каждой команды.
Это удобный ресурс для обучения и повседневной работы с системами на основе Linux.
• Basics;
- File Hierarchy Standard (FHS);
- Commands;
• Disk and File System Management;
- General Disk Manipulation (non-LVM);
- Globs (Wildcards);
- Regex;
- Stream redirection;
• Text Readers & Editors;
- Less;
- VI;
• User and Group Management;
• File System Permissions;
• SSH;
• Cronjobs;
• Package Management;
- RPM;
- YUM;
• List of commands by category:
- Directory Navigation;
- File Commands;
- File and Directory Manipulation;
- Package archive and compression tools;
- System commands;
- Networking Commands;
- Package Management;
- User Information commands;
- Session commands;
- Getting Help;
- Applications.
🐧 Карта Linux: Где лежат твои конфиги и почему /tmp опять забит?
Новичку иерархия директорий в Linux кажется хаосом, но на самом деле это строгий стандарт (FHS - Filesystem Hierarchy Standard). Сохраняйте шпаргалку, чтобы не искать логи в /bin и не пытаться запустить бинарники из /etc.
📂 Основные узлы системы:
🟢 /bin & /sbin - здесь живут исполняемые файлы. Разница проста: в sbin лежат утилиты для админа (system binaries), требующие root-прав.
🟢 /etc - «сердце» настроек. Если нужно поправить конфиг Nginx или SSH, вам сюда. Совет: всегда делайте бэкап файла перед правкой.
🟢 /var - всё, что постоянно меняется. Логи (/var/log), кэши и базы данных. Если на сервере кончилось место — первым делом проверяй эту папку.
🟢 /home - личное пространство пользователей. Единственное место (кроме /tmp), где обычный юзер может «мусорить» без sudo.
🟢 /root - домашняя папка суперпользователя. Не путать с корневым разделом /!
🟢 /proc & /sys - это не совсем папки на диске, а виртуальные интерфейсы к ядру и процессам. Магия Linux в действии.
🟢 /opt - для стороннего софта. Сюда обычно ставятся проприетарные штуки вроде Google Chrome или Discord, которые не хотят размазываться по всей системе.
🟢 /mnt & /media - точки монтирования. Флешки летят в media, а временные диски лучше цеплять в mnt.
💡 Если сервис не стартует, беги в /var/log, если сервис «забыл» настройки- проверяй права на файлы в /etc.
#Linux #SystemAdmin #DevOps #Junior #Шпаргалка
👉 @i_odmin
09:22 23-01-2026
Эффективный разбор лог-файлов Linux!
15 примеров, которые администраторы Linux могут использовать ежедневно 👇.
1/ Поиск определенного текста в файле журнала:
grep "error" /var/log/syslog
Эта команда ищет слово "error" в файле syslog.
2/ Подсчитайте вхождения определенного шаблона:
grep -c "error" /var/log/syslog
Эта команда подсчитывает вхождения слова "error" в файл syslog.
3/ Отфильтруйте журналы по диапазону дат:
grep "Apr 1" /var/log/syslog
Эта команда фильтрует записи syslog за 1 апреля.
4/ Просматривайте журналы в режиме реального времени:
tail -f /var/log/syslog
Эта команда позволяет следить за файлом syslog в режиме реального времени.
5/ Найдите наиболее часто встречающиеся ошибки:
grep "error" /var/log/syslog | sort | uniq -c | sort -nr
Эта команда подсчитывает и сортирует наиболее частые сообщения об ошибках.
6/ Выполните поиск в нескольких файлах журнала одновременно:
grep "error" /var/log/syslog /var/log/nginx/error.log
Эта команда ищет "error" в журналах ошибок syslog и Nginx.
7/ Извлеките определенные поля из записей журнала:
awk '{print $4, $6}' /var/log/nginx/access.log
Эта команда извлекает и выводит определенные поля из записей журнала доступа Nginx.
8/ Поиск IP-адресов:
grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" /var/log/nginx/access.log
Эта команда извлекает IP-адреса из записей журнала доступа Nginx.
9/ Определите основные шаблоны доступа:
awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr
Эта команда определяет наиболее часто используемые URL-адреса в журналах доступа Nginx.
10/ Поиск определенных кодов состояния HTTP:
grep "404" /var/log/nginx/access.log
Эта команда ищет ошибки HTTP 404 в журналах доступа Nginx.
11/ Определите основных потребителей трафика:
awk '{print $10, $7}' /var/log/nginx/access.log | sort -rh | head
Эта команда определяет URL-адреса с наибольшим потреблением трафика в журналах доступа Nginx.
12/ Фильтруйте журналы по IP-адресу источника:
grep "192.168.1.100" /var/log/auth.log
Эта команда фильтрует журналы аутентификации по определенному IP-адресу.
13/ Поиск неудачных попыток входа в систему:
grep "Failed password" /var/log/auth.log
Эта команда ищет неудачные попытки входа в систему SSH в журналах auth.
14/ Проверьте время запуска и выключения системы:
grep "systemd" /var/log/syslog | grep "Starting" | grep "Stopping"
Эта команда извлекает события запуска и выключения системы из syslog.
15/ Найдите процессы, потребляющие большое количество CPU:
grep "CPU" /var/log/syslog
Эта команда помогает выявить процессы, вызывающие повышенное потребление ЦП, в системных журналах.
👉 @i_odmin
13:38 22-01-2026
Руководство по настройке и использованию rsync
rsync это мощный инструмент для копирования и синхронизации данных на Linux, который особенно полезен для резервного копирования. Его отличительная черта, передача только изменённых частей файлов, что делает процесс очень быстрым.
🟢 Основные команды rsync
1. Базовая синхронизация:
rsync -av /источник/ /назначение/- -a (archive): сохраняет структуру каталогов, атрибуты файлов и символьные ссылки.
- -v (verbose): выводит информацию о копируемых файлах.
| Флаг | Описание
|-------------------------------------------------------------------------------------------|
| --progress | Отображает статус копирования.
| --dry-run | Симулирует выполнение команды без фактического копирования.
| --exclude | Исключает определённые файлы или папки.
| --delete | Удаляет файлы в папке назначения, которые отсутствуют в источнике.
| --bwlimit=KBytes | Ограничивает скорость передачи данных.
Преимуществ rsync
- Эффективное использование сетевых и дисковых ресурсов.
- Гибкость благодаря множеству настроек.
- Совместимость с SSH для безопасной передачи данных.
👉 @i_odmin
10:37 21-01-2026
Stress – это инструмент командной строки Linux, который позволяет нагружать процессор, память, систему ввода-вывода и диск
Установим stress на CentOS, RHEL, Fedora
sudo dnf install stress
Установим stress на Ubuntu и Debian
sudo apt install stress
Синтаксис stress
stress [OPTION [ARG]]
Увеличить нагрузку на процессор
Опция -c или –cpu использует заданное количество воркеров на функции sqrt(), чтобы увеличить нагрузку на процессор и заставить его работать интенсивнее.
stress -c N или stress --cpu N
Следующая команда будет непрерывно загружать 4 ядра процессора
stress --cpu 4
Задаем тайм-аут для стресса
Чтобы задать работу на определенное время, вы можете использовать опцию -t или –timeout.
Следующие команды будут нагружать четыре ядра процессора только в течение 10 с.
stress -c 4 -t 10 или stress --cpu 4 --timeout 10
Увеличение нагрузки на память
Опция -v или --vm позволяет вам нагрузить виртуальную память.
[simterm] $ stress -v N
Увеличение нагрузки ввода-вывода на диск
Вы можете увеличить нагрузку ввода-вывода с помощью опции -i или –io.
stress -i N или stress --io N
Создаем нагрузка на систему с помощью двух процессов, связанных с вводом-выводом.
# stress --io 100
Мы проверим загрузку IO диска с помощью команды iostat.
У меня на сервере доступны диски /dev/vda и /dev/vdb, вы можете проверить активный диск с помощью lsblk или fdisk или любой другой команды.
Если вы выполните эту команду без каких-либо аргументов, то она покажет дисковые IO для всех доступных дисков.
iostat -d /dev/vda -d /dev/vdb 1
Увеличение нагрузки на диск
Опция -d или –hdd используется для создания нагрузки на диск.
stress -d N или stress --hdd N
Для увеличения нагрузки на диск мы используем следующую команду
stress --hdd 100
Посмотрим пропускную способность диска с помощью команды vmstat
vmstat 1 100
Увеличение нагрузки на несколько системных ресурсов (ЦП, память, ввод/вывод)
Команде stress можно задать несколько нагрузок.
В следующем примере используется 4 ядра ЦП, 2 виртуальных памяти и 1 процесс ввода-вывода для нагрузки на систему в течение 20 секунд.
stress --cpu 4 --vm 2 --io 1 -t 20
👉 @i_odmin
09:57 20-01-2026
Протокол ICMP, утилита traceroute
Утилита traceroute (в Windows tracert) используется для определения маршрута от отправителя к получателю. Утилита выдает перечень всех маршрутизаторов, через которые необходимо пройти.
Для определения IP-адресов маршрутизаторов, traceroute использует протокол ICMP. На первом этапе отправляется эхо-запрос (ICMP-пакет с кодом 8, типом 0) со временем жизни 1. Первый маршрутизатор уменьшает время жизни до 0, отбрасывает пакет и передает отправителю сообщение об истечении времени жизни пакета (ICMP-пакет с кодом 11, типом 0). traceroute получает ICMP-пакет, анализирует IP-заголовок и извлекает из него IP-адрес отправителя. Это и есть адрес первого маршрутизатора.
Затем отправляется эхо-запрос со временем жизни 2, он доходит до второго маршрутизатора. Второй маршрутизатор отбрасывает пакет и также передает сообщение, что время жизни пакета истекло. traceroute извлекает из сообщения IP-адрес второго маршрутизатора. После этого traceroute передает эхо-запрос со временем жизни 3, 4, 5 и т.д., пока запрос не дойдет до получателя.
источник
👉 @i_odmin
09:56 19-01-2026
⚡️ Гайд по Kubernetes для скептиков
Считаете, что Kubernetes переоценен и слишком сложен? Возможно, вам просто не так его объясняли.
Интересная статья, которая разбирает K8s именно с позиции «хейтера». Автор проходит по основным болям внедрения и объясняет архитектуру «на пальцах», минуя сложную терминологию там, где это возможно.
Кому будет полезно:
🔵 Тем, кто до сих пор избегает K8s.
🔵 Тем, кто хочет структурировать знания.
🔵 Тем, кто ищет аргументы «За» и «Против» для внедрения.
🔗 Ссылка на статью: https://i-odmin.ru/gajd-po-kuberu-dlja-hejterov/
#DevOps #K8s #Education #Admin
👉 @i_odmin
20:28 15-01-2026
Что из перечисленного будет разослано на все порты после получения коммутатором?
Cisco CCNA 200-301
Краткий ответ:
Кадр от ВВ (неизвестный) к АА (известный) будет разослан всем.
#cisco #ccna #ccna200301 #vlan
👉 @i_odmin
11:42 15-01-2026
Основы компьютерных сетей
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
🟢 MB/s ≠ Mb/s. Разница в 8 раз! 1 Мегабайт/с = 8 Мегабит/с. Чтобы не вводить людей в заблуждение, для скорости лучше использовать Mbit/s.
🟢 Английская «b» vs «B». В международной практике «b» - это bit, а «B» - это Byte.
🟢 Сокращения. ГОСТ рекомендует писать «бит» полностью, но в IT-среде устоялись сокращения. Если видите Гб/с - это, как правило, гигабиты. Если ГБ/с - гигабайты.
👉 @i_odmin
09:36 14-01-2026
Какой из указанных ниже состояний OSPF является правильным для красной ссылки?
Cisco CCNA 200-301
Краткий ответ:
Состояние 2-Way будет правильным, так как красная ссылка соединяет два маршру-тизатора DROTHER, которые устанавливают только двустороннее соседство, но не обмениваются базами данных состояния каналов.
#cisco #ccna #ccna200301 #vlan
👉 @i_odmin
16:14 12-01-2026
💾 nvme-cli: Полный контроль над вашими SSD в Linux
Если вы работаете с современными серверами или высокопроизводительными рабочими станциями, утилита nvme-cli это маст-хэв. Это официальный инструмент для управления накопителями NVM Express (NVMe) напрямую из командной строки, без использования громоздкого проприетарного софта от вендоров.
В отличие от классического hdparm или smartctl, которые пришли из эпохи HDD/SATA, nvme-cli заточен под специфику протокола NVMe.
Что умеет:
🛠 Мониторинг здоровья: Детальный вывод SMART-логов, температура, ошибки, ресурс записи (TBW).
⚡ Управление пространствами: Создание, удаление и аттач Namespaces (разделение одного физического диска на логические).
🔒 Безопасная очистка: Выполнение команд Sanitize и Secure Erase (критично для compliance).
📦 Обновление прошивки: Заливка новой firmware без перезагрузки сервера (если поддерживается железом).