GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So führen Sie Shell-Befehle über einen HTTP-Server aus

Heute werden wir über ein interessantes und nützliches Dienstprogramm namens "shell2http" sprechen die verwendet werden können, um Shell-Befehle über einen http-Server auszuführen. Sie können beliebige Befehle auf Ihrer Linux-Box ausführen und die Ausgabe an Ihren Kollegen oder Freund im lokalen Netzwerk senden, um sie zu überprüfen. Er/sie kann die Ausgabe in einem Webbrowser anzeigen. Dieses Tool kann nützlich sein, wenn Sie Ihrem Freund keinen SSH-Zugriff gewähren möchten. Fragen Sie ihn einfach, welche Befehlsausgabe er sehen möchte, und führen Sie diesen Befehl in Ihrem lokalen System aus und erlauben Sie ihm, ihn von überall im lokalen Netzwerk in seinem Webbrowser anzuzeigen. Ihr Freund benötigt keinen SSH-Zugang, um die Ergebnisse einer Ausgabe anzuzeigen.

Herunterladen - Kostenloser Leitfaden:"Der Linux-Kernelmodul-Programmierleitfaden"

shell2http - Shell-Befehle über HTTP-Server ausführen

Shell2http kann je nach verwendeter Distribution über den folgenden Link heruntergeladen werden. Es unterstützt GNU/Linux, Windows und Mac OS X.

  • shell2http herunterladen

Oder führen Sie die folgenden Befehle aus, um es vom Terminal herunterzuladen:

Stellen Sie sicher, dass Sie den Befehlszeilen-Downloader wget installiert haben und Komprimierungstool unzip .

Führen Sie auf RPM-basierten Systemen den folgenden Befehl als Root-Benutzer aus, um sie zu installieren.

$ yum install wget unzip

Führen Sie auf DEB-basierten Systemen Folgendes aus:

$ sudo apt-get install wget unzip

So laden Sie 64-Bit-shell2http herunter:

$ wget https://github.com/msoap/shell2http/releases/download/1.7/shell2http-1.7.linux.amd64.zip

So laden Sie die 32-Bit-Shell http:

herunter
$ wget https://github.com/msoap/shell2http/releases/download/1.7/shell2http-1.7.linux.386.zip

Extrahieren Sie die komprimierte Datei an einem beliebigen Ort Ihrer Wahl.

$ unzip shell2http-1.7.linux.xxx.zip

Wechseln Sie in den extrahierten Ordner und beginnen Sie mit der Verwendung von shell2http.

Nehmen wir an, Ihr Freund möchte die installierte Linux-Kernel-Version Ihres Systems anzeigen.

Führen Sie dazu Folgendes aus:

$ shell2http -host 192.168.1.150 -port 8080 /kernel "uname -r"

Hier 192.168.1.150 ist die IP-Adresse Ihres lokalen Systems. 8080 ist die Portnummer. /kernel - ist der Pfad zum Anzeigen der Ausgabe des Befehls. Und "uname -r" ist der Befehl, um die Kernel-Version Ihres Systems anzuzeigen.

Beispielausgabe:

2017/02/03 14:57:21 register: /kernel (uname -r)
2017/02/03 14:57:21 listen http://192.168.1.150:8080/

Wahrscheinlich müssen Sie den Port "8080" in Ihrer Firewall oder Ihrem Router öffnen. Führen Sie auf Systemen, die Firewalld verwenden (z. B. RHEL, CentOS), den folgenden Befehl als Root-Benutzer aus, um Port 8080 zu öffnen:

# firewall-cmd --add-port=8080/tcp --permanent

Starten Sie den Firewalld-Dienst mit dem Befehl neu:

# firewall-cmd --reload

Führen Sie auf Debian- und Ubuntu-Systemen Folgendes aus:

$ sudo ufw allow 8080

Stellen Sie einfach sicher, dass der Port 8080 nicht von anderen Anwendungen verwendet wurde. Wenn dies der Fall ist, geben Sie im Befehl einen anderen Port an und lassen Sie diesen Port auch über die Firewall zu.

Sagen Sie Ihrem Freund jetzt, er soll seinen Webbrowser öffnen und ihn auf "http://IP-Adresse:8080/kernel" verweisen oder "http://hostname:8080/kernel" . So einfach ist das.

Beispielausgabe:

Wenn Ihr Freund die Festplattennutzung analysieren möchte, führen Sie einfach den folgenden Befehl auf Ihrem lokalen System aus.

$ shell2http -host 192.168.1.150 -port 8080 /diskusage "du -h"

Und bitten Sie ihn, den Pfad zu öffnen - http://IP-Adresse:8080/diskusage in seinem Webbrowser.

Um den Befehl zu beenden, drücken Sie STRG+C .

Ziemlich praktisch, nicht wahr? Natürlich ist es das!

Sie können auch zwei Befehle kombinieren und die Ausgaben wie unten an Ihren Freund senden.

Im folgenden Beispiel werde ich du ausführen und ps Befehle und senden Sie die Ausgabe an den http-Server.

$ shell2http /diskspace "df -h" /ps "ps aux"2017/02/03 15:09:34 register: /diskspace (df -h)

Beispielausgabe:

2017/02/03 15:09:34 register: /ps (ps aux)
2017/02/03 15:09:34 listen http://:8080/

Haben Sie den obigen Befehl bemerkt? Ich habe die IP-Adresse meines Systems nicht erwähnt. shell2http funktioniert auch ohne Angabe der IP-Adresse oder des Hostnamens.

Jetzt kann Ihr Freund die Ausgabe von Diskspace über die URL - http://IP-Adresse:8080/Diskspace - anzeigen , und sehen Sie sich die Ausgabe des Befehls "ps" mit der URL - http://IP-Adresse:8080/ps an .

Festplattenausgabe:

PS-Befehlsausgabe:

Haftungsausschluss: Verwenden Sie das Shell2http-Tool nur innerhalb Ihres vertrauenswürdigen Netzwerks mit Vorsicht. Ihr Server kann leicht kompromittiert werden, wenn Sie nicht die notwendigen Vorkehrungen getroffen haben.


Linux
  1. Wie führe ich einen Befehl in der Shell aus, ohne ihn im Verlauf zu speichern? [Linux-Tipps]

  2. Wie lösche ich die ersten/letzten 'n' Zeilen aus der Befehlsausgabe in der Shell?

  3. Wie ordnet man einen Vim-Befehl zu, um Bash-Befehle basierend auf Os auszuführen?

  4. Wie kann man feststellen, ob die Ausgabe eines Befehls oder Shell-Skripts Stdout oder Stderr ist?

  5. So verwenden Sie Cat, Tac, More, Less – Linux-Befehle

So leiten Sie HTTP zu HTTPS in Nginx um

So führen Sie einen Shell-Befehl mit Python aus

So führen Sie Linux-Startskripts und -Befehle automatisch aus

So leiten Sie die Shell-Befehlsausgabe um

Wie führe ich einen Befehl in einem Shell-Skript aus?

So führen Sie SSH zum Server über Linux