日本でボチボチ ビジネス実践

ニュージーランドから帰国後、ITビジネスを継続。。

コンピュータ

[ リスト ]

便利シェルスクリプト:多数のssh, telnet, ftpホストのIPアドレス・ユーザ名・説明を一覧表示し簡単アクセス
http://www.tokyovalley.com/yahoo_blog/article/article.php
「自分の持っているサーバが多すぎて、どのIPのホストがウェブサーバだか忘れたー、どれがファイルサーバだー(TーT)」という瞬間はないでしょうか。
そんな時のために作ってみました、便利なシェルスクリプト。

実行結果は以下。
引数なしで実行。まずは自分の持っているホスト一覧を表示します。

root@hiro:~/scripts# ./local_nodes.sh
This is for simplifying to know what nodes are in your local network.
Hosts are following. If you want to connect one of them, please specify the number.
Ex: local_nodes.sh 2
Number IPAddress UserName Description
1 192.168.1.10 telnet user123 23 Default Gateway
2 192.168.1.30 - - - Router
3 192.168.1.50 ssh user123 22 Router,Cisco
4 192.168.1.60 ssh root 22 CentOS webserver
5 192.168.1.100 - - - Switch Wireless
6 192.168.1.200 ssh root 22 CentOS File server
7 foo.com ssh root 22 CentOS
8 foo.com ssh root 10022 FedoraCore7
9 ftp.foo.jp ftp user123 10021 this is ftp, Passwd:pass123

一覧の左側に番号が振られていますね?webserverやwirelessなどの説明も右側に付いているから、どんな役割を持っているのかをすぐに思い出せます。
その番号を引数に取ると、IPアドレスとユーザ名を自動入力してくれるので、あとはパスワードを入れるだけ。
以下のような実行結果になります。
root@hiro:~/scripts# ./local_nodes.sh 3
This is for simplifying to know what nodes are in your local network.
192.168.1.100 ssh root 22 CentOS webserver
ssh root@192.168.1.100
root@192.168.1.100's password:
Last login: Sat Oct 24 22:25:33 2009 from 192.168.1.80
[root@192.168.1.100 ~]#


さて、スクリプトのソースは?こんな感じです。
root@hiro:~/scripts# cat local_nodes.sh
#!/bin/bash
echo This is for simplifying to know what nodes are in your local network.

cd dirname $0

if [ $# -eq 0 ]; then
echo Hosts are following. If you want to connect one of them, please specify the number.
echo Ex: 'local_nodes.sh 2'
echo Number IPAddress UserName Description
cat -n local_nodes.txt
exit
fi


if [ $PWD/if_num.sh $1 -eq 1 ]; then
echo Please type one number as an argument.
fi

COMMAND=cat local_nodes.txt | head -n $1 | tail -n 1
echo $COMMAND

COMMAND1=`echo $COMMAND | awk '{print $1;}'`
COMMAND2=`echo $COMMAND | awk '{print $2;}'`
COMMAND3=`echo $COMMAND | awk '{print $3;}'`
COMMAND4=`echo $COMMAND | awk '{print $4;}'`

echo $COMMAND2 $COMMAND3@$COMMAND1
if [ $COMMAND2 = 'ssh' ]; then
ssh -p $COMMAND4 $COMMAND3@$COMMAND1
elif [ $COMMAND2 = 'telnet' ]; then
telnet $COMMAND1 $COMMAND4
elif [ $COMMAND2 = 'ftp' ]; then
ftp $COMMAND1 $COMMAND4
fi

yahooブログだと形が崩れることがあるので、
http://www.tokyovalley.com/data/local_nodes.sh
で直接ダウンロードできます。

あと、このスクリプトと同じディレクトリには以下のようなデータ用テキストファイルを置いておく必要があります。
適宜修正してくださいね。
root@hiro:~/scripts# cat local_nodes.txt
192.168.1.10 telnet user123 23 Default Gateway
192.168.1.30 - - - Router
192.168.1.50 ssh user123 22 Router,Cisco
192.168.1.60 ssh root 22 CentOS webserver
192.168.1.100 - - - Switch Wireless
192.168.1.200 ssh root 22 CentOS File server
foo.com ssh root 22 CentOS
foo.com ssh root 10022 FedoraCore7
ftp.foo.jp ftp user123 10021 this is ftp, Passwd:pass123

でしたあー。
なにかありましたらコメントへどぞ^ー^

.
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
皐月待つ花橘の香をかげば
皐月待つ花橘の香をかげば
男性 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

過去の記事一覧

検索 検索

よしもとブログランキング

もっと見る

[PR]お得情報

数量限定!イオンおまとめ企画
「無料お試しクーポン」か
「値引きクーポン」が必ず当たる!
ふるさと納税サイト『さとふる』
実質2000円で特産品がお手元に
11/30までキャンペーン実施中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事