Serveur d'impression

Comment exécuter un script .sh sur un serveur distant (linux et ubuntu) en utilisant PuTTY dans Windows – Bien choisir son serveur d impression

Le 20 décembre 2021 - 7 minutes de lecture


Apprenez à automatiser des tâches complexes (et non exemptes d'erreurs) à partir de la ligne de commande à l'aide de PuTTY.

PuTTY n'a pas besoin d'être présenté car c'est l'un des utilitaires de console largement distants. PuTTY est un client SSH et telnet.

Bien que l'utilisation de la console soit déjà simple et facile, vous risquez parfois de faire des erreurs (et d'effacer accidentellement le dossier du projet). Vous pouvez automatiser les tâches de votre serveur sans taper tout ce dont vous avez besoin au quotidien (allez dans un dossier, faites quelque chose là-bas, puis quittez, accédez à un autre, etc.).

Facilitez la tâche à vous et à votre équipe. Dans cet article, vous apprendrez à exécuter un script shell de Windows vers un serveur distant à l'aide de PuTTY et de l'invite de commande Windows.

Création d'un fichier .sh

Généralement, un fichier .sh est un script shell que vous pouvez exécuter dans un terminal. Ce format de fichier est couramment utilisé pour les fichiers shell Unix, créés par le programme utilitaire Unix shar.

Est-ce sûr ?

Vous pouvez trouver étrange que vous deviez effectuer une autre tâche manuellement afin d'exécuter un fichier. Mais c'est en partie à cause d'un fort besoin de sécurité.

Fondamentalement, lorsque vous téléchargez et exécutez un script bash, c'est la même chose que quelqu'un qui vous dit "exécutez toutes ces commandes dans l'ordre sur votre ordinateur, je promets que les résultats seront bons". Demandez-vous si vous faites confiance à la partie qui a fourni ce fichier, demandez-vous si vous êtes sûr d'avoir téléchargé le fichier depuis le même endroit que vous le pensiez, peut-être même jetez-vous un coup d'œil à l'intérieur pour voir si quelque chose ne semble pas à sa place (bien que cela nécessite que vous sachiez quelque chose sur les commandes *nix et la programmation bash).

Conclusion : n'exécutez que les commandes que vous connaissez, et seulement si vous savez comment elles fonctionnent.

Pour commencer, créez un fichier quelque part avec l'extension .sh (fichier_commande.sh) quelque part. Ensuite, écrivez un script shell.

Dans cet exemple (le plus basique), nous allons imprimer la date dans la console Putty.

# fichier_commande.sh

#Imprimer la date en mastic
echo "date"
# Ne fermez pas le mastic pour voir la sortie de la date
read -rsp $'Appuyez sur n'importe quelle touche pour continuer...n' -n1 touche

C'était, vraiment facile n'est-ce pas ?.

Si vous le souhaitez, commencez à créer le vôtre, l'exemple suivant montre une interaction de base avec les commandes que vous exécutez normalement à l'aide de putty (commande subversion mise à jour svn):

Noter: comme c'est la première fois que vous créez un fichier .sh à exécuter, assurez-vous de ce que vous faites pour éviter tout dommage que vous pourriez faire à votre serveur. Nous vous recommandons de tester uniquement avec le script précédent et lorsque vous aurez plus d'expérience, essayez avec le vôtre.

# commande.sh

# Créer une variable nommée directoryPath
# il contient l'emplacement de votre projet
directoryPath=/var/www/vhosts/myproject
# Accédez au projet à l'aide de la commande cd
cd $chemin_répertoire
# Mettre à jour à l'aide de la commande subversion
mise à jour svn
# Prêt ! c'était tout.
# Mais faisons autre chose !
# Supprimer le contenu d'un dossier dans le projet
# Remarque : le nom du dossier est "deleteMe" et il se trouve dans /myproject
# Par conséquent, le chemin est relatif à l'endroit où nous nous trouvons.
# Chemin réel du dossier = /var/www/vhosts/myproject/deleteMe
folderToDelete=deleteMe
#Naviguez jusqu'au dossier deleteMe
cd $dossierÀSupprimer
#Supprimer le contenu à l'aide de la commande rm
rm -rf *

# Part de gâteau !

Commencez à lire plus sur tout ce que vous pouvez faire avec les fichiers .sh sur votre serveur. Maintenant que notre script est prêt, il ne nous reste plus qu'à apprendre à l'exécuter automatiquement.

Exécution du script à l'aide de PuTTY à partir de l'invite de commande Windows

Maintenant que votre fichier de script est prêt et que vous savez (théoriquement) ce que vous voulez en faire, il ne nous reste plus qu'à l'exécuter et à gagner un temps précieux.

La structure de la commande est la suivante :

putty.exe [connection (-ssh)] [[[[[email protected]] [parameter (-pw password)] [parameter (-m (read a remote command or script from a file) sh file to local path)]

Til -m L'option s'attend à recevoir un nom de fichier local et elle lira une commande à partir de ce fichier.
Avec certains serveurs (en particulier les systèmes Unix), vous pouvez même mettre plusieurs lignes dans ce fichier et exécuter plus d'une commande en séquence, ou tout un script shell ; mais c'est sans doute un abus et on ne peut pas s'attendre à ce qu'il fonctionne sur tous les serveurs. En particulier, il est connu de ne pas fonctionner avec certains serveurs « embarqués », comme les routeurs Cisco.
Cette option n'est pas disponible dans les outils de transfert de fichiers PSCP et PSFTP.

L'intégralité de la commande peut être exécutée facilement à l'invite de commande (cmd.exe) dans Windows, par exemple :

C:cheminversputty.exe -ssh [email protected]    -pw "mot de passe" -m "C:cheminverscommand_sh_script_file.sh"

# Exemple

C:Program FilesPuttyputty.exe -ssh [email protected]    -pw "ComplexPassword" -m "C:UsersAdminDesktopcommand_file.sh"

Noter : au lieu d'utiliser le chemin complet vers l'exécutable putty, vous pouvez définir une variable d'environnement pour putty dans Windows, puis l'utiliser comme %mastic%.

Ouvrez le cmd.exe et exécutez la commande en remplaçant respectivement les identifiants et les paramètres :

Implémentation du mastic cmd.exe

Enfin, après l'exécution de votre commande dans le cmd.exe , putty sera ouvert et votre script sera exécuté comme nous l'avons fait avec le premier exemple, la date du serveur sera imprimée dans la console :

Script Shell

Pointe : vous pouvez créer une interface utilisant un autre langage comme C# pour automatiser encore plus en un seul clic

S'amuser .

Capturer la sortie du mastic (facultatif)

Si votre script bash n'est pas simple (il peut générer une sortie avec des informations sur les erreurs, les informations, etc.), vous souhaiterez peut-être enregistrer le contenu pour l'analyser lorsque l'exécution du script est fermée.

Comme putty ferme normalement la console s'il n'y a pas d'instruction qui la met en pause lorsque la dernière ligne de votre script est exécutée et qu'il n'y a aucun moyen de rediriger la sortie (mais réalisable avec l'utilitaire plink), nous devons spécifier cette tâche à l'application PuTTY.

1) Ouvrez putty, cliquez sur l'icône du haut et sélectionnez modifier les paramètres.

Étape 1 Putty se connecte au fichier externe

2) Cliquez sur l'élément de journalisation dans la liste de droite. Sélectionnez maintenant le bouton d'option Toutes les sorties de session dans la zone de connexion de session.

Sortie du journal de l'étape 2 de Putty dans un fichier externe

Enfin, choisissez un chemin vers le fichier putty.log dans votre système et cliquez sur Appliquer.

Toutes les sorties générées par putty seront écrites dans ce fichier journal.

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.