Мне очень нравится утилита rsync для синхронизации файлов между Linux серверами. Очень долгое время с ее помощью я бэкапил и файловые сервера Windows, монтируя их по smb к любому linux серверу. А далее запускал локально rsync, копируя файлы с примонтированного диска. В таком режиме бэкап выполнялся медленно, а именно за скорость синхронизации я и предпочитаю rsync. Когда файлов на сервере сотни тысяч разница в скорости заметная.
Потом в какой-то момент попробовал установить и настроить rsync сервер напрямую в винде. Оказалось, что это сделать достаточно просто. Есть программа cwRsyncServer, с помощью которой можно запустить как службу rsync сервер на Windows.
Я не знаю историю этой программы. Не понятно, кто разработчик и где официальный сайт. Информация не гуглится. Много ссылок битых. Есть вот такая ссылка - https://itefix.net/cwrsync, но там программу предлагают купить.
У меня давно сохранен архив cwrsyncserver_4.1.0_installer.zip, который я использую в случае необходимости. Скачать его можно, например, вот тут. Ставится обычным инсталлятором, настройка такая же, как в Linux. Формат конфигов один в один, только пути другие.
Вот пример моего конфига для бэкапа двух файловых шар на винде:
Шары, соответственно, в директориях E:\final_projects и D:\documents. Авторизацию не настраиваю, ограничиваю просто по ip. Дополнительно на firewall имеет смысл ограничить доступ к порту rsync.
#утилита #backup
Потом в какой-то момент попробовал установить и настроить 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
Для того, чтобы быстро познакомиться и попробовать 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, которая живет в стандартных системных репозиториях. Так что с установкой нет проблем.
Если нужна самая свежая версия, то придется собрать самостоятельно: https://github.com/iptraf-ng/iptraf-ng
Далее запускаем:
Программа показывает чуть более расширенную статистику по сравнению с iftop, но основное отличие в том, что может писать информацию в лог файл, который достаточно просто читать. Все очень наглядно. Если хочется выцепить какие-то адреса и порты, то iptraf отлично для этого подходит.
В итоге, наглядно оценить сетевую активность на сервере удобнее с 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 конфига
🔹 поддержка плагинов
В будущем обещают сделать веб клиент для работы в консоли через браузери шаринг своей сессии зрителям.
#утилита
Она умеет в рамках одной 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 сразу заработала.
#утилита
Ставится и настраивается очень просто. Качаем 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 сразу заработала.
#утилита