web-dev-qa-db-ja.com

クラスター化されたサーバーを調べるために(パテを介して)複数のsshセッションを管理するためのWindowsの最良の方法は何ですか?

Linux用のcsshと呼ばれるツールがあり、Windowsで使用したいものと同じように使用できます。基本的には、同じサーバーにログインしているので、両方のウィンドウに同じものを同時に入力して、ログを確認したり、さまざまなグレープを実行したりしたいと考えています。

2
Alex Argo

これは古い質問だと思いますが、PuTTY Command Senderを約5年間使用していて、いつもかなりひどいと思っていたので見つけました。今まで、代替品を探すのに十分に使用していませんでした。 puttyClusterに出くわしたばかり--- https://github.com/mingbowan/puttyCluster -そして聖なるsht、それは私が愚かなPuTTY CSで時間を無駄にしていて、maximized + "dockedを使用できないのは非現実的です" ウィンドウズ。

また、これらの代替案を見つけましたが、試していません:cputty clustershish(リンクを投稿する担当者がいませんが、グーグルで検索してください)。

3
Brent212

Clustershまたはmtputtyの使用に加えて、単純なbashスクリプトは、sshを使用してリモートサーバーのリストにログインし、scpを使用してそれぞれにファイルをコピーし、各サーバーでスクリプトを実行できます。私はbashスクリプトの初心者なので、おそらく最も効率的または最良のオプションではありませんが、管理はかなり簡単なようです。 clustershとmtputtyの両方よりも簡単であることがわかりました。このコードをcopyFileToServers.shという名前のファイルに保存し、ipsまたはサーバー名のリストを含むserverlistファイルを作成し、./copyFileToServers.shと入力して実行します。

Windowsにはcygwinが必要です(これは私がこれをテストした唯一の場所です)。 sourceforgeからダウンロードできるsshpassを個別にインストールする必要があります(人々はこのパッケージを本当に嫌っていますが、すべてのサーバーでsshキーを実行するには怠惰でした)。

注意すべき点の1つは、管理するサーバーごとに、管理マシンのコマンドラインからssh user@remomte_serverを使用してログインする必要があることです。 sshpassは、リモートサーバーのsshキーの追加を手動で確認するまで機能しません。これを行う必要があるのは1回だけです。

(注:2014年7月の時点でwindows cygwinでclustershを実行できなかったため、OPが要求したことをプログラムが達成するのにどれほど良いか悪いかを実際に話すことができませんでした。)

HOSTS=./serverlist
echo "what file should be copied to the remote servers?"
read file
echo "where should the file be placed on each remote server?"
read dest
echo "what script should be run on all remote nodes?"
read remoteScript
while read line

do
        if [ "${#file}" -gt 0 ] 
    then 
        sshpass -p 'password' scp $file root@$line:$dest 
    else 
        echo "skipping file copy" 
    fi
    if [ "${#remoteScript}" -gt 0 ] 
    then 
        sshpass -p 'password' ssh root@$line 'bash -s' < $remoteScript 
    else 
        echo "skipping remoteScript execution" 
    fi
    echo $line
done < $HOSTS
1
adamt

私は最近、これを簡単に行う方法を見つけました。 Excelシートを使用して、PuTTY sshログインを含むcmdコマンドを作成し、cmdウィンドウの列を超えてコピーしました。サーバーごとにコマンドをカスタマイズする必要がある場合でも、魔法のように機能します。

cmd Command         ip          user name           password            Command template

echo  /snmp set enabled=yes >temp\10.10.0.9.txt| PuTTY -ssh [email protected] -pw passwd -m temp\10.10.0.9.txt        10.10.0.9           user_name           passwd      /snmp set enabled=yes

echo  /snmp set enabled=yes >temp\10.10.0.31.txt| PuTTY -ssh [email protected] -pw passwd2 -m temp\10.10.0.31.txt   10.10.0.31          user_name2                  passwd2     /snmp set enabled=yes

すべてのマシンで正確なコマンドリストを実行する場合は、それをファイルに保存し、別のシートを使用してコマンドラインバッチを生成します。

cmd Command         ip          user name           password
PuTTY -ssh [email protected] -pw paaswd -m commands.txt          192.168.0.21          user_name           paaswd
PuTTY -ssh [email protected] -pw paaswd -m commands.txt                192.168.0.22        user_name           paaswd

puTTYメインフォルダー内にtempという名前のフォルダーを作成する必要があり、IPまたはPearセッションごとにファイルを保存するようにPuTTYロギングをカスタマイズする必要がある場合があります。これが私の最初の投稿なので、画像をアップロードできません。

1
Saif A.