Показаны сообщения с ярлыком Bash. Показать все сообщения
Показаны сообщения с ярлыком Bash. Показать все сообщения

среда, 29 мая 2013 г.

SaltStack - Ищем "Мёртвые души‎"










Начав использование SaltStack я столкнулся с проблемой "Как узнать какие из машин мне не ответили?"
Конечно может быть я плохо искал, но ничего полезного не обнаружил.

Зато все знают как узнать какие машины доступны, это просто:
salt '*' test.ping
Это может решить проблему в случае у вас меньше 10-ка управляемых хостов.
Но если их несколько 10-тков или 100-тен то быть уверенным в том что при деплое проекта на  все машины будет залит код, и всё будет корректно настроено.

понедельник, 4 июня 2012 г.

Передача данных по нестабильном каналу через SSH

Намедни мне пришлось на не очень стабильном канале передавать кучу разрозненных файлов. И всё бы ничего, запаковать в архив, и передать  опцией докачки, делов то. Но не всё так просто, если на диске для архива не достаточно места. Вы скажите есть же rsync, но это чудо природы виснет на больших бинарных файлах при не стабильном канале, и к тому же не умеет рисовать прогресс бар.

Я нашел достаточно удобный способ решения этой проблемы.

Для начала на обеих машинах должны быть установлены следующие пакеты: openssh-server, openssh-client, tar, bzip2, pv, screen, rsync

Установить их можно так:

Для Debian/Ubuntu
apt-get install -y openssh-server openssh-client tar bzip2 pv screen rsync

Для RHEL/CentOS
yum install -y openssh-server openssh-clients tar bzip2 pv screen rsync

Кстати. Все команды лучше запускать в screen он доступен в пакетной практически всех дистрибутивах.

Итак зайдём по SSH на 1ый хост, и запустим screen.

Не забудьте заменить "$HOST1" "$HOST2"  на свои адреса хостов, а /mnt/data/ на свой путь к данным.
 Для тех кто не очень понимает bash синтаксис поясню что делает этот скрипт.

tar'om мы сжимаем содержимое директории /mnt/data/ и с помощью ключа "-" отправляем его в стандартный поток вывода, но не выводим на дисплей,  а через пайп отправляем команде pv которая считает сколько данных через неё прошло, и выводит данные на экран. Таким образом мы будем наблюдать за процессом передачи данных. После подсчёта команда pv отправит данные в неизменном виде в следующий пайп который передаст данные ssh сессии где мы перейдём в корневой каталог и начнём распаковку tar'om уже на втором хосте. Переход в корневой каталог необходим по той причине, что при архивации tar вырезает / и из абсолютного пути мы получим относительный. 
После окончания сей мистерии следует проверить rsync'om все ли данные верно передались.


ssh "$HOST1"
screen
tar cjf - /mnt/data/ | pv | ssh root@"$HOST2" "cd / && tar xjf - "
rsync -vcazr -e ssh /mnt/data root@"$HOST2":/mnt/
Теперь следует обговорить screen он умеет многое, и достоин отдельной статьи.
Сейчас о его устройстве вам следует знать 4 вещи.

ctrl a d # Используется для того чтобы свернуть терминал
screen -ls # Используется для того чтобы просмотреть список существующих терминалов
screen -r pid.pts-0.hostname # Используется для того чтобы вернуться в указанный терминал
screen -r # Используется для того чтобы вернуться в терминал если он открыт у вас один

На сим всё.

Могу сказать только что на сильно проседающем канале 6GB данных за ночь передались безошибочно.



Enhanced by Zemanta

четверг, 5 апреля 2012 г.

Отправка SMS с сервера через sms шлюз smsc.ru


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

Я решил воспользоваться услугами http://smsc.ru.

У них сравнительно не дорогие цены, и удобное API

Всё что нужно для использования, это зарегистрироваться, оплатить счёт, заполнить поля логина, пароля и номера телефона или телефонов. 
Учтите чтобы лог писался файл /var/log/sms.log должен иметь права на запись для пользователя от которого вы запускаете скрипт.



Все параметры которые вы передадите скрипту будут восприняты как тело сообщения.

Пример commands файла для nagios /etc/nagios3/commands.cfg






Enhanced by Zemanta

вторник, 14 февраля 2012 г.

Включаем SSL в Apache2 для Debian/Ubuntu

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


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

Пользоваться им достаточно.
Качаем скрипт, делаем его исполняемым,  смотрим доступные сайты на web сервере, и передаём первым параметром имя файла vhost сайта.