шкаф купе по индивидуальным размерам, бесплатный выезд замерщика

Авторизация

Вы можете войти через одну из учетных записей:

ИЛИ



Напомнить пароль
Регистрация

How-toИспользование mcabber через ssh на удаленном сервере с уведомлениями

В этой статье я расскажу, как можно держать постоянно запущенным jabber-клиент mcabber на удаленном сервере и пользоваться им подключаясь к серверу по ssh. Также здесь будет описано, как можно реализовать уведомления о пришедших сообщениях.

Профиты от такой схемы следующие:
  • вы постоянно on-line
  • если вдруг рвется соединение не приходится перелогиниваться и терять (при неудачном раскладе) оффлайновые сообщения
  • логи хранятся в одном месте и доступны отовсюду где есть интернет
  • вы можете пользоваться mcabber с любого устройства, поддерживающего ssh, будь то мобила или веб-клиент
  • говорят, что ssh кушает меньше трафика, чем xmpp (не проверял)

К недостаткам же можно отнести:
  • необходимость сервера
  • тормознутость интерфейса (на медленных каналах)
  • необходимость использования консольного клиента(для кого-то это даже плюс)


Запустить и использовать mcabber на удаленном сервере не составляет труда. Впринципе, почти никакой разницы по сравнению с настройкой локально нет.
Для экспериментов можно воспользоваться сервисом blinkenshell.org, предоставляющим бесплатные shell-аккаунты за то, что вы сидите на их irc канале. Однако чтобы стать там полноправным юзером надо потратить пару дней, да и отклик сервера у них не самый лучший. Статья написана на примере настройки для сервера blinkenshell, но вы можете легко применить ее для своего собственного.
Для запуска mcabber на сервере можно использовать следующую команду:

tmux new-session -d -s mcabber mcabber


(tmux — это аналог screen, на мой субъективный взгляд он лучше)
На локальном компьютере тогда будет достаточно выполнить в терминале:

ssh -t blinkenshell 'LANG=ru_RU.UTF-8 tmux attach -d -t mcabber'


где -d обозначает, что любая другая mcabber-сессия tmux должна быть сначала детачнута. Таким образом достигается то, что mcabber будет подключен только с одного компьютера. blinkenshell — алиас, настроенный в ~/.ssh/config.

Если вы следовали этому руководству, то в конфиге awesome можно прописать:

awful.key({ modkey }, "grave", function () scratch.drop("urxvtc -e ssh -t blinkenshell 'LANG=ru_RU.UTF-8 tmux attach -d -t mcabber'", bottom, center, 0.98, 0.95) end),


и тем самым свести запуск jabber клиента на компьютере к комбинации клавиш Win+`, после чего откроется терминал с ssh-сессией в которой уже будет запущен mcabber.

Интереснее становится, когда мы захотим уведомления о событиях на удаленном mcabber.
В mcabberrc на сервере пропишите следующие строки:

set events_command = ~/.mcabber/event.sh


Содержимое же ~/.mcabber/event.sh небольшое:

#!/bin/sh
echo $@ >> logfile


Этим мы создаем logfile на сервере, в который будут дописываться все события mcabber.

Для уведомлений я использовал скрипт на python, написанный разработчиком mcabber. В комплекте идет вполне понятный конфигурационный файл и readme. Скрипт и конфигурационный файл следует положить в директорию ~/.mcabber/ на локальном компьютере.
Затем там же создаем скрипт remote_events.sh следующего содержания:

#!/bin/zsh
SERVER=blinkenshell
EVSCRIPT=~/.mcabber/mcevent.py
CONFFILE=~/.mcabber/mcevent.cfg
ssh $SERVER 'tail -n0 -F ~/.mcabber/logfile' < /dev/null | $EVSCRIPT -c $CONFFILE &|


Он подключается по ssh к удаленному серверу и считывает содержимое ~/.mcabber/logfile. При запуске скрипт отреагирует только на последнее событие mcabber (ключ -n0). А далее будет постоянно мониторить изменения в этом файле (ключ -F) и передавать новые события скрипту уведомлений.

Вот и все. Теперь вы сможете загрузив компьютер просто запустить remote_events.sh, подключиться по ssh к серверу на котором вас ждет mcabber и работать с ним как если бы он был запущен локально.

P.S. с удовольствием выслушаю предложения по оптимизации данной схемы.

источник
  • 0
  • Diesel
  • 27 января 2011, 22:22
  • add twitter 

Комментарии (0) Вконтакте (0) facebook (0)

Комментарии (0)

rss свернуть / развернуть

Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.