通知付きのリモートサーバーでsshを介してmcabberを使用する

この記事では、リモートサーバー上でmcabber jabberクライアントを常時実行し、ssh経由でサーバーに接続するときに使用する方法を説明します。 また、着信メッセージの通知を実装する方法についても説明します。
このようなスキームからの利益は次のとおりです。
欠点は次のとおりです。

リモートサーバーでmcabberを実行して使用するのは簡単です。 原則として、ローカルの設定と比較してほとんど違いはありません。
実験には、 blinkenshell.orgサービスを使用できます。 このサービスは、ircチャンネルに座っているための無料のシェルアカウントを提供します。 ただし、そこで本格的なユーザーになるには、数日を費やす必要があり、サーバーの応答は最適ではありません。 この記事は、blinkenshellサーバーのセットアップ例に基づいて書かれていますが、自分用に簡単に適用できます。
サーバーでmcabberを実行するには、次のコマンドを使用できます。

tmux new-session -d -s mcabber mcabber

(tmuxはスクリーンの類似物です。私の主観的な意見では、より良いです)
ローカルコンピューターでは、ターミナルで実行するだけで十分です。

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

-dは、他のtmux mcabberセッションを最初に切断する必要があることを意味します。 したがって、mcabberは1台のコンピューターからのみ接続されるようになります。 blinkenshellは〜/ .ssh / configで設定されたエイリアスです。

このガイドに従った場合、素晴らしい設定で次のように書くことができます:

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 + `キーの組み合わせに減らします。その後、mcabberが既に起動されるsshセッションで端末が開きます。

リモートmcabberでイベント通知が必要な場合はさらに興味深いものになります。
サーバーのmcabberrcで、次の行を記述します。

set events_command = ~/.mcabber/event.sh

〜/ .mcabber / event.shの内容はわずかです:

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


これにより、すべてのmcabberイベントが追加されるログファイルをサーバー上に作成します。

通知には、mcabberによって作成され python スクリプトを使用しました。 キットには、完全に理解可能な構成ファイルと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を起動し、scaを介してmcabberが待機しているサーバーに接続し、ローカルで実行されているかのように操作して、コンピューターを読み込むことができます。

PSこのスキームを最適化するための提案を聞いてうれしいです。

Source: https://habr.com/ru/post/J112520/


All Articles