GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire i comandi della shell tramite il server HTTP

Oggi parleremo di un'utilità interessante e utile chiamata "shell2http" che può essere utilizzato per eseguire comandi di shell tramite il server http. Puoi eseguire qualsiasi comando sulla tua macchina Linux e inviare l'output al tuo collega o amico sulla rete locale per esaminarli. Può visualizzare l'output su un browser web. Questo strumento potrebbe essere utile se non vuoi concedere l'accesso SSH al tuo amico. Chiedigli semplicemente quale output del comando vorrebbe vedere ed esegui quel comando nel tuo sistema locale e consentigli di visualizzarlo sul suo browser web da qualsiasi punto della rete locale. Il tuo amico non ha bisogno di un accesso SSH per visualizzare i risultati di qualsiasi output.

Scarica - Guida gratuita:"Guida alla programmazione del modulo del kernel Linux"

shell2http - Esegui comandi Shell tramite server HTTP

shell2http può essere scaricato dal seguente link a seconda della distribuzione in uso. Supporterà GNU/Linux, Windows e Mac OS X.

  • Scarica shell2http

Oppure, esegui i seguenti comandi per scaricarlo dal Terminale:

Assicurati di aver installato il downloader della riga di comando wget e lo strumento di compressione decomprimi .

Sui sistemi basati su RPM, esegui il seguente comando come utente root per installarli.

$ yum install wget unzip

Sui sistemi basati su DEB, esegui:

$ sudo apt-get install wget unzip

Per scaricare shell2http a 64 bit:

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

Per scaricare la shell a 32 bit http:

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

Estrai il file compresso in qualsiasi posizione a tua scelta.

$ unzip shell2http-1.7.linux.xxx.zip

Vai alla cartella estratta e inizia a usare shell2http.

Diciamo che il tuo amico vuole visualizzare la versione del kernel Linux installata del tuo sistema.

Per farlo, esegui:

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

Qui, 192.168.1.150 è l'indirizzo IP del tuo sistema locale. 8080 è il numero di porta. /kernel - è il percorso per visualizzare l'output del comando. E "uname -r" è il comando per visualizzare la versione del kernel del tuo sistema.

Risultato di esempio:

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

Probabilmente devi aprire la porta "8080" nel tuo firewall o router. Sui sistemi che utilizzano firewalld (ad es. RHEL, CentOS), esegui il seguente comando come utente root per aprire la porta 8080:

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

Riavvia il servizio firewalld usando il comando:

# firewall-cmd --reload

Sui sistemi Debian e Ubuntu, esegui:

$ sudo ufw allow 8080

Assicurati solo che la porta 8080 non sia stata utilizzata da altre applicazioni. Se lo è, menziona una porta diversa nel comando e consenti anche quella porta tramite il firewall.

Ora, dì al tuo amico di aprire il suo browser web e puntarlo su "http://IP-address:8080/kernel" o "http://nomehost:8080/kernel" . È così semplice.

Risultato di esempio:

Se il tuo amico vuole analizzare l'utilizzo del disco, esegui il seguente comando sul tuo sistema locale.

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

E chiedigli di aprire il percorso - http://indirizzo-IP:8080/diskusage nel suo browser web.

Per uscire dal comando, premi CTRL+C .

Abbastanza utile, non è vero? Certo che lo è!

Puoi anche combinare due comandi e inviare gli output al tuo amico come di seguito.

Nell'esempio seguente, eseguirò du e ps comandi e invia l'output al server http.

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

Risultato di esempio:

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

Hai notato il comando sopra? Non ho menzionato l'indirizzo IP del mio sistema. shell2http funzionerà senza menzionare anche l'indirizzo IP o il nome host.

Ora, il tuo amico può visualizzare l'output dello spazio su disco dall'URL - http://indirizzo-IP:8080/spazio disco e visualizza l'output del comando "ps" utilizzando l'URL - http://IP-address:8080/ps .

Output spazio su disco:

Uscita del comando PS:

Disclaimer: Usa lo strumento shell2http con cautela solo all'interno della tua rete affidabile. Il tuo server può essere facilmente compromesso se non hai preso le precauzioni necessarie.


Linux
  1. Come assegnare l'output di un comando Linux a una variabile

  2. Come eseguire un comando in Shell senza salvarlo nella cronologia? [Suggerimenti per Linux]

  3. Come usare Cat, Tac, More, Less – Comandi Linux

  4. Esegui i comandi sulla macchina remota tramite PHP

  5. Reindirizzamento dell'output del comando nella finestra mobile

Come reindirizzare da HTTP a HTTPS in Nginx

Come eseguire un comando Shell con Python

Come eseguire automaticamente script e comandi di avvio di Linux

Come reindirizzare l'output del comando della shell

Come eseguire un comando in uno script della shell?

Come eseguire l'SSH sul server tramite Linux