Je veux écrire un script que je peux utiliser pour grep pour un processus sur un serveur distant, sur chaque serveur il y a déjà un compte utilisateur qui peut ssh avec un mot de passe, donc l'idée est ce scriptScript de shell à distance
- sudo pour compte utilisateur sans mot
- ssh au serveur distant
- commandes run (ps -ef | grep processname) affichage
- la sortie sur le serveur local
- fermer la connexion ssh
- sortie sur compte utilisateur passwordless
à la minute où j'ai:
if [ $1 = -r ]
then
su - useraccount
ssh $2 "ps -ef | grep process | grep -v grep"
exit
else
ps -ef | grep process | grep -v grep
fi
L'idée ici est que vous pouvez exécuter le script local si vous n'avez pas le - option r afin de fonctionner localement vous avez
script.sh processname
ou à distance
script.sh -r remotehost processname
J'ai la grep -v grep là becasue il me agace de voir ma commande grep dans la liste,
Je pense juste qu'il semble un peu plus propre
Toutes les idées?
Alors, quel est le problème? –
'su' démarre son propre shell, utilisez' su-username -c "votre commande ssh" '. – Wrikken
Merci oui cela a fonctionné, je peux obtenir le script à ssh sur le serveur distant, mais maintenant le problème est de passer les variables locales au serveur distant, donc si je lance 'script.sh -r remotehost processname' le nom du processus est $ 3 localement mais pas à distance –