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.