GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter des commandes Shell via un serveur HTTP

Aujourd'hui, nous allons discuter d'un utilitaire intéressant et utile appelé "shell2http" qui peut être utilisé pour exécuter des commandes shell via le serveur http. Vous pouvez exécuter n'importe quelle commande sur votre machine Linux et envoyer la sortie à votre collègue ou ami sur le réseau local pour les examiner. Il peut visualiser la sortie sur un navigateur Web. Cet outil peut être utile si vous ne souhaitez pas donner l'accès SSH à votre ami. Demandez-lui simplement quelle sortie de commande il aimerait voir, et exécutez cette commande dans votre système local et permettez-lui de la visualiser sur son navigateur Web depuis n'importe où sur le réseau local. Votre ami n'a pas besoin d'un accès SSH pour afficher les résultats de n'importe quelle sortie.

Télécharger - Guide gratuit :"Le guide de programmation du module du noyau Linux"

shell2http - Exécuter des commandes Shell via un serveur HTTP

shell2http peut être téléchargé à partir du lien suivant en fonction de la distribution que vous utilisez. Il prendra en charge GNU/Linux, Windows et Mac OS X.

  • Télécharger shell2http

Ou exécutez les commandes suivantes pour le télécharger depuis le Terminal :

Assurez-vous d'avoir installé le téléchargeur de ligne de commande wget et outil de compression décompresser .

Sur les systèmes basés sur RPM, exécutez la commande suivante en tant qu'utilisateur root pour les installer.

$ yum install wget unzip

Sur les systèmes basés sur DEB, exécutez :

$ sudo apt-get install wget unzip

Pour télécharger shell2http 64 bits :

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

Pour télécharger le shell 32 bitshttp :

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

Extrayez le fichier compressé à l'emplacement de votre choix.

$ unzip shell2http-1.7.linux.xxx.zip

Accédez au dossier extrait et commencez à utiliser shell2http.

Supposons que votre ami souhaite afficher la version du noyau Linux installée sur votre système.

Pour ce faire, exécutez :

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

Ici, 192.168.1.150 est l'adresse IP de votre système local. 8080 est le numéro de port. /noyau - est le chemin pour afficher la sortie de la commande. Et "uname -r" est la commande pour afficher la version du noyau de votre système.

Exemple de résultat :

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

Vous devez probablement ouvrir le port "8080" dans votre pare-feu ou votre routeur. Sur les systèmes qui utilisent firewalld (par exemple RHEL, CentOS), exécutez la commande suivante en tant qu'utilisateur root pour ouvrir le port 8080 :

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

Redémarrez le service firewalld à l'aide de la commande :

# firewall-cmd --reload

Sur les systèmes Debian et Ubuntu, exécutez :

$ sudo ufw allow 8080

Assurez-vous simplement que le port 8080 n'a pas été utilisé par d'autres applications. Si c'est le cas, mentionnez un port différent dans la commande et autorisez également ce port via le pare-feu.

Maintenant, dites à votre ami d'ouvrir son navigateur Web et de le diriger vers "http://IP-address:8080/kernel" ou "http://hostname:8080/kernel" . C'est aussi simple que ça.

Exemple de résultat :

Si votre ami souhaite analyser l'utilisation du disque, exécutez simplement la commande suivante sur votre système local.

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

Et, demandez-lui d'ouvrir le chemin - http://IP-address:8080/diskusage dans son navigateur Web.

Pour quitter la commande, appuyez sur CTRL+C .

Plutôt pratique, n'est-ce pas ? Bien sûr, ça l'est !

Vous pouvez également combiner deux commandes et envoyer les sorties à votre ami comme ci-dessous.

Dans l'exemple ci-dessous, je vais exécuter du et ps commandes et envoyer la sortie au serveur http.

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

Exemple de résultat :

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

Avez-vous remarqué la commande ci-dessus ? Je n'ai pas mentionné l'adresse IP de mon système. shell2http fonctionnera sans mentionner l'adresse IP ou le nom d'hôte.

Maintenant, votre ami peut voir la sortie de l'espace disque à partir de l'URL - http://IP-address:8080/diskspace , et affichez le résultat de la commande "ps" à l'aide de l'URL - http://IP-address:8080/ps .

Sortie de l'espace disque :

Sortie de la commande PS :

Avis de non-responsabilité : Utilisez l'outil shell2http avec prudence uniquement dans votre réseau de confiance. Votre serveur peut facilement être compromis si vous ne prenez pas les précautions nécessaires.


Linux
  1. Comment affecter la sortie d'une commande Linux à une variable

  2. Comment mapper une commande Vim pour exécuter des commandes Bash basées sur OS ?

  3. Comment savoir si la sortie d'une commande ou d'un script shell est Stdout ou Stderr ?

  4. Comment exécuter des commandes dans Gnuplot à l'aide d'un script Shell ?

  5. Comment utiliser Cat, Tac, More, Less – Commandes Linux

Comment rediriger HTTP vers HTTPS dans Nginx

Comment exécuter une commande Shell avec Python

Comment exécuter automatiquement les scripts et commandes de démarrage Linux

Comment rediriger la sortie de la commande shell

Comment exécuter une commande dans un script shell ?

Comment SSH au serveur via Linux