Системный администратор
Все для системного администратора. По всем вопросам @evgenycarter РКН clck.ru/3KoDXp
نمایش بیشتر📈 تحلیل کانال تلگرام Системный администратор
کانال Системный администратор (@i_odmin) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 26 626 مشترک است و جایگاه 4 984 را در دسته فناوری و برنامهها و رتبه 24 577 را در منطقه روسيا دارد.
📊 شاخصهای مخاطب و پویایی
از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 26 626 مشترک جذب کرده است.
بر اساس آخرین دادهها در تاریخ 22 ژوئیه, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 0 و در ۲۴ ساعت گذشته برابر 10 بوده و همچنان دسترسی گستردهای حفظ شده است.
- وضعیت تأیید: تأیید نشده
- نرخ تعامل (ER): میانگین تعامل مخاطب 10.31% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 5.92% واکنش نسبت به کل مشترکان کسب میکند.
- دسترسی پستها: هر پست به طور میانگین 2 744 بازدید دریافت میکند. در اولین روز معمولاً 1 575 بازدید جمعآوری میشود.
- واکنشها و تعامل: مخاطبان بهطور فعال حمایت میکنند؛ میانگین واکنش به هر پست 11 است.
- علایق موضوعی: محتوا بر موضوعات کلیدی مانند linux, grep, диск, строка, /var تمرکز دارد.
📝 توضیح و سیاست محتوایی
نویسنده این فضا را محل بیان دیدگاههای شخصی توصیف میکند:
“Все для системного администратора.
По всем вопросам @evgenycarter
РКН clck.ru/3KoDXp”
به لطف بهروزرسانیهای پرتکرار (آخرین داده در تاریخ 23 ژوئیه, 2026)، کانال همواره بهروز و دارای دسترسی بالاست. تحلیلها نشان میدهد مخاطبان بهطور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامهها تبدیل کردهاند.
در حال بارگیری داده...
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 23 ژوئیه | +7 | |||
| 22 ژوئیه | +15 | |||
| 21 ژوئیه | +6 | |||
| 20 ژوئیه | +2 | |||
| 19 ژوئیه | +9 | |||
| 18 ژوئیه | +6 | |||
| 17 ژوئیه | +7 | |||
| 16 ژوئیه | +5 | |||
| 15 ژوئیه | +5 | |||
| 14 ژوئیه | +6 | |||
| 13 ژوئیه | +3 | |||
| 12 ژوئیه | +5 | |||
| 11 ژوئیه | +5 | |||
| 10 ژوئیه | +9 | |||
| 09 ژوئیه | +6 | |||
| 08 ژوئیه | +4 | |||
| 07 ژوئیه | +6 | |||
| 06 ژوئیه | +5 | |||
| 05 ژوئیه | +5 | |||
| 04 ژوئیه | +8 | |||
| 03 ژوئیه | +6 | |||
| 02 ژوئیه | +7 | |||
| 01 ژوئیه | +10 |
\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 | Базовый минимум: сохранить данные в резервной копии.
Роскошный максимум: в один клик продолжить работу критичных сервисов после сбоя.
Selectel и Хайстекс Акура создали готовый сервис аварийного восстановления (DRaaS), который обеспечивает запуск копий систем в облаке. Это полезно в случае поломок, кибератак и аварий.
На практическом вебинаре покажут:
• что нужно учесть при проектировании резервной площадки, настройке репликаций, сетей и порядка запуска сервисов.
• как организовать резервный контур в другом регионе в облаке Selectel;
• и подтвердить реальную готовность аварийного восстановления тестами.
📍 Онлайн
⏰ 30 июля в 12:00
Регистрируйтесь на странице вебинара ➡️ https://slc.tl/c11yg
Больше мероприятий для ИТ-специалистов в канале @selectel_events. Подписывайтесь!
Реклама. АО "Селектел". erid:2W5zFGs1vY9 | 1 376 |
| 3 | Пример 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 067 |
| 4 | Настройка Linux
Настраиваем iptables с нуля
Управление репозиториями в операционной системе Ubuntu
IPTables: NAT и Port forwarding
Удобная конфигурация SSH-клиента в Linux (Ubuntu)
Percona Server for MySQL: запуск в Docker
Установка российских корневых сертификатов в Ubuntu
источник
📲 Мы в MAX
👉 @i_odmin | 1 663 |
| 5 | Docker в Mikrotik
С выходом MikroTik RouterOS версии 7 появилась поддержка контейнеров (Docker), что позволяет запускать сторонние приложения прямо на маршрутизаторе. Это открывает новые возможности как для домашних пользователей, так и для малого бизнеса.
На вебинаре подробно рассмотрим:
- Обзор Docker в MikroTik RouterOS 7:назначение нового контейнерного пакета, возможности его применения и принцип работы в рамках маршрутизатора.
- Типовые сценарии использования:как Docker помогает реализовать функции блокировки рекламы, хранилища данных и медиа-серверов в домашних условиях, а также расширяет возможности.
- Настройка Docker-контейнеров в MikroTik: пошаговая демонстрация работы с интерфейсом RouterOS для запуска и конфигурации контейнеров, установка образов, настройка сети.
- Совместимость и ограничения: технические особенности внедрения Docker на MikroTik, стабильность работы, аппаратные и программные требования.
- Практика развертывания сервисов: примеры установки и настройки полезных приложений внутри MikroTik, включая Asterisk и другие сетевые инструменты.
- Оценка применимости Docker в MikroTik: риски и рекомендации — когда стоит использовать контейнеры, а когда лучше воздержаться, особенности эксплуатации в домашних и производственных средах.
источник
📲 Мы в MAX
👉 @i_odmin | 1 876 |
| 6 | 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 032 |
| 7 | Почему в Linux «Всё есть файл»? Или почему гениальные абстракции UNIX настолько гениальны
– Ваш терминал и ваше интернет соединение – это файл!
– Да что вы такое говорите?
– Скажите ещё, что и мышка в моей руке или жёсткий диск – это тоже файл.
– Абсолютно верно!
На самом деле, с точки зрения Linux – это так.
В этой статье мы докажем это на практике и разберём один из самых неочевидных, но в то же время красивых механизмов UNIX-подобных систем, благодаря которому Linux прошёл проверку временем и стал одной из самых популярных операционных систем в мире.
https://habr.com/ru/companies/timeweb/articles/944454/
📲 Мы в MAX
👉 @i_odmin | 2 230 |
| 8 | 🎥 Вебинар: Выбор между Serverless и Kubernetes для AI-ворклоадов: как определить оптимальную платформу под задачу
На открытом уроке рассмотрим:
- В чем различаются Serverless-подходы и Kubernetes при работе с AI-ворклоадами;
- Какие преимущества и ограничения есть у каждого подхода с точки зрения масштабируемости, стоимости и сложности эксплуатации;
- Какие трейдоффы нужно учитывать при выборе платформы: холодный старт, управление состоянием, поддержка GPU;
- Как обосновывать выбор архитектуры для разных AI-сценариев на практическом воркшопе.
После занятия вы будете знать:
- Как сравнивать Serverless и Kubernetes для различных AI-задач;
- Как выбирать платформу оркестрации в зависимости от требований к нагрузке, бюджету и архитектуре решения;
- Как учитывать ключевые технические ограничения при проектировании AI-инфраструктуры;
- Как аргументированно обосновывать выбор платформы для задач масштабирования, потоковой обработки данных и построения гибридных сред.
⚠ Открытый урок проходит в преддверии старта курса «ИИ-архитектор».
👉Для участия зарегистрируйтесь: https://vk.cc/cZJGwS
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru | 2 086 |
| 9 | Как я автоматизировал очистку 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 755 |
| 10 | Разжёванный курс по 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 849 |
| 11 | После атаки в системе всегда остаются следы. Вопрос в том, умеет ли их кто-то прочитать.
Довольно сложно понять, что именно произошло, когда, через что зашли злоумышленники и какие данные могли быть затронуты. Особенно если инфраструктура на Linux — здесь многое устроено иначе, чем в Windows, и без отдельной экспертизы расследование часто застревает на уровне догадок.
В Codeby Academy есть практический онлайн-курс «Цифровая криминалистика и реагирование на инциденты в Linux (DFIR)»🚗
За 3,5 месяца вы научитесь проходить полный цикл расследования: от первых признаков компрометации до восстановленной картины атаки.
Что внутри:
⏺️ реальные кейсы на основе расследований КИ 2023–2024
⏺️ сбор и анализ артефактов: логи, процессы, файловая система, сетевая активность
⏺️ работа с open-source инструментами DFIR
⏺️ практика в учебной лаборатории + разбор домашних заданий с преподавателем
⏺️ удостоверение о повышении квалификации после экзамена
Ближайший старт — 27 июля.
Скидка 30% при оплате сразу. Доступна также поэтапная оплата 6 520 ₽/мес
➡️Записаться и посмотреть программу
🪧Бесплатная консультация @CodebyAcademyBot | 1 940 |
| 12 | Разжёванный курс по 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 105 |
| 13 | 🎯 Шпаргалка по регулярным выражениям (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 | 1 896 |
| 14 | 📈Скрипт показывает, какие каталоги выросли с прошлого запуска
Скрипт ниже делает снимок размеров каталогов (через 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 033 |
| 15 | 📌 Шпаргалка для работы с 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 014 |
| 16 | ⚙️ 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 266 |
| 17 | 🔥IT-tools - это коллекция удобных инструментов для разработчиков и инженеров прямо в браузере.
Репозиторий предлагает веб-приложение с большим набором утилит: генераторы, конвертеры, форматтеры, калькуляторы, инструменты для работы с JSON, JWT, UUID, регулярками, HTTP-запросами и многим другим.
Фишка проекта - всё может работать локально, без отправки данных на сервер, что делает использование максимально безопасным. Код написан на Vue 3 с использованием TypeScript и Vite, а UI построен на Tailwind CSS.
Если нужно быстро что-то закодировать, декодировать, проверить или протестировать - it-tools закрывает большинство повседневных задач. Отличная замена для кучи разрозненных сайтов-утилит.
Примеры: 👇
IPv4 subnet calculator
https://it-tools.tech/ipv4-subnet-calculator
IPv4 address converter
https://it-tools.tech/ipv4-address-converter
IPv4 range expander
https://it-tools.tech/ipv4-range-expander
MAC address lookup
https://it-tools.tech/mac-address-lookup
MAC address generator
https://it-tools.tech/mac-address-generator
RSA key pair generator
https://it-tools.tech/rsa-key-pair-generator
https://it-tools.tech/
📲 Мы в MAX
👉 @i_odmin | 3 002 |
| 18 | 🎯 Мониторинг и оптимизация дискового пространства в Linux
💾 Мониторинг использования:
• Проверить свободное место:
df -h
• Размер директории:
du -sh /путь/к/директории
• Топ-10 крупных папок:
du -ah /путь | sort -rh | head -n 10
• Найти большие файлы (>1ГБ):
find / -type f -size +1G 2>/dev/null
📂 Очистка места:
• Удалить старые логи:
find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
• Очистить кэш:
sudo apt-get clean
sudo dnf clean all
• Удалить временные файлы:
sudo rm -rf /tmp/* /var/tmp/*
• Удалить старые ядра:
sudo apt-get autoremove --purge
⚙️ Автоматизация:
• Добавить в crontab задачу для регулярной очистки логов:
0 3 * * 7 find /var/log -type f -name "*.log" -mtime +30 -exec rm -f {} \;
🔧 Оптимизация:
• Перенос крупных папок:
mv /большая/папка /mnt/новый_диск
ln -s /mnt/новый_диск /большая/папка
• Сжатие логов:
gzip /var/log/*.log
• Удаление дублированных файлов:
fdupes -r /путь
🛠️ Полезные утилиты:
• ncdu — анализ диска:
sudo apt install ncdu && ncdu /
• iotop — мониторинг операций с файлами:
iotop
• fslint — поиск мусорных файлов:
sudo apt install fslint
📊 Мониторинг в реальном времени:
• Свободное место:
df -h
• Загрузка диска процессами:
iotop
• Отслеживание изменений в директории:
inotifywait -m /путь
📲 Мы в MAX
👉 @i_odmin | 2 247 |
| 19 | Pfsense для чайников. Отличный маршрутизатор из...хлама.
В этом видео я доступно расскажу как установить и начально сконфигурировать маршрутизатор pfsense.
источник
📲 Мы в MAX
👉 @i_odmin | 2 770 |
| 20 | 💡Быстрый совет по Linux
Если нужно удалить пустые каталоги, команда find упрощает задачу:
$ find . -type d -empty -exec rmdir -v {} +
Опция -type d ищет каталоги,
-empty выбирает только пустые,
а -exec rmdir {} запускает команду rmdir для их удаления.
Команда rmdir дополнительно проверяет, что каталог пуст, перед удалением.
Альтернативный вариант для того же результата:
$ find . -type d -empty -delete
📲 Мы в MAX
👉 @i_odmin | 2 740 |
