NetworkAdmin.ru – Telegram
NetworkAdmin.ru
4.75K subscribers
226 photos
25 videos
2 files
499 links
Авторский блог про сетевое и системное администрирование.

Сайт: networkadmin.ru
Реклама: @dad_admin
Биржа: https://telega.in/c/networkadminru
Download Telegram
ℹ️ Тонкая настройка swap для производительности

Swap в linux играет роль страховочного пространства на диске для выгрузки неиспользуемых страниц памяти. Но работать с ним можно по-разному: от полного отключения до использования современных технологий сжатия. Разберем основные практики.

▪️ Проверка текущего состояния. Посмотреть активные swap-разделы и файлы можно так:


swapon --show
free -h


▪️ Полное отключение swap. Если на сервере достаточно оперативной памяти, swap часто отключают, чтобы избежать лишних задержек:


swapoff -a


Чтобы выключить swap навсегда - закомментируйте его строки в /etc/fstab.

▪️ Настройка приоритета. Если используется несколько swap-устройств (например, раздел и файл), то можно указать приоритет. Чем выше значение, тем раньше будет использоваться swap:


# swapon /swapfile --priority 100


Текущие приоритеты видно в выводе swapon --show.

▪️ Управление swappiness. Параметр vm.swappiness задает, как активно ядро будет использовать swap.

0 - максимально избегать использования swap.
60 (по умолчанию) - сбалансированный вариант.
100 - активно выгружать память в swap.

Пример настройки:


sysctl -w vm.swappiness=10


Для постоянного применения добавьте в /etc/sysctl.conf:


vm.swappiness=10


▪️ Zswap и Zram. Чтобы уменьшить нагрузку на диск и ускорить работу используют сжатие памяти:

📍 Zswap - сжатый кэш для swap в оперативке.
Активация через параметры ядра:


zswap.enabled=1


📍 Zram - сжатый блочный девайс в RAM, который можно подключить как swap. Это будет полезно на ноутбуках и в контейнерах.
Установка и включение в Debian/Ubuntu:


apt install zram-tools
systemctl enable --now zramswap.service


#linux #swap

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14
🏷 Как избежать ошибок с монтированием в Linux

Когда речь заходит о работе с внешними или сетевыми хранилищами, важно проверять, что файловая система действительно подключена и смонтирована. В Linux для этого есть две удобные утилиты - findmnt и findfs.

▪️ findmnt - контроль точек монтирования. Запуск без параметров показывает все точки монтирования. Но есть и практичный режим проверки fstab:


findmnt -x

Success, no errors or warnings detected


Если в конфигурации есть ошибка - получите подробное сообщение:


findmnt -x

/mnt/backup
[E] unreachable on boot required source: UUID=151ea24d-977a-412c-818f-0d374baa5012


Также можно проверять наличие конкретной точки монтирования:


if findmnt -rno TARGET "$1" >/dev/null; then
echo "$1 mounted."
else
echo "$1 not mounted."
fi


▪️ findfs - поиск по UUID и меткам. findfs ищет файловые системы по UUID, LABEL, PARTLABEL, PARTUUID. Пример:


findfs "UUID=151ea24d-977a-412c-818f-0d374baa5013"

/dev/sda2


Выходной код тоже полезен в скриптах:

0 → устройство найдено
1 → файловая система не найдена


if findfs "UUID=$1" >/dev/null; then
echo "$1 connected."
else
echo "$1 not connected."
fi


⚠️ Почему это важно?

Если не проверить подключение, легко попасть в неприятную ситуацию:

бэкап или копирование пойдет не на внешний диск, а в локальную систему;
место на корневом разделе быстро закончится;
при монтировании обратно старые файлы могут спрятаться за точкой монтирования.

#findmnt #findfs

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Покупка нового корпуса - это что-то на богатом

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18👍3👎1
⌛️ Быстрый способ отладки bash-скриптов

Когда в скрипте что-то идет не так, часто хочется понять, какая команда выполнилась последней и какие значения получили переменные. Вместо того чтобы расставлять десятки echo, в bash есть встроенный инструмент - set -x.

Если указать его в начале скрипта, оболочка начнет печатать в консоль каждую выполняемую команду с подставленными значениями переменных. Перед строкой появляется символ +, что делает разбор вывода наглядным.

▪️ Пример: резервное копирование файла

Создадим простой скрипт, который проверяет наличие файла и копирует его в директорию резервных копий:


#!/bin/bash
set -x

src="/etc/hosts"
dst="/tmp/backup"

mkdir -p "$dst"
timestamp=$(date +%Y%m%d_%H%M%S)
cp "$src" "$dst/hosts_$timestamp"

echo "Backup created: $dst/hosts_$timestamp"


Вывод консоли:


Запуск
# ./backup.sh
+ src=/etc/hosts
+ dst=/tmp/backup
+ mkdir -p /tmp/backup
+ date +%Y%m%d_%H%M%S
+ timestamp=20251007_121330
+ cp /etc/hosts /tmp/backup/hosts_20251007_121330
+ echo 'Backup created: /tmp/backup/hosts_20251007_121330'
Backup created: /tmp/backup/hosts_20251007_121330


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

#linux #debug

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124
🎆 Удобная веб-панель для управления linux серверами

Cockpit - это встроенный в современные дистрибутивы инструмент, который превращает сервер в управляемый через браузер интерфейс. Вам больше не нужно все делать вручную в консоли - многие задачи можно выполнять из веб-панели.

▪️ Установка и запуск. В большинстве систем Cockpit есть прямо в репозиториях.

debian/ubuntu:


apt install cockpit -y
systemctl enable --now cockpit.socket


RHEL/centOS/fedora:


dnf install cockpit -y
systemctl enable --now cockpit.socket


После этого панель доступна по HTTPS на порту 9090: https://IP-сервера:9090

Авторизация выполняется через обычный системный логин и пароль.

📍 Возможности Cockpit

Мониторинг ресурсов (CPU, RAM, диски, сеть) в реальном времени
Управление сервисами systemd (запуск, остановка, перезапуск)
Просмотр логов journald
Управление пользователями и правами
Настройка сетевых интерфейсов и firewall
Работа с дисками, RAID и LVM
Подключение Docker/Kubernetes для управления контейнерами
Возможность администрировать несколько серверов через одну панель

📍 Почему это удобно?

Минимальная настройка: поставил и сразу работает.
Не требует сторонних агентов - все идет через systemd и встроенные механизмы.
Легко интегрируется с SELinux, firewalld и другими системными компонентами.

#linux #cockpit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍153
🔫 Шпаргалка по systemctl status

Обычно мы проверяем состояние конкретной службы:


systemctl status mariadb


Но если запустить без указания сервиса:


systemctl status


то получим сводку по всей системе. Очень полезная штука

Что покажет systemctl status без аргументов:

State - общее состояние (например: running, degraded)
Failed - количество упавших юнитов
Uptime - время работы systemd
Версия systemd
Количество активных units
Дерево зависимостей сервисов в удобном виде


▪️ Как найти упавшие службы


systemctl list-units --failed


Посмотреть детали по конкретному юниту:


systemctl status <unit>
journalctl -u <unit>


Пример:


systemctl status


Вывод:


State: degraded
Failed: 1 units


Проверяем, что упало:


systemctl list-units --failed


например, systemd-modules-load.service.

Дальше копаемся в логах:


journalctl -u systemd-modules-load.service


▪️ Итоги

systemctl status → быстрый обзор состояния системы.
systemctl list-units --failed → список проблемных юнитов.
journalctl -u <unit> → подробные логи конкретной службы.

#linux #systemctl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍122
🏃 PowerShell шпаргалки для linux админа

Админы, привыкшие к bash и linux, часто недооценивают powershell. А зря - это также неплохая оболочка, которая умеет не только выполнять команды, но и работать с объектами, сервисами и API windows. Ниже несколько полезных сценариев, которые пригодятся, если админите и linux, и windows.

▪️ Мониторинг процессов и портов. Аналог ps aux | grep и ss -tulpn:


# Процессы по имени
Get-Process | Where-Object { $_.ProcessName -like "*chrome*" }

# Открытые TCP-порты
Get-NetTCPConnection | Where-Object { $_.State -eq "Listen" }


▪️ Массовая работа с файлами. Аналог find + xargs:


# Найти все *.log файлы и удалить старше 7 дней
Get-ChildItem -Path "C:\Logs" -Filter *.log -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force


▪️ Проверка доступности хостов. Аналог ping + for:


$hosts = "8.8.8.8","1.1.1.1","networkadmin.ru"
foreach ($h in $hosts) {
Test-Connection -ComputerName $h -Count 2 -Quiet |
ForEach-Object { "$h -> $($_ -replace 'True','OK' -replace 'False','Fail')" }
}


▪️ Работа с сервисами. Аналог systemctl:


# Проверить статус службы
Get-Service -Name "Spooler"

# Перезапустить службу
Restart-Service -Name "Spooler"


▪️ Сетевые запросы и API. Аналог curl:


Invoke-RestMethod -Uri "https://api.ipify.org?format=json"


▪️ Сбор информации о системе. Аналог lshw и df -h:


# Системная информация
Get-ComputerInfo | Select-Object CsName, WindowsVersion, OsArchitecture

# Диски
Get-PSDrive -PSProvider FileSystem


#powershell #windows

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍2🔥2
⬆️ Netplan в ubuntu - альтернативный способ настройки сетей

Ubuntu давно перешла от классического /etc/network/interfaces к новому инструменту - netplan. Он появился начиная с ubuntu 17.10 и стал основным способом настройки сетевых интерфейсов.

❗️ Netplan - это уровень абстракции для сетевых конфигураций.

Использует YAML-файлы в /etc/netplan/.

Работает через рендереры:

systemd-networkd - для серверов и headless-систем.
NetworkManager - для десктопов.

Позволяет централизованно и декларативно описывать сеть.


▪️ Где лежат конфиги

Все настройки находятся в /etc/netplan/*.yaml.
По умолчанию обычно есть файл 01-netcfg.yaml или 50-cloud-init.yaml.

▪️ Примеры конфигураций
1️⃣ DHCP (получение адреса автоматически)


network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true


2️⃣ Статический IP


network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses:
- 192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]


3️⃣ Несколько IP на одном интерфейсе


network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.1.101/24
- 192.168.1.102/24


4️⃣ Bonding (для отказоустойчивости и агрегации)


network:
version: 2
bonds:
bond0:
interfaces: [ens33, ens34]
parameters:
mode: balance-rr
addresses:
- 192.168.1.200/24
gateway4: 192.168.1.1


5️⃣ VLAN


network:
version: 2
vlans:
vlan100:
id: 100
link: ens33
addresses: [192.168.100.10/24]


▪️ Применение настроек

После изменения файлов:


sudo netplan apply


Для теста перед применением можно использовать:


sudo netplan try


(дает 120 секунд на подтверждение, если сеть отвалилась - конфиг откатывается).

#linux #netplan

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍131
Степаныч, выкидывай этот верхний ящик. Мне лежать то как? 🐈

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20😁4
✉️ Отправка почты через curl

Многие для отправки писем из консоли ставят дополнительные утилиты вроде mailx или mutt. Но часто этого не нужно - все умеет curl.

▪️ Простейшая отправка письма


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--user "admin@networkadmin.ru:MySecurePass" \
--upload-file ~/letter.txt


Пример letter.txt:


From: "Admin" <admin@networkadmin.ru>
To: "User" <user@domain.ru>
Subject: Test mail from curl

Hello from curl!


Заголовки (From, Subject и др.) задаются прямо в файле, и можно указывать любые значения.

▪️ Как спрятать пароль

Хранить пароль в команде небезопасно. Вместо этого используем ~/.netrc:


machine smtp.networkadmin.ru login admin@networkadmin.ru password MySecurePass
machine smtp.another.ru login user@another.ru password StrongPass123


Теперь команда проще и безопаснее:


curl -v \
--url "smtp://smtp.networkadmin.ru:587" \
--mail-from "admin@networkadmin.ru" \
--mail-rcpt "user@domain.ru" \
--netrc \
--upload-file ~/letter.txt


▪️ Работа с шифрованием
📍 Требовать TLS:


curl --ssl-reqd ...


📍 Автоматически использовать TLS, если поддерживается:


curl --ssl ...


📍 Для SMTPS (порт 465) достаточно:


curl --url "smtps://smtp.networkadmin.ru" ...


▪️ Указание HELO/EHLO. Можно явно задать имя клиента:


curl --url "smtp://smtp.networkadmin.ru/myhost.domain.ru" ...


#SMTP #curl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
Чтобы рабочие будни были веселее

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👎2
📌 Проверка изменений системных конфигов в Debian/Ubuntu

Когда попадаешь на чужой сервер - никогда не знаешь, какие изменения там вносили. Один из быстрых способов разобраться - использовать утилиту debsums, которая есть в базовых репозиториях:


apt install debsums


Что делает debsums

Утилита сравнивает MD5-суммы файлов из пакетов с эталонными значениями. Это помогает:

📍проверить целостность пакетов;
📍выявить модифицированные файлы;
📍понять, какие стандартные конфиги редактировались.


▪️ Пример: проверка конфигов. Особенно полезно искать изменения в конфигурационных файлах:


debsums --config --changed


Результат может быть таким:


/etc/ssh/ssh_config
/etc/default/ssh


То есть видно, что системные конфиги OpenSSH редактировались.

▪️ debsums проверяет:

файлы из базовой системы (/etc/default, /etc/pam.d, /etc/grub.d);
юниты systemd;
конфиги сервисов вроде nginx, mariadb, apache2.

#linux #audit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
👩‍🎨 Шпаргалка по debsums

▪️ Основные ключи

Проверить все пакеты:


debsums


Показать только измененные файлы:


debsums --changed


Проверять только конфиги (/etc):


debsums --config


Только измененные конфиги:


debsums --config --changed


Показать отсутствующие файлы пакета:


debsums --missing


Игнорировать отсутствующие файлы (проверять только существующие):


debsums --ignore-missing


Проверка конкретного пакета


debsums nginx


▪️ Примеры

Найти какие конфиги менялись руками:


debsums --config --changed


Проверить целостность пакета OpenSSH:


debsums openssh-server


🌟 debsums берет эталонные хэши из пакета, поэтому иногда нужна переустановка пакета, если контрольные суммы недоступны.

#linux #audit

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Отключение лишних сервисов через systemd

Одна из полезных практик на пути к оптимизации - переодически смотреть, а что вообще запускается и что из этого действительно нужно, а что можно отключить. Это будет полезно не только для оптимизации, но и для безопасности тоже.

1️⃣ Смотрим активные сервисы


systemctl list-unit-files --state=enabled


Команда покажет список всех юнитов, которые стартуют при загрузке. Также полезно посмотреть реально работающие процессы:


systemctl list-units --type=service


2️⃣ Отключение ненужного. Чтобы сервис не запускался при старте системы:


systemctl disable avahi-daemon.service


Чтобы остановить прямо сейчас:


systemctl stop avahi-daemon.service


Если сервис не нужен вообще - можно замаскировать, чтобы исключить случайный запуск:


systemctl mask avahi-daemon.service


(при этом запуск будет невозможен даже вручную, пока не сделаете unmask).

Примеры сервисов, которые часто не используются:

avahi-daemon.service - autodiscovery (не нужен на сервере)
bluetooth.service - если нет блютуза
ModemManager.service - если не используется мобильный модем
rpcbind.service - устаревший RPC, не нужен большинству

Далее уже зависит конкретно от Ваших потребностей и ситуации.

3️⃣ Проверка. После внесенных изменений убедитесь, что лишние службы не стартуют:


systemctl list-unit-files --state=enabled


#linux #systemd

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥21
🖥 Неочевидные возможности ethtool для работы с сетевыми интерфейсами

ethtool - это не только утилита для просмотра информации о сетевой карте. С ее помощью можно управлять сетевыми интерфейсами в linux: от настройки скорости линка до оптимизации производительности под конкретные задачи.

▪️ Проверка состояния интерфейса


ethtool eth0


Покажет: скорость, дуплекс, поддержку offload-функций, драйвер, версию прошивки и т.д.

▪️ Управление скоростью и режимом. Принудительная установка скорости 100 Мбит/с в full-duplex:


ethtool -s eth0 speed 100 duplex full autoneg off


Можно использовать для тестов или если автосогласование работает некорректно.

▪️ Offload-функции (ускорение или отладка)

Проверить поддержку:


ethtool -k eth0


Отключить контрольную сумму (будет полезно для отладки):


ethtool -K eth0 tx off rx off


Также можно управлять GRO, LRO, TSO и другими функциями.

▪️ Диагностика линка

Проверка кабеля и физики:


ethtool --test eth0
ethtool -t eth0 offline


А команда:


ethtool eth0 | grep detected


покажет, есть ли линк и его скорость.

▪️ Статистика и дропы пакетов


ethtool -S eth0


Выводит счётчики ошибок, дропов, коллизий. Это помогает отлавливать проблемы на низком уровне.

▪️ Управление очередями и ring buffer. Посмотреть текущие значения:


ethtool -g eth0


Изменить глубину очереди при интенсивной нагрузке:


ethtool -G eth0 rx 4096 tx 4096


▪️ Блокировка Wake-on-LAN. Если не используете WoL — отключите:


ethtool -s eth0 wol d


#network #ethtool

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Доставка пакетов

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20👍4
♥️ Что такое blackhole в сети

Часто говорят, что при DDoS провайдер отправляет трафик в blackhole. Это не метафора - blackhole (или nullroute) - реальная запись в таблице маршрутизации, которая заставляет ядро молчаливо отбрасывать пакеты к указанному адресу/сети.

▪️ Создание черной дыры для одного IP:


ip route add blackhole 10.20.30.40
ip route show | grep blackhole


Теперь все пакеты к 10.20.30.40 будут просто выброшены, без попытки доставить и без ICMP-ответа.

Для сети:


ip route add blackhole 203.0.113.0/24


Для IPv6:


ip -6 route add blackhole 2001:db8::/32


▪️ Удаление:


ip route del blackhole 203.0.113.0/24


▪️ Отличия blackhole от unreachable и от prohibit

blackhole - молча дропает пакеты (никаких ICMP).
prohibit - отсылает ICMP administratively prohibited (полезно, если нужно, чтобы источник получил уведомление).
unreachable - возвращает host unreachable.

Команды выглядят похоже:


ip route add prohibit 10.0.0.0/8
ip route add unreachable 10.0.0.0/8


Выбор зависит от сценария: для имитации «исчезновения» хоста - blackhole, чтобы сигнализировать отправителю - prohibit/unreachable.

▪️ Где это реально используют

Провайдеры - при крупном DDoS обычно ставят null-route на адрес жертвы на своей инфраструктуре. Это позволяет дропать трафик до границ сети провайдера, защищая инфраструктуру дальше по пути.

#network #blackhole

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
🔒 Конфигурации nftables для защиты сервера

nftables - это замена iptables, встроенная в ядро linux. Она объединяет фильтрацию, NAT и маршрутизацию в единую подсистему и считается более быстрой и удобной. Разберемся, как можно построить базовую защиту сервера.

▪️ Минимальная конфигурация. Создадаем новый ruleset с таблицей для фильтрации трафика:


sudo nft add table inet filter
sudo nft 'add chain inet filter input { type filter hook input priority 0; policy drop; }'


Мы сразу задали policy drop, то есть по умолчанию все запрещено. Теперь разрешим только нужное.

▪️ Разрешаем базовое


sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input ip protocol icmp accept
sudo nft add rule inet filter input tcp dport {22,80,443} accept


Что тут происходит:

принимаем все соединения в состоянии ESTABLISHED и RELATED
разрешаем локальный интерфейс (lo)
разрешаем ping (ICMP)
открываем SSH, HTTP и HTTPS


▪️ Защита SSH. Ограничим количество соединений по SSH, чтобы усложнить перебор паролей:


sudo nft add rule inet filter input tcp dport 22 ct state new limit rate 10/minute accept
sudo nft add rule inet filter input tcp dport 22 drop


Теперь на SSH можно будет открыть не более 10 новых подключений в минуту.

▪️ Блокируем сканеров и мусор. Пример простого анти-сканера:


# блокируем пакеты без флагов (NULL scan)
sudo nft add rule inet filter input tcp flags == 0 drop

# блокируем XMAS-скан
sudo nft add rule inet filter input tcp flags & (fin|psh|urg) == (fin|psh|urg) drop


▪️ Проверка и сохранение. Посмотреть активные правила:


sudo nft list ruleset


Сохранить конфиг:


sudo sh -c "nft list ruleset > /etc/nftables.conf"
sudo systemctl enable nftables
sudo systemctl restart nftables


#nftables #security

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍141
✏️ Шпаргалка по journalctl

journalctl - это инструмент работы с логами systemd.

▪️ Фильтрация по сервисам и юнитам. Посмотреть логи конкретной службы:


journalctl -u ssh
journalctl -u nginx -u php-fpm


Последние записи сервиса в реальном времени (аналог tail -f):


journalctl -u nginx -f


▪️ Ограничение по времени. Фильтрация по временным промежуткам:


journalctl --since "2025-10-01" --until "2025-10-15"
journalctl --since "1 hour ago"
journalctl --since yesterday


▪️ Поиск по ключевым словам. Просто используем grep:


journalctl -u ssh | grep "Failed password"


Или встроенный фильтр по приоритету (severity):


journalctl -p err -u ssh


(-p принимает диапазон: -p warning..crit)

▪️ Логи текущей загрузки


journalctl -b # текущая загрузка
journalctl -b -1 # предыдущая загрузка
journalctl -b -2 # еще раньше


▪️ Работа с логами как с файлами

Сохранить в файл:


journalctl -u nginx --since today > nginx.log


Экспорт в бинарный лог и перенос на другой сервер:


journalctl --vacuum-time=7d # удалить старше 7 дней
journalctl --vacuum-size=1G # ограничить объем


#systemd #journalctl

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
Глубоко погрузился в проблему, детально изучил и решил ее

#юмор

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
😁214👌3
🎤 Один ввод, а команды на всех хостах

Когда разворачиваешь кластер или нужно повторить одинаковые действия на нескольких серверах, очень помогает режим синхронизации панелей в tmux. С ним одна команда сразу выполняется во всех открытых панелях.

▪️ Установка


apt install tmux


▪️ Работа с панелями

1️⃣Запускаем tmux.
2️⃣Создаем несколько панелей:

Ctrl+B % - вертикальное разделение
Ctrl+B " - горизонтальное разделение

3️⃣Между панелями перемещаемся Ctrl+B + стрелки.
4️⃣В каждой панели подключаемся по SSH к своему хосту.

▪️ Включение синхронизации. В командной строке tmux (после Ctrl+B :) вводим:


:setw synchronize-panes


Теперь все, что вводите в активной панели, автоматически дублируется во все остальные.
Отключение производится той же командой.

▪️ Автоматизация

Если работаете с одним и тем же стендом регулярно, то можно написать конфиг для tmux или скрипт, который сразу запускает сессию и подключает нужные SSH-сессии.

#linux #terminal

🧑‍💻 NetworkAdmin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12