ServerAdmin.ru
31.6K subscribers
851 photos
57 videos
23 files
3K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru

Ресурс включён в перечень Роскомнадзора
Download Telegram
🎥 Вебинар по Linux: Основы LVM: гибкое управление дисковым пространством в Linux
Разбираем на практике, как работает LVM и зачем системным администраторам нужно уметь управлять томами в Linux.

🧠 На вебинаре вы узнаете:
- Как устроена работа с дисками и разделами в Linux.
- Какие ограничения есть у классической таблицы разделов.
- Что такое LVM и какие преимущества оно даёт при управлении хранилищем.
- Как использовать LVM для гибкого распределения пространства на дисках.

💪 В результате вебинара вы:
- Разберётесь в базовых понятиях LVM: Physical Volume, Volume Group, Logical Volume.
- Поймёте, как добавлять и перераспределять дисковое пространство без простоев.
- Сможете самостоятельно создать и управлять логическими томами.
- Узнаете, как LVM помогает решать повседневные задачи Linux-администратора.

🎁 Все участники вебинара получат специальные условия на полное обучение курса "Administrator Linux. Professional"

👉 Для участия зарегистрируйтесь: https://clck.ru/3Qeww3

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👍10👎6
Я вчера рассказывал про программу, которая позволяет отправлять в Telegram отчёты о выполнении какой-то команды. Сразу возникло желание получить какой-то инструмент и для обратной связи - выполнять на сервере команду, которая вводится в чате в Telegram.

На эту тему очень много решений, как очень простых в виде небольшого python скрипта, так и более развитых проектов на github. Я попробовал и первое, и второе. Расскажу про то, что понравилось больше всего - shell2telegram.

Сразу отмечу, чем понравился:

Есть deb и rpm пакеты, а так же присутствует в репозитории snap. Сам по себе это один бинарник на go. В пакет упакован для удобства вместе с man.
Есть возможность ограничить набор доступных команд.
Для выполнения команд можно настроить авторизацию.
Есть встроенная статистика и некоторое управление в боте.

Показываю, как пользоваться:

1️⃣ Скачиваем и устанавливаем пакет:
# wget https://github.com/msoap/shell2telegram/releases/download/v1.10.0/shell2telegram_1.10.0_linux_amd64.deb
# dpkg -i shell2telegram_1.10.0_linux_amd64.deb

2️⃣ Записываем в переменную окружения токен бота:
# export TB_TOKEN=55555555:AAAAAAAAAAAAA

3️⃣ Запускаем с парой доступных команд:
# shell2telegram /topcpu:desc="Top CPU Procs" 'ps -e -o pcpu,pmem,args --sort -pcpu | head -10' \
/topmem:desc="Top MEM Procs" 'ps -e -o pcpu,pmem,args --sort -pmem | head -10'

Команда /topcpu выводит 10 лидеров среди процессов по CPU, /topmem - по памяти.

4️⃣ Идём в бота и проходим авторизацию для запуска команд от root:
/authroot
Идём в консоль сервера, видим там код для авторизации. Вводим его боту:
/authroot ZJНрhiRGB1NLbkLD5VyS
Получил сообщение:
You (Vladimir Zp (@zeroxzed)) authorized as root.

5️⃣  Вводим боту команды и смотрим вывод со списком процессов:
/topcpu
/topmem

С помощью ключей -allow-users= и -root-users= можно сразу перечислить пользователей с доступом к боту, чтобы не нужно было использовать коды:

# shell2telegram -root-users="zeroxzed" \
/topcpu:desc="Top CPU Procs" 'ps -e -o pcpu,pmem,args --sort -pcpu | head -10' \
/topmem:desc="Top MEM Procs" 'ps -e -o pcpu,pmem,args --sort -pmem | head -10'

Можно посмотреть статистику выполнения команд, отправив боту:

/shell2telegram stat

Или погасить его прямо из Telegram:

/shell2telegram exit

Все доступные команды описаны в репозитории или в man.

Можно много всего накостылить с её помощью. Я обернул в systemd, чтобы работала как служба. Для этого создал файл /etc/systemd/system/shell2telegram.service. Закинул туда:

[Unit]
Description=Shell2Telegram bot
After=network.target

[Service]
Type=simple
Environment=TB_TOKEN=55555555:AAAAAAAAAAAAAA
ExecStart=/usr/bin/shell2telegram -root-users="zeroxzed" \
  /topcpu:desc="Top CPU Procs" 'ps -e -o pcpu,pmem,args --sort -pcpu | head -10' \
  /topmem:desc="Top MEM Procs" 'ps -e -o pcpu,pmem,args --sort -pmem | head -10'

Restart=on-failure
RestartSec=5
User=root
WorkingDirectory=/root

[Install]
WantedBy=multi-user.target


И запустил:

# systemctl daemon-reload
# systemctl enable --now shell2telegram.service

Интересная и функциональная штука. Можно, например, добавлять и удалять правила файрвола. К примеру, разрешим подключаться к SSH. В консоли это выглядит так:

# iptables -A INPUT -i ens18 -s 192.168.13.5 -p tcp --dport 22 -j ACCEPT

Нам надо обернуть эту команду в Shell2Telegram. Бот принимает аргумент после команды как STDIN в консольную команду. В Iptables STDIN можно передать через простой скрипт-прокладку. Создаём исполняемый скрипт addip.sh:

#!/bin/bash
read ip
iptables -A INPUT -i ens18 -s "$ip" -p tcp --dport 22 -j ACCEPT


Запускаем:

# shell2telegram /addip:desc="Add IP to Iptables" '~/addip.sh'

Выполняем в боте:

/addip 1.2.3.4

Проверяем в консоли:

# iptables -L -v -n | grep 22
 0   0 ACCEPT   tcp -- ens18 *    1.2.3.4       0.0.0.0/0      tcp dpt:22

Так можно много всего придумать. Если у вас есть идеи, для чего это может пригодиться, делитесь.

❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

———
ServerAdmin: 📱 Telegram | 🌐 Сайт | 📲 MAX

#linux #terminal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👎6