Системный администратор
Все для системного администратора. По всем вопросам @evgenycarter РКН clck.ru/3KoDXp
Ko'proq ko'rsatish📈 Telegram kanali Системный администратор analitikasi
Системный администратор (@i_odmin) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 26 631 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 4 990-o'rinni va Rossiya mintaqasida 24 562-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 26 631 obunachiga ega bo‘ldi.
25 Iyul, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 6 ga, so‘nggi 24 soatda esa -5 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 10.43% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 6.00% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 2 778 marta ko‘riladi; birinchi sutkada odatda 1 598 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 11 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent linux, grep, диск, строка, /var kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Все для системного администратора.
По всем вопросам @evgenycarter
РКН clck.ru/3KoDXp”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 26 Iyul, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
Ma'lumot yuklanmoqda...
| Sana | Obunachilarni jalb qilish | Esdaliklar | Kanallar | |
| 26 Iyul | +6 | |||
| 25 Iyul | +5 | |||
| 24 Iyul | +8 | |||
| 23 Iyul | +9 | |||
| 22 Iyul | +15 | |||
| 21 Iyul | +6 | |||
| 20 Iyul | +2 | |||
| 19 Iyul | +9 | |||
| 18 Iyul | +6 | |||
| 17 Iyul | +7 | |||
| 16 Iyul | +5 | |||
| 15 Iyul | +5 | |||
| 14 Iyul | +6 | |||
| 13 Iyul | +3 | |||
| 12 Iyul | +5 | |||
| 11 Iyul | +5 | |||
| 10 Iyul | +9 | |||
| 09 Iyul | +6 | |||
| 08 Iyul | +4 | |||
| 07 Iyul | +6 | |||
| 06 Iyul | +5 | |||
| 05 Iyul | +5 | |||
| 04 Iyul | +8 | |||
| 03 Iyul | +6 | |||
| 02 Iyul | +7 | |||
| 01 Iyul | +10 |
.pem, .crt, .cer, .key)
Самый распространённый формат.
✅ Кодировка: Base64 (текстовый вид)
Используется в:
* Nginx
* Apache
* HAProxy
* OpenSSL
* Let's Encrypt
* Linux-системах
Внутри может содержать:
* сертификат;
* приватный ключ;
* цепочку сертификатов (CA).
📦 PKCS#7 (.p7b, .p7c)
Формат для хранения цепочки сертификатов.
Особенности:
* не содержит приватный ключ;
* используется в Windows и Java;
* удобен для передачи промежуточных сертификатов.
📗 DER (.der, .cer)
Двоичный вариант сертификата.
✅ Кодировка: Binary
Используется:
* Java
* некоторые сетевые устройства
* отдельные API и встроенные системы
Если нужен текстовый вид - легко конвертируется в PEM через OpenSSL.
🔑 PKCS#12 (.pfx, .p12)
Формат "всё в одном".
Содержит:
* сертификат;
* приватный ключ;
* цепочку CA.
Обычно защищается паролем.
Используется:
* Microsoft IIS
* Windows Certificate Store
* Azure
* импорт в браузеры
* VPN и корпоративные приложения
⚡ Самые полезные команды OpenSSL
# DER → PEM
openssl x509 -inform der -in cert.der -out cert.pem
# PEM → DER
openssl x509 -outform der -in cert.pem -out cert.der
# Создать PFX
openssl pkcs12 -export \
-out cert.pfx \
-inkey private.key \
-in certificate.crt
# Посмотреть содержимое сертификата
openssl x509 -in cert.pem -text -noout
# Проверить срок действия
openssl x509 -enddate -noout -in cert.pem
💡 Запомнить проще всего:
* PEM - стандарт де-факто в Linux.
* DER - бинарная версия PEM.
* PFX/P12 - сертификат + приватный ключ + цепочка в одном файле.
* P7B - только сертификаты, без приватного ключа.
#SSL #TLS #OpenSSL #Linux #Nginx #Apache #SysAdmin #DevOps #PKI #Security #LetsEncrypt
📲 Мы в MAX
👉 @i_odmin| 2 | 🚀 Подборка полезных 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 и др.
https://max.ru/tipsysdmin Типичный Сисадмин
https://max.ru/channel_win_sysadmin Системный Администратор Windows
https://max.ru/channel_linux_admin Linux: Системный администратор
https://max.ru/channel_linuxmod Linux
https://max.ru/channel_i_linux Системный администратор
https://max.ru/channel_devopslib DevOps, SRE, Sysadmin
https://max.ru/channel_devops_star DevOps Star (Звезда Девопса)
Excel лайфхак 📌
https://t.me/Excel_lifehack Excel лайфхак
Английский с нуля 🇬🇧
https://max.ru/UchuEnglish
1C разработка 📌
https://max.ru/odin1c_rus Cтатьи, курсы, советы, шаблоны кода 1С
https://max.ru/channel_DevLab1C 1С:Предприятие 8
Программирование C++📌
https://max.ru/cpp_lib Библиотека C/C++ разработчика
https://max.ru/channel_cpp_geek C++ geek
Программирование Go📌
https://max.ru/golang_lib Библиотека Go (Golang) разработчика
Программирование React📌
https://max.ru/react_lib React
Программирование Rust📌
https://max.ru/channel_rust_lib
Программирование Python 📌
https://max.ru/python_of Python академия.
https://max.ru/BookPython Библиотека Python разработчика
Java разработка 📌
https://max.ru/bookjava Библиотека Java разработчика
https://max.ru/channel_java_geek Java Geek
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 программиста 👨🏼💻👩💻
Шутки программистов 📌
https://max.ru/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://max.ru/thehaking Канал о кибербезопасности
https://max.ru/xakkep_1 Хакер Free
Книги, статьи для дизайнеров 📌
https://max.ru/odesigners Статьи, книги для дизайнеров
Математика 📌
https://max.ru/Pomatematike Канал по математике
https://max.ru/phismat_1 Обучающие видео, книги по Физике и Математике
Вакансии в IT📌
https://max.ru/progjob
https://max.ru/channel_rabotait
Мир технологий 📌
https://max.ru/mir_teh Канал для любознательных
Бонус 📌
https://max.ru/piterspb_78 Свежие новости Санкт-Петербурга
https://max.ru/mockva_life Свежие новости Москвы
https://max.ru/piterspb Питер Новости: Санкт-Петербург / СПБ / ДТП | 1 282 |
| 3 | SDN в Proxmox — мощный инструмент для управления сетями. Как работают виртуальные сети и зоны
Функция Software-Defined Network (SDN) в Proxmox VE позволяет создавать виртуальные зоны и сети (VNet), упрощая настройку сложной сетевой инфраструктуры и многопользовательской изоляции.
00:00 | Intro
00:34 | Обзор меню настроек SDN
02:00 | Proxmox 9 - SDN Fabrics
02:59 | Стандартные сетевые настройки в Proxmox
03:52 | Основы работы Software-Defined Network
04:51 | Для чего SDN? Когда использовать и где применять?
06:20 | Установка SDN в Proxmox
07:47 | SDN: как работает Simple Zone? Обзор
08:16 | SNAT, Routing в SDN
09:48 | Jump-Bastion Host. Когда применяется?
10:56 | SDN Simple Zone. Создание и настройка.
13:58 | Тест работы SDN Simple Zone
18:02 | IPAM а SDN. Что это?
18:37 | SDN - VLAN Zone. Что это и как работает.
20:41 | SDN - VLAN. Создание, настройка и тест.
24:37 | SDN - QinQ Zone. Обзор. Как работает.
27:10 | QinQ - практическое применение.
29:10 | Параметры настроек в QinQ SDN
30:59 | SDN - VXLAN Zone. Что это и как работает.
33:47 | Коротко о EVPN Zone.
34:35 | VXLAN - создание и настройка. Тест
источник
📲 Мы в MAX
👉 @i_odmin | 1 496 |
| 4 | 🖥 Мини-NAS на NanoPi M4 (статья на Eng)
Автор собрал домашний NAS на базе NanoPi M4 с минимальными затратами и при этом сохранил функциональность. В статье пошагово описывается:
- выбор железа и корпуса;
- подключение SATA-адаптера для HDD;
- настройка Armbian;
- использование OpenMediaVault для управления;
- оптимизация питания и охлаждения.
По сути, это недорогая альтернатива готовым NAS-решениям, где можно получить контроль и гибкость за счёт DIY-подхода. Отличный вариант для тех, кто хочет поднять личное хранилище на SBC и при этом разобраться в деталях настройки.
https://cgomesu.com/blog/Nanopi-m4-mini-nas/
📲 Мы в MAX
👉 @i_odmin | 2 062 |
| 5 | 👩💻Трюки Vim. Изменение регистра при замене
\U - если используется в схеме замены, то все, что после него, пишется в верхнем регистре
\L - строчные символы после него
\u - прописные буквы в первом символе того, что следует за ним
\l - опускает первый символ следующего за ним символа
\e или \E - останавливает прописные или строчные буквы
Как мы можем их использовать?
Например, мы можем найти все адреса электронной почты и перевести их в нижний регистр:
:%s/\S\+@\S\+/\L&/
Ключевая часть здесь - \L перед &. Это означает, что в дальнейшем мы будем писать все в нижнем регистре.
Вот еще один вариант. Допустим, мы хотим сделать часть адреса электронной почты, содержащую имя, строчной, но оставить регистр имени компании нетронутым. Таким образом, FirstLast@Company.com станет firstlast@Company.com. В этом случае нам нужно использовать \e (или \E), чтобы завершить манипуляции с регистром символов на полпути к шаблону замены. Окончательная замена будет выглядеть следующим образом:
:%s/\(\S\+\)\(@\S\+\)/\L\1\e\2/g
Важным моментом здесь является подстановка. Мы используем \L, чтобы начать строчное написание, затем \1 для первого захвата (например, FirstLast), затем \e, чтобы закончить строчное написание, а затем \2 для второго захвата (например, @Company.com). В результате первая часть электронного адреса будет выделена нижним регистром, а все остальное останется неизменным.
📲 Мы в MAX
👉 @i_odmin | 2 091 |
| 6 | Базовый минимум: сохранить данные в резервной копии.
Роскошный максимум: в один клик продолжить работу критичных сервисов после сбоя.
Selectel и Хайстекс Акура создали готовый сервис аварийного восстановления (DRaaS), который обеспечивает запуск копий систем в облаке. Это полезно в случае поломок, кибератак и аварий.
На практическом вебинаре покажут:
• что нужно учесть при проектировании резервной площадки, настройке репликаций, сетей и порядка запуска сервисов.
• как организовать резервный контур в другом регионе в облаке Selectel;
• и подтвердить реальную готовность аварийного восстановления тестами.
📍 Онлайн
⏰ 30 июля в 12:00
Регистрируйтесь на странице вебинара ➡️ https://slc.tl/c11yg
Больше мероприятий для ИТ-специалистов в канале @selectel_events. Подписывайтесь!
Реклама. АО "Селектел". erid:2W5zFGs1vY9 | 2 007 |
| 7 | Пример Bash-скрипта, который выполняет следующие задачи
1. Проверяет доступность важного веб-сервера.
2. Проверяет использование дискового пространства.
3. Делает бэкап указанных директорий.
4. Отправляет отчет на электронную почту администратора.
Пример скрипта:
#!/bin/bash
# Установки
WEB_SERVER="https://example.com"
BACKUP_DIR="/backup"
TARGET_DIRS="/var/www /etc"
DISK_USAGE_THRESHOLD=90
ADMIN_EMAIL="admin@example.com"
DATE=$(date +"%Y-%m-%d")
BACKUP_FILE="$BACKUP_DIR/backup-$DATE.tar.gz"
# Проверка доступности веб-сервера
echo "Проверка доступности веб-сервера..."
if curl -s --head $WEB_SERVER | grep "200 OK" > /dev/null; then
echo "Веб-сервер доступен."
else
echo "Внимание: Веб-сервер недоступен!" | mail -s "Проблема с веб-сервером" $ADMIN_EMAIL
fi
# Проверка дискового пространства
echo "Проверка дискового пространства..."
DISK_USAGE=$(df / | grep / | awk '{ print $5 }' | sed 's/%//g')
if [ $DISK_USAGE -gt $DISK_USAGE_THRESHOLD ]; then
echo "Внимание: Использование дискового пространства превысило $DISK_USAGE_THRESHOLD%!" | mail -s "Проблема с дисковым пространством" $ADMIN_EMAIL
else
echo "Дискового пространства достаточно."
fi
# Создание бэкапа
echo "Создание бэкапа..."
tar -czf $BACKUP_FILE $TARGET_DIRS
if [ $? -eq 0 ]; then
echo "Бэкап успешно создан: $BACKUP_FILE"
else
echo "Ошибка создания бэкапа!" | mail -s "Ошибка создания бэкапа" $ADMIN_EMAIL
fi
# Отправка отчета
echo "Отправка отчета на $ADMIN_EMAIL..."
REPORT="Отчет за $DATE\n\n"
REPORT+="Статус веб-сервера: $(curl -s --head $WEB_SERVER | head -n 1)\n"
REPORT+="Использование дискового пространства: $DISK_USAGE%\n"
REPORT+="Расположение бэкапа: $BACKUP_FILE\n"
echo -e $REPORT | mail -s "Ежедневный отчет системы" $ADMIN_EMAIL
echo "Готово."
Описание:
1. Проверка веб-сервера: Используется команда curl, чтобы проверить, доступен ли сайт.
2. Проверка дискового пространства: С помощью df и awk проверяется использование диска. Если превышен порог (90%), отправляется уведомление.
3. Создание бэкапа: Команда tar архивирует и сжимает директории, которые указаны в переменной TARGET_DIRS.
4. Отправка отчета: Отчет по всем операциям отправляется на почту администратора с помощью mail.
Как использовать:
1. Задайте нужные параметры, такие как адрес веб-сервера, директории для бэкапа, порог использования диска и email.
2. Сделайте скрипт исполняемым:
chmod +x /path/to/your/script.sh
3. Добавьте скрипт в cron для выполнения на регулярной основе:
crontab -e
Пример для выполнения каждый день в 00:00:
0 0 * * * /path/to/your/script.sh
📲 Мы в MAX
👉 @i_odmin | 1 586 |
| 8 | Настройка Linux
Настраиваем iptables с нуля
Управление репозиториями в операционной системе Ubuntu
IPTables: NAT и Port forwarding
Удобная конфигурация SSH-клиента в Linux (Ubuntu)
Percona Server for MySQL: запуск в Docker
Установка российских корневых сертификатов в Ubuntu
источник
📲 Мы в MAX
👉 @i_odmin | 2 361 |
| 9 | Docker в Mikrotik
С выходом MikroTik RouterOS версии 7 появилась поддержка контейнеров (Docker), что позволяет запускать сторонние приложения прямо на маршрутизаторе. Это открывает новые возможности как для домашних пользователей, так и для малого бизнеса.
На вебинаре подробно рассмотрим:
- Обзор Docker в MikroTik RouterOS 7:назначение нового контейнерного пакета, возможности его применения и принцип работы в рамках маршрутизатора.
- Типовые сценарии использования:как Docker помогает реализовать функции блокировки рекламы, хранилища данных и медиа-серверов в домашних условиях, а также расширяет возможности.
- Настройка Docker-контейнеров в MikroTik: пошаговая демонстрация работы с интерфейсом RouterOS для запуска и конфигурации контейнеров, установка образов, настройка сети.
- Совместимость и ограничения: технические особенности внедрения Docker на MikroTik, стабильность работы, аппаратные и программные требования.
- Практика развертывания сервисов: примеры установки и настройки полезных приложений внутри MikroTik, включая Asterisk и другие сетевые инструменты.
- Оценка применимости Docker в MikroTik: риски и рекомендации — когда стоит использовать контейнеры, а когда лучше воздержаться, особенности эксплуатации в домашних и производственных средах.
источник
📲 Мы в MAX
👉 @i_odmin | 2 173 |
| 10 | CMR, SMR жестких дисков HDD
Визуальные различия SMR и CMR Seagate
SMR 2.5 для ноутбуков
SMR и CMR Toshiba
Команда TRIM на жестких дисках
Жесткие диски HGST / Western Digital CMR часть 1
Жесткие диски Western Digital SMR/CMR. Часть 2
источник
📲 Мы в MAX
👉 @i_odmin | 2 379 |
| 11 | Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальны
– Ваш терминал и ваше интернет соединение – это файл!
– Да что вы такое говорите?
– Скажите ещё, что и мышка в моей руке или жёсткий диск – это тоже файл.
– Абсолютно верно!
На самом деле, с точки зрения Linux – это так.
В этой статье мы докажем это на практике и разберём один из самых неочевидных, но в то же время красивых механизмов UNIX-подобных систем, благодаря которому Linux прошёл проверку временем и стал одной из самых популярных операционных систем в мире.
https://habr.com/ru/companies/timeweb/articles/944454/
📲 Мы в MAX
👉 @i_odmin | 2 461 |
| 12 | 🎥 Вебинар: Выбор между Serverless и Kubernetes для AI-ворклоадов: как определить оптимальную платформу под задачу
На открытом уроке рассмотрим:
- В чем различаются Serverless-подходы и Kubernetes при работе с AI-ворклоадами;
- Какие преимущества и ограничения есть у каждого подхода с точки зрения масштабируемости, стоимости и сложности эксплуатации;
- Какие трейдоффы нужно учитывать при выборе платформы: холодный старт, управление состоянием, поддержка GPU;
- Как обосновывать выбор архитектуры для разных AI-сценариев на практическом воркшопе.
После занятия вы будете знать:
- Как сравнивать Serverless и Kubernetes для различных AI-задач;
- Как выбирать платформу оркестрации в зависимости от требований к нагрузке, бюджету и архитектуре решения;
- Как учитывать ключевые технические ограничения при проектировании AI-инфраструктуры;
- Как аргументированно обосновывать выбор платформы для задач масштабирования, потоковой обработки данных и построения гибридных сред.
⚠ Открытый урок проходит в преддверии старта курса «ИИ-архитектор».
👉Для участия зарегистрируйтесь: https://vk.cc/cZJGwS
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 2 262 |
| 13 | Как я автоматизировал очистку Temp на всех ПК в домене
Иногда кажется, что папка %TEMP% - это черная дыра. Пользователи жалуются на тормоза, места на диске мало, а ты заходишь туда - и видишь архивы обновлений, временные файлы Office, кэш инсталляторов и прочий мусор за последние сто лет.
Руками чистить на каждом ПК? Нет уж. Я сделал это через PowerShell и GPO.
Решение:
Скрипт для очистки временных файлов запускается через планировщик задач от имени SYSTEM, раз в неделю. Вот пример скрипта:
$TempPath = "$env:TEMP"
Get-ChildItem -Path $TempPath -Recurse -Force -ErrorAction SilentlyContinue |
Where-Object { -not $_.PSIsContainer -and $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force -ErrorAction SilentlyContinue
Чтобы запускался на всех компах в домене:
1. Создал GPO с task scheduler (Computer Configuration -> Preferences -> Control Panel Settings -> Scheduled Tasks)
2. Указал Action: Create, Run as: SYSTEM, триггер раз в неделю.
3. В Program/script указал powershell.exe, а в аргументах:
-ExecutionPolicy Bypass -File \\ваш-сервер\netlogon\clean_temp.ps1
Важно:
– Скрипт не трогает свежие файлы (новее 7 дней)
– Работает бесшумно, ничего не спрашивает
– Можно дополнительно чистить C:\Windows\Temp, если уверены
Вывод: Не запускайте такую штуку в logon-скриптах - это затормозит вход в систему. Лучше использовать планировщик задач. И, конечно, тестируйте сначала на паре машин — на всякий случай.
👉 @win_sysadmin | 1 876 |
| 14 | Разжёванный курс по Linux для чайников. Часть 2
0:10 Введение. Ответы на вопросы.
6:00 Негативный поиск(echo, grep, регулярки)
24:36 Код возврата приложений
31:42 Логическое И, ИЛИ
38:38 Цикл FOR (Однострочная конструкция)
53:07 Перекур
1:05:16 Понятие скрипта. Скрипт файл.
1:15:09 Переменные окружения (SPATH)
1:30:16 Команда hash
1:42:56 /dev/null
1:48:28 Планировщик задач (Сron)
2:09:34 дом зад
2:16:01 вводный урок. Веб-сервисы.
3:17:03 Реш дом зад(логи регулярки)
4:32:27 Разбор дом зад и непонятных вопросов.
4:39:23 Настройка выделенного сервера
7:03:27 SOA и введение в Docker
📲 Мы в MAX
👉 @i_odmin | 1 993 |
| 15 | После атаки в системе всегда остаются следы. Вопрос в том, умеет ли их кто-то прочитать.
Довольно сложно понять, что именно произошло, когда, через что зашли злоумышленники и какие данные могли быть затронуты. Особенно если инфраструктура на Linux — здесь многое устроено иначе, чем в Windows, и без отдельной экспертизы расследование часто застревает на уровне догадок.
В Codeby Academy есть практический онлайн-курс «Цифровая криминалистика и реагирование на инциденты в Linux (DFIR)»🚗
За 3,5 месяца вы научитесь проходить полный цикл расследования: от первых признаков компрометации до восстановленной картины атаки.
Что внутри:
⏺️ реальные кейсы на основе расследований КИ 2023–2024
⏺️ сбор и анализ артефактов: логи, процессы, файловая система, сетевая активность
⏺️ работа с open-source инструментами DFIR
⏺️ практика в учебной лаборатории + разбор домашних заданий с преподавателем
⏺️ удостоверение о повышении квалификации после экзамена
Ближайший старт — 27 июля.
Скидка 30% при оплате сразу. Доступна также поэтапная оплата 6 520 ₽/мес
➡️Записаться и посмотреть программу
🪧Бесплатная консультация @CodebyAcademyBot | 2 087 |
| 16 | Разжёванный курс по Linux для чайников. Часть 1
0:10 Знакомство с Линух (теория)
2:17:17 Командная оболочка (pwd, ls, touch, date, rm, mkdir, rmdir)
2:56:51 stdout и stderr (перенаправление в файл)
2:59:23 связь с космосом (зависла трансляция)
3:11:52 конец связи с космосом(продолжение)
3:37:33 Команды (cр, mv, head, tail, wc, less, grep, cat, маски)
5:03:00 режим питания нарушать нельзя(обед)
5:12:05 продолжение
5:39:11 права пользователей (chmod, inode и т. д.)
6:35:02 SUD (sudo, passwd, stat)
7:27:42 перекур
7:39:17 Регулярные выражения
📲 Мы в MAX
👉 @i_odmin | 2 274 |
| 17 | 🎯 Шпаргалка по регулярным выражениям (RegEx)
Полезно для всех, кто работает с текстом, логами, парсингом или просто хочет стать гуру поиска 🔍
🔤 Символы для сопоставления
. — любой символ, кроме перевода строки
\w — буква, цифра или подчёркивание
\W — любой символ, кроме \w
\d — цифра (0–9)
\D — любой символ, кроме цифры
\s — пробельный символ
\S — любой непробельный символ
⚓ Якоря (позиции в строке)
^ — начало строки
$ — конец строки
\b — граница слова
\B — не граница слова
➕ Квантификаторы (повторы)
* — 0 или более раз
+ — 1 или более раз
? — 0 или 1 раз
{n} — ровно n раз
{n,} — от n раз
{n,m} — от n до m раз
🧩 Классы символов
[abc] — один из: a, b или c
[^abc] — любой, кроме: a, b или c
[a-z] — символ от a до z
[0-9] — цифра от 0 до 9
🌀 Группировка и выбор
(...) — захватывающая группа
(?:...) — НЕзахватывающая группа
| — логическое ИЛИ (или то, или это)
🛡 Экранирование
\ — экранирует спецсимвол (например, \. — точка)
🧪 Примеры
\d{3}-\d{2}-\d{4} — формат SSN: 123-45-6789
\w+@\w+\.\w+ — email-адрес
📌 Сохрани, чтобы не потерять!
📲 Мы в MAX
👉 @i_odmin | 2 025 |
| 18 | 📈Скрипт показывает, какие каталоги выросли с прошлого запуска
Скрипт ниже делает снимок размеров каталогов (через du), а при следующем запуске покажет топ приростов - кто вырос и на сколько.
#!/usr/bin/env bash
# автор: https://t.me/i_odmin
set -Eeuo pipefail
usage() {
cat <<'HELP'
Usage: du-delta.sh [-p PATH] [-d DEPTH] [-n TOP] [-t THRESH] [-s STATE_DIR]
-p PATH Корень анализа (по умолчанию /)
-d DEPTH Глубина du (по умолчанию 2)
-n TOP Сколько строк показать (по умолчанию 15)
-t THRESH Порог роста (например 100M, 1G; по умолчанию 100M)
-s STATE_DIR Директория состояния (по умолчанию /var/lib/du-delta)
-h Помощь
Прим.: требуются права на чтение анализируемых каталогов.
HELP
}
PATH_TO="/"
DEPTH=2
TOP=15
THRESH="100M"
STATE_DIR="/var/lib/du-delta"
while getopts ":p:d:n:t:s:h" opt; do
case "$opt" in
p) PATH_TO="$OPTARG" ;;
d) DEPTH="$OPTARG" ;;
n) TOP="$OPTARG" ;;
t) THRESH="$OPTARG" ;;
s) STATE_DIR="$OPTARG" ;;
h) usage; exit 0 ;;
\?) echo "Неизвестный параметр: -$OPTARG" >&2; usage; exit 1 ;;
🙂 echo "Параметру -$OPTARG нужно значение" >&2; exit 1 ;;
esac
done
to_bytes() {
local v="$1"
if command -v numfmt >/dev/null 2>&1; then
numfmt --from=iec "$v"
else
awk -v s="$v" 'BEGIN{
n=s; sub(/[KkMmGgTtPp][Bb]?$/,"",n);
u=""; if (match(s,/[KkMmGgTtPp]/)) u=substr(s,RSTART,1);
m=1; if(u=="K"||u=="k") m=1024;
else if(u=="M"||u=="m") m=1024^2;
else if(u=="G"||u=="g") m=1024^3;
else if(u=="T"||u=="t") m=1024^4;
else if(u=="P"||u=="p") m=1024^5;
printf "%d", n*m
}'
fi
}
human() {
local b="$1"
if command -v numfmt >/dev/null 2>&1; then
numfmt --to=iec --suffix=B "$b"
else
awk -v b="$b" 'function h(x, a,i){
split("B KiB MiB GiB TiB PiB",a," ");
for(i=1; x>=1024 && i<6; i++) x/=1024;
return sprintf("%.1f %s", x, a[i])
} BEGIN{print h(b)}'
fi
}
# Определяем совместимый ключ глубины для du
if du -d 0 / >/dev/null 2>&1; then
DU_DEPTH=(-d "$DEPTH")
else
DU_DEPTH=(--max-depth="$DEPTH")
fi
mkdir -p "$STATE_DIR"
chmod 700 "$STATE_DIR"
# Имя снапшота зависит от пути и глубины
safe_name="$(echo "$PATH_TO" | sed 's|/|_|g; s|^_$|root|')_d${DEPTH}.tsv"
SNAP_FILE="$STATE_DIR/$safe_name"
tmp_cur="$(mktemp)"
trap 'rm -f "$tmp_cur"' EXIT
# Снимок текущих размеров: "path \t bytes"
# -B1: байты, -x: не вылезать на другие ФС, --apparent-size: по желанию (коммент ниже)
# Уберите --apparent-size, если хотите считать выделенные блоки, а не логический размер.
du -B1 "${DU_DEPTH[@]}" -x --apparent-size "$PATH_TO" 2>/dev/null \
| awk 'BEGIN{OFS="\t"} {sz=$1; $1=""; sub(/^[ \t]+/,""); print $0, sz}' \
| sort -k1,1 > "$tmp_cur"
# Если есть предыдущий снимок — считаем дельты
THRESH_BYTES="$(to_bytes "$THRESH")"
printf "📈 Топ %d приростов в %s (глубина %d, порог %s):\n" \
"$TOP" "$PATH_TO" "$DEPTH" "$THRESH"
if [[ -s "$SNAP_FILE" ]]; then
awk -F'\t' -v th="$THRESH_BYTES" '
NR==FNR { prev[$1]=$2; next }
{
cur=$2+0; p=(($1 in prev)?prev[$1]+0:0);
d=cur-p;
if (d>=th) { print $1 "\t" d }
}
' "$SNAP_FILE" "$tmp_cur" \
| sort -k2,2nr \
| head -n "$TOP" \
| awk -F'\t' '{printf " + %-8s %s\n", "'"$(human "$2")"'", $1}' \
|| true
else
echo " (первый запуск — снимаю базовую метрику, сравнивать не с чем)"
fi
# Обновляем снимок
mv -f "$tmp_cur" "$SNAP_FILE"
- Быстрый запуск вручную:
sudo bash du-delta.sh -p /var -d 3 -t 200M -n 20
- Повесить на cron (каждые 6 часов) и писать в syslog:
*/6 * * * * root /usr/local/sbin/du-delta.sh -p / -d 3 -t 200M -n 20 | logger -t du-delta
Хочешь логический размер файлов (как видит ls -l) - оставляй --apparent-size. Нужен именно занятый на диске объём - убери этот флаг.
💡 Начни с -d 2 для обзора верхних уровней, потом точечно спускайся глубже по «подозрительным» каталогам.
📲 Мы в MAX
👉 @i_odmin | 2 097 |
| 19 | 📌 Шпаргалка для работы с Grafana + Loki! 🔥
🚀 Grafana + Loki — мощный стек для централизованного логирования и визуализации логов. Loki собирает логи, а Grafana отображает их в удобном интерфейсе.
🔥 1. Установка и настройка
🛠 Установка Loki
📌 На сервере (Linux)
# Создаем директории
mkdir -p /etc/loki /var/lib/loki
# Загружаем последнюю версию Loki
curl -O -L "https://github.com/grafana/loki"
# Даем права на исполнение
chmod +x loki-linux-amd64
mv loki-linux-amd64 /usr/local/bin/loki
📌 Пример конфига /etc/loki/config.yaml
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
ring:
kvstore:
store: inmemory
replication_factor: 1
chunk_idle_period: 5m
chunk_retain_period: 30s
schema_config:
configs:
- from: 2023-01-01
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /var/lib/loki/index
cache_location: /var/lib/loki/cache
shared_store: filesystem
limits_config:
enforce_metric_name: false
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false
retention_period: 0s
📌 Запуск Loki
loki -config.file=/etc/loki/config.yaml
🛠 Установка Promtail (для сбора логов)
curl -O -L "https://github.com/grafana/loki"
chmod +x promtail-linux-amd64
mv promtail-linux-amd64 /usr/local/bin/promtail
📌 Пример конфига /etc/promtail/config.yaml
server:
http_listen_port: 9080
positions:
filename: /var/lib/promtail/positions.yaml
clients:
- url: http://localhost:3100/loki/api/v1/push
scrape_configs:
- job_name: system_logs
static_configs:
- targets:
- localhost
labels:
job: "varlogs"
host: "server-1"
__path__: /var/log/*.log
📌 Запуск Promtail
promtail -config.file=/etc/promtail/config.yaml
🎨 2. Настройка Grafana
📌 Установка (Debian/Ubuntu)
sudo apt-get install -y software-properties-common
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install grafana
📌 Запуск и включение в автозагрузку
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
📌 Настройка Grafana для Loki
1. Зайти в веб-интерфейс Grafana (http://<server>:3000)
2. Перейти в Configuration → Data Sources
3. Добавить источник Loki
- URL: http://localhost:3100
- Access: Server
- Save & Test
🔍 3. Запросы в Loki (LogQL)
📝 Базовый синтаксис
{job="varlogs"} | json
🔹 Фильтр по метке (job="varlogs")
🔹 Парсинг JSON
🔍 Фильтрация логов
{job="varlogs"} |= "error"
🔹 Ищет строки, содержащие "error"
{job="varlogs"} != "debug"
🔹 Исключает строки с "debug"
📊 Агрегация логов
rate({job="varlogs"}[5m])
🔹 Подсчет количества записей за последние 5 минут
count_over_time({job="varlogs"}[10m])
🔹 Количество логов за 10 минут
sum by (level) (count_over_time({job="varlogs"}[10m]))
🔹 Подсчет логов по уровням (например, error, info)
🛠 4. Управление и отладка
🚀 Перезапуск сервисов
systemctl restart loki
systemctl restart promtail
systemctl restart grafana-server
📂 Просмотр логов
journalctl -u loki -f
journalctl -u promtail -f
journalctl -u grafana-server -f
🔄 Очистка старых логов
rm -rf /var/lib/loki/*
rm -rf /var/lib/promtail/*
📡 Проверка работы Loki API
curl -s "http://localhost:3100/ready"
Ответ: ready ✅
📲 Мы в MAX
👉 @i_odmin | 2 175 |
| 20 | ⚙️ Systemd: полное руководство для системного администратора
systemd - это не просто инструмент для запуска и остановки служб. Он управляет загрузкой Linux, процессами, логами, таймерами, монтированием файловых систем и ограничением ресурсов.
В подробном руководстве разобраны:
🔹 архитектура systemd и основные компоненты
🔹 типы юнитов: service, timer, socket, mount и target
🔹 управление службами через systemctl
🔹 просмотр и фильтрация логов с помощью journalctl
🔹 поиск медленных и упавших сервисов
🔹 ограничение CPU и памяти через cgroups
🔹 создание собственного systemd-сервиса
🔹 автоматический перезапуск и защита процессов
Полезный материал как для начинающих администраторов, так и для тех, кому нужна удобная шпаргалка по systemd.
https://habr.com/ru/articles/942760/
📲 Мы в MAX
👉 @i_odmin | 2 381 |
