Bonjour,
Si j'ai une machine A qui ouvre un shell ssh sur une machine B.
Je cherche mais ne trouve pas comment lancer un script sur A quand la session ssh vers B se termine (exit propre ou coupure de courant peu importe).
Le top ce serait que ça soit un script général pour toutes mes sessions ssh y compris vers les autres machines.
Si je trouve pas, le truc qui existe déjà, je ferai un script ssh
que je mettrai dans mon PATH
qui fera passe plat au vrai ssh et qui lancera un autre script après. Il ressemblerait à ça :
#!/bin/bash
# Ici on pourrait mette un truc avant mais c'est pas ce que je veux pour l'instant
/usr/bin/ssh "$@"
# Et après le script si la connexion de la ligne ci dessus se clos alors le script se lance
~/.ssh/exitrc
La roue est facile a inventer mais comme je n'aime pas la réinventer j'aimerai savoir si ça existe déjà.
PI : Je suis un vil étourdi aussi je veux que dans mon terminal il y ai toujours le nom de la machine écrit en TRÈS GROS au début de mes sessions (le nom de la machine dans l'invite ne me suffit pas).
dans mon .bashrc
je mets à la fin :
toilet "${HOSTNAME^^}" -f block -w 1000|sed -e 'sR[_|]R█Rg'
Quand je vais sur une de mes machine ça marche. Mais quand j'en reviens ça ne le fait pas.
D'avance merci.
# des pistes
Posté par NeoX . Évalué à 6.
à la premiere question, en shell en general, tu as 3 séparateurs
si ca s'est bien passé :
&&
si ca s'est mal passé :
||
peut importe ce qu'il s'est passé :
;
donc ca donne par exemple
ssh user@machine && action_apres_fermeture.sh
pour avoir l'action si le ssh se termine bien (code retour 0)
[^] # Re: des pistes
Posté par blobmaster . Évalué à 2.
Merci mais ça m'obligerai à le faire à chaque fois.
Comme je l'ai dis je suis un vil étourdi. J'ai toute les chances d'oublier.
Automatiser cela rejoindrait ma proposition, en ajoutant la différenciation des types de retours.
J’espère une solution, clef en main, comme le fichier .ssh/rc mais chez l'appelant local et à la fermeture.
J'imagine que ça n'existe pas tout simplement :P
[^] # Re: des pistes
Posté par gUI (Mastodon) . Évalué à 4. Dernière modification le 16 avril 2021 à 09:03.
Tu peux peut-être te mettre un alias ou plutôt une fonction dans ton .bashrc ?
ssh() { env ssh $* && echo "fini"; }
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: des pistes
Posté par blobmaster . Évalué à 2.
+1 pour l'usage de env.
Je l'avais oublié… Merci
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.