今日は、 "shell2http"と呼ばれる面白くて便利なユーティリティについて説明します。 これは、httpサーバーを介してシェルコマンドを実行するために使用できます。 Linuxボックスで任意のコマンドを実行し、ローカルネットワーク上の同僚または友人に出力を送信してそれらを確認できます。 S/HeはWebブラウザで出力を表示できます。このツールは、友達にSSHアクセスを許可したくない場合に役立つことがあります。表示したいコマンドの出力を尋ねて、ローカルシステムでそのコマンドを実行し、ローカルネットワーク上のどこからでもWebブラウザで表示できるようにします。友達は、出力の結果を表示するためにSSHアクセスを必要としません。
ダウンロード -無料ガイド:「Linuxカーネルモジュールプログラミングガイド」shell2http-HTTPサーバー経由でシェルコマンドを実行
shell2httpは、使用するディストリビューションに応じて、次のリンクからダウンロードできます。 GNU / Linux、Windows、およびMacOSXをサポートします。
- shell2httpをダウンロード
または、次のコマンドを実行して、ターミナルからダウンロードします。
コマンドラインダウンローダーwgetがインストールされていることを確認してください および圧縮ツール解凍 。
RPMベースのシステムでは、rootユーザーとして次のコマンドを実行してインストールします。
$ yum install wget unzip
DEBベースのシステムでは、次を実行します。
$ sudo apt-get install wget unzip
64ビットshell2httpをダウンロードするには:
$ wget https://github.com/msoap/shell2http/releases/download/1.7/shell2http-1.7.linux.amd64.zip
32ビットシェルをダウンロードするにはhttp:
$ wget https://github.com/msoap/shell2http/releases/download/1.7/shell2http-1.7.linux.386.zip
圧縮ファイルを任意の場所に抽出します。
$ unzip shell2http-1.7.linux.xxx.zip
解凍したフォルダに移動し、shell2httpの使用を開始します。
友人が、インストールされているLinuxカーネルバージョンのシステムを表示したいとします。
これを行うには、次を実行します:
$ shell2http -host 192.168.1.150 -port 8080 /kernel "uname -r"
ここでは、 192.168.1.150 ローカルシステムのIPアドレスです。 8080 ポート番号です。 /カーネル -は、コマンドの出力を表示するためのパスです。そして"uname-r" システムのカーネルバージョンを表示するコマンドです。
出力例:
2017/02/03 14:57:21 register: /kernel (uname -r) 2017/02/03 14:57:21 listen http://192.168.1.150:8080/
おそらく、ファイアウォールまたはルーターのポート「8080」を開く必要があります。 Firewalldを使用するシステム(RHEL、CentOSなど)では、rootユーザーとして次のコマンドを実行してポート8080を開きます。
# firewall-cmd --add-port=8080/tcp --permanent
コマンドを使用してfirewalldサービスを再起動します:
# firewall-cmd --reload
DebianおよびUbuntuシステムでは、次を実行します:
$ sudo ufw allow 8080
ポート8080が他のアプリケーションで使用されていないことを確認してください。そうである場合は、コマンドで別のポートに言及し、ファイアウォール経由でもそのポートを許可します。
次に、友達にWebブラウザを開いて、 "http:// IP-address:8080 / kernel"を指すように指示します。 または"http:// hostname:8080 / kernel" 。とても簡単です。
出力例:
友人がディスク使用量を分析したい場合は、ローカルシステムで次のコマンドを実行するだけです。
$ shell2http -host 192.168.1.150 -port 8080 /diskusage "du -h"
そして、パスを開くように彼に依頼します- http:// IP-address:8080 / diskusage 彼のウェブブラウザで。
コマンドを終了するには、 CTRL + Cを押します。 。
とても便利ですね。もちろんです!
次のように、2つのコマンドを組み合わせて、出力を友達に送信することもできます。
以下の例では、 duを実行します およびps コマンドを実行し、出力をhttpサーバーに送信します。
$ shell2http /diskspace "df -h" /ps "ps aux"2017/02/03 15:09:34 register: /diskspace (df -h)
出力例:
2017/02/03 15:09:34 register: /ps (ps aux) 2017/02/03 15:09:34 listen http://:8080/
上記のコマンドに気づきましたか?システムのIPアドレスについては触れませんでした。 shell2httpは、IPアドレスやホスト名についても言及しなくても機能します。
これで、友達はURLからディスクスペースの出力を表示できます- http:// IP-address:8080 / diskspace 、URLを使用して「ps」コマンドの出力を表示します- http:// IP-address:8080 / ps 。
ディスクスペース出力:
PSコマンド出力:
免責事項: 信頼できるネットワーク内でのみ、shell2httpツールを注意して使用してください。必要な予防措置を講じなかった場合、サーバーが簡単に危険にさらされる可能性があります。