6
votes

Connectez-vous au putay et à la commande de type

Je veux me connecter à Putty et je veux faire quelques étapes:

  1. Connectez-vous à Putty
  2. Type quelques commandes pour abattre le serveur
  3. traverser sur le chemin particulier
  4. Supprimer le fichier de l'annuaire
  5. Démarrez à nouveau le serveur

    Je dois écrire le code dans Windows. Mais mon serveur est sous Linux. Comment vais-je procéder? Merci d'avance


2 commentaires

Vous pouvez utiliser Tissu pour faire ces étapes.


Je pense que vous voulez une connexion à un serveur SSH, vous pouvez donc utiliser lag.net/paramiko . Vous n'aurez pas besoin de mastic!


4 Réponses :


3
votes

Vous pouvez utiliser le code similaire à:

Commande = "PLINK.EXE -SSH Nom d'utilisateur @" + nom d'hôte + "-PW Mot de passe -Batch \" exporter display = '"+ nom d'hôte +" /unix:0.0'; "

qui ouvrira un SSH au nom d'hôte souhaité à l'aide de nom d'utilisateur et mot de passe

arrêt: commande + = "sudo / sbin / halt \" "

Redémarrez: commande + = "sudo / sbin / redémarrage \" "

Ajoutez vos autres commandes en utilisant la même méthode que ci-dessus,

Exécuter la commande avec:

pid = subprocess.popen (commande) .pid

Comme indiqué par Tadeck, cela ne fonctionnera que sur une machine Windows qui tente de se connecter à une machine Linux.


3 commentaires

Bien sûr, votre solution est totalement dépendante de la plate-forme et ne fonctionnera que sur Windows Connexion au système Linux / Unix.


En effet c'est, mais c'est ce que l'op voulait et ce que j'ai fait très récemment.


@Tadeck, merci, j'aurais dû mentionner ce que vous avez dit, c'était une surveillance de ma part, je vais l'ajouter à l'exactitude.



9
votes

Ce dont vous avez besoin est paramiko , mais cela peut être un peu compliqué Pour un débutant.

Pour des tâches simples et répétitives, vous pouvez utiliser mon script - c'est Situé sur github (https://github.com/tadeck/ssh-matic) et a été créé pour apprendre de python. Il est basé sur une interface anti-python SSH sympathique de quelqu'un d'autre à paramiko ( Code accessible ici ).

Utilisation du module SSH mentionné Connexion au serveur et exécuter une commande est plutôt simple: xxx < P> En gros, ce dont vous avez besoin n'est pas du mastic, mais un module SSH à Python. Ce module doit fonctionner à la fois sur Windows et Linux. Utilisation de mon script, il vous suffira de travailler sur la commande que vous souhaitez invoquer, plus ajuster le code à vos besoins.

bonne chance. Dis-moi si cela aidait.


3 commentaires

Pouvez-vous télécharger le module sur PYPI s'il vous plaît?


Lien vers Paramiko est mort.


Pouvez-vous inclure le lien vers "... ... Interface sympathique SSH Python ..."?



3
votes

Vous pouvez le faire:

# Use plink to open a connection to the remote shell
command = "plink.exe -ssh %s -batch" % credentials
sp = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
# Send commands to the shell as if they were read from a shell script
sp.stdin.write("command1\n")
sp.stdin.write("command2\n")
sp.stdin.close()
# read out the answers, if needed
ans = sp.stdout.read()
sp.wait()    


0 commentaires

3
votes
from pywinauto.application import Application
import time

app = Application ().Start (cmd_line=u'putty -ssh user_name@10.70.15.175')
putty = app.PuTTY
putty.Wait ('ready')
time.sleep (1)
putty.TypeKeys ("password")
putty.TypeKeys ("{ENTER}")
time.sleep (1)
putty.TypeKeys ("ls")
putty.TypeKeys ("{ENTER}")
I am using python 2.7. Code is running on Windows, and connect to remote Linux. it is working in my environment.

1 commentaires

Pouvez-vous suggérer une solution de contournement pour que cela soit attendu jusqu'à ce qu'un processus complexe comme RSYNC soit terminé, puis exécute d'autres commandes, merci d'avance