|
便利シェルスクリプト:多数の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
一覧の左側に番号が振られていますね?webserverやwirelessなどの説明も右側に付いているから、どんな役割を持っているのかをすぐに思い出せます。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 その番号を引数に取ると、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.
fiecho Ex: 'local_nodes.sh 2' echo Number IPAddress UserName Description cat -n local_nodes.txt exit if [ $PWD/if_num.sh $1 -eq 1 ]; then
echo Please type one number as an argument.
fiCOMMAND=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あと、このスクリプトと同じディレクトリには以下のようなデータ用テキストファイルを置いておく必要があります。 適宜修正してくださいね。 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 でしたあー。
なにかありましたらコメントへどぞ^ー^ |

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- その他コンピュータ




