Vous êtes sur la page 1sur 7
Acervo & Lima Acervo Lima Comment exécuter des commandes Shell sur une machine distante en Python ? Laisser un commentaire / Picked, Python, python-utility / Par Acervo Lima Lexécution de commandes shell sur une machine distante n’est rien d'autre que I’exécution de commandes shell sur une autre machine et en tant qu’autre utilisateur sur un réseau informatique. Il y aura une machine maitre partir de laquelle la commande pourra étre envoyée et une ou plusieurs machines esclaves qui exécuteront les commandes recues. Commencer Nous utiliserons le protocole Websocket pour envoyer des commandes shell & la machine esclave et recevoir la sortie des commandes. Websocket offre une communication en duplex intégral sur une seule connexion TCP en temps réel. Le Python fournit une bibliothéque de sous - processus , une biblioth@que intégrée, qui permet a un nouveau processus de démarrer et de se connecter a leurs canaux dentrée, de sortie et d'erreur, La méthode getoutput de la bibliothéque de sous-processus exécute la commande et renvoie la sortie, si une erreur se produit, elle renvoie également les erreurs Vous comprendrez facilement son travail avec l'approche et la mise en ceuvre. Alors commencons. Approcher: ‘+ Créer un script machine Mater. + Créez une connexion socket et écoutez le socket de la machine esclave. ‘+ Acceptez la connexion une fois la demande de connexion effectuée. ‘+ Utilisez la méthode d’entrée pour obtenir une commande de l'utilisateur et encoder. + Utilisez ensuite la connexion socket pour envoyer la commande shell * Ensuite, recevez la sortie de la commande. ‘+ Créez un script de machine esclave. + Créez un Socket et connectez-le au socket de la machine Maitre. ‘+ Recevez la commande du maitre. ‘+ Exécutez la commande avec la méthode de sortie get du module de sous-processus. + Laméthode getoutput renvoie la sortie de la commande exécutée. + Encodez la sortie et envoyez-la a la machine maitre. Script machine maitre : import socket # Create socket with socket class. master = socket.socket() # Host is the IP address of master # machine. host = "9.0.0.0" # This will be the port that the # socket is bind. port = 8080 # binding the host and port to the # socket we created. master.bind((host, port)) # Listen method listens on the socket # to accept socket connection. master. listen(1) # This method accept socket connection # from the slave machine slave, address = master.accept() # When the slave is accepted, we can send # and receive data in real time while True: # input the command from the user print(">", end=" ") command = input() # encode the command and send it to the # slave machine then slave machine can # executes the command slave.send(conmand.encode()) # If the command is exit, close the connection if command == "exit": break # Receive the output of command, sent by the # slave machine.recv method accepts integer as # argument and it denotes no.of bytes to be # received from the sender. output = slave.recv(5008) print (output .decode()) # close method closes the socket connection between # master and slave. master.close() Script de la machine esclave: import socket import subprocess # Create socket with socket class. master = socket.socket() # Host is the IP address of master machine. host = "192.168.43.160" # This will be the port that master # machine listens. port = 8080 # connect to the master machine with connect # command. slave.connect((host, port)) while True: # receive the command from the master machine. # recv 1024 bytes from the master machine. command = slave.recv(124) .decode() print (command) # If the command is exit, close the connection. if command == "exit": break output = “output: \n" # getoutput method executes the command and # returns the output. output = subprocess. getoutput (command) # Encode and send the output of the command to # the master machine. slave. send(output .encode()) # close method closes the connection. slave.close() Attention geek ! Renforcez vos bases avec le Python Programming Foundation Course et apprenez les bases. \n Article écrit par kabilan et traduit par Acervo Lima de How to Execute Shell Commands in a Remote Machine in Python?. Licence: CCBY-SA Articles Similaires: 1. Surveillance de l'utilisation de la mémoire d'un programme Python en cours d'exécution 2.Gratter Reddit l'aide de Python 3. Construire un serveur HTTP de base a partir de zéro en Python 4,Comment utiliser Pickle pour enregistrer et charger des variables en Python? « Article précédent Laisser un commentaire Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec * Ecrivez ici... Nom* E-mai Site Internet ©. _Enregistrer mon nom, mon e-mail et mon site dans le navigateur pour mon prochain commentaire. Saisissez votre réponse en chiffres huit+9 = Publier un commentaire Articles récents Python | Facons de concaténer un booléen en string Python | Index des pandas.searchsorted() Python | Méthode Numpy np.herm2poly Python | Tranche de plage alternative dans la liste numpy.diag_indices() en Python Commentaires récents Archives septembre 2021 février 2021. © 2022 Acervo Lima, Certains droits réservés.

Vous aimerez peut-être aussi