ServerAdmin.ru
28.7K subscribers
282 photos
34 videos
13 files
2.61K links
Авторская информация о системном администрировании.

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

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Мне очень нравится утилита rsync для синхронизации файлов между Linux серверами. Очень долгое время с ее помощью я бэкапил и файловые сервера Windows, монтируя их по smb к любому linux серверу. А далее запускал локально rsync, копируя файлы с примонтированного диска. В таком режиме бэкап выполнялся медленно, а именно за скорость синхронизации я и предпочитаю rsync. Когда файлов на сервере сотни тысяч разница в скорости заметная.

Потом в какой-то момент попробовал установить и настроить rsync сервер напрямую в винде. Оказалось, что это сделать достаточно просто. Есть программа cwRsyncServer, с помощью которой можно запустить как службу rsync сервер на Windows.

Я не знаю историю этой программы. Не понятно, кто разработчик и где официальный сайт. Информация не гуглится. Много ссылок битых. Есть вот такая ссылка - https://itefix.net/cwrsync, но там программу предлагают купить.

У меня давно сохранен архив cwrsyncserver_4.1.0_installer.zip, который я использую в случае необходимости. Скачать его можно, например, вот тут. Ставится обычным инсталлятором, настройка такая же, как в Linux. Формат конфигов один в один, только пути другие.

Вот пример моего конфига для бэкапа двух файловых шар на винде:

uid = 0
gid = 0
use chroot = false
strict modes = false
hosts allow = 10.1.3.5 10.1.4.4
log file = rsyncd.log

[fp]
path = /cygdrive/e/final_projects
read only = true
transfer logging = yes

[documents]
path = /cygdrive/d/documents
read only = true
transfer logging = yes

Шары, соответственно, в директориях E:\final_projects и D:\documents. Авторизацию не настраиваю, ограничиваю просто по ip. Дополнительно на firewall имеет смысл ограничить доступ к порту rsync.

#утилита #backup
​​Существует любопытный инструмент для автоматизации выполнения и планирования задач - Rundeck. Эдакий продвинутый планировщик cron для большого количества задач. С его помощью можно управлять задачами на множестве узлов. Все управление работает через веб интерфейс.

Для того, чтобы быстро познакомиться и попробовать Rundeck, можно запустить его в докере.

docker run --name rundeck -e RUNDECK_GRAILS_URL=http://10.20.1.23:4440 -p 4440:4440 -v data:/home/rundeck/server/data rundeck/rundeck:3.3.10

Не забудьте поменять url на свой. Без его корректного указания работать веб интерфейс не будет, так как там работает редирект на этот url. Учетка по умолчанию admin / admin. Можно сразу заходить и пробовать, как работает эта штука.

Чтобы быстро понять принцип действия, рекомендую добавить новый проект. В нем создать job. В качестве ноды для установки выбрать локальный сервер. Добавить первый шаг для выполнения в виде какой-то bash команды, например df -h и запустить этот job. Увидите результат работы команды в виде консольного вывода в веб интерфейсе.

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

Если честно, я до конца не понял, где это может понадобиться сейчас. У меня сложилось впечатление, что это инструмент из прошлого, когда еще только начинали строить системы ci/cd. Сейчас мне кажется, эти велосипеды на bash скриптах заменили всякие Jenkins / Gitlab / Teamcity и т.д. Там в целом все то же самое можно делать, но с упором на разработку. А тут инструмент общего назначения. Например, чтобы дергать скрипты бэкапа в том случае, если нет единой системы.

Кто-нибудь использовал Rundeck? Какие задачи с его помощью решали?

#утилита #devops
​​Как быстро и просто проследить за сетевой активностью с помощью консоли Linux? Ранее я для этого предлагал использовать iftop. Но есть более функциональная программа - iptraf, которая живет в стандартных системных репозиториях. Так что с установкой нет проблем.

dnf install iptraf
apt install iptraf

Если нужна самая свежая версия, то придется собрать самостоятельно: https://github.com/iptraf-ng/iptraf-ng

dnf groupinstall "Development Tools"
dnf install ncurses-devel.x86_64
git clone https://github.com/iptraf-ng/iptraf-ng
cd iptraf-ng/
make

Далее запускаем:

./iptraf-ng

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

В итоге, наглядно оценить сетевую активность на сервере удобнее с iftop. А если нужно собрать лог за какой-то период и спокойно проанализировать, то удобнее использовать iptraf.

#утилита
​​Познакомился с любопытной утилитой, которая недавно вышла в свет. Первая альфа версия была в январе этого года. Речь идет о Zellij - https://zellij.dev. Опенсорсный продукт с репой на гитхабе https://github.com/zellij-org/zellij.

Она умеет в рамках одной ssh сессии открывать несколько панелей с командной строкой. Посмотреть, как это выглядит, можно тут - https://zellij.dev/screenshots/

Для запуска, достаточно скачать бинарник из релизов на github. Я немного потестил, в целом понравилось. То же самое привык делать с помощью отдельных сессий ssh в клиенте.

Из особенностей можно выделить:
 🔹 преднастройка с помощью yaml конфига
 🔹 поддержка плагинов

В будущем обещают сделать веб клиент для работы в консоли через браузери шаринг своей сессии зрителям.

#утилита
​​Вчера потестировал любопытную утилиту, которая умеет отправлять логи напрямую в Telegram. Называется Logram - https://github.com/mxseev/logram

Ставится и настраивается очень просто. Качаем deb или rpm пакет из репозитория и ставим на машину:

wget https://github.com/mxseev/logram/releases/download/v2.0.0/logram-2.0.0.amd64.deb
dpkg -i logram-2.0.0.amd64.deb

Далее редактируем конфиг /etc/logram.yaml. Я поменял только следующие строки:

telegram:
 token: <bot_token>
 chat_id: <id чата>

 filesystem:
  enabled: true
  entries:
   - /var/log/auth.log

С такой настройкой бот будет отправлять вам в чат все новые строки лога /var/log/auth.log

Остается только запустить его:

systemctl start logram

Быстро узнать id чата можно с помощью бота и logram. Добавьте вашего бота в чат и запустите в консоли:

logram echo_id -t <bot_token>
The chat ID of group "srvadmin_zabbix_group": -1001998787756

На Centos 7 у меня эта штука не завелась, ругнулась на неподходящую версию glibc:

/usr/bin/logram: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /usr/bin/logram)

А вот на ubuntu 20 сразу заработала.

#утилита