Traduction en shell de mon petit algorithme
leohan
Messages postés
1
Statut
Membre
-
foobar47 Messages postés 13654 Statut Contributeur -
foobar47 Messages postés 13654 Statut Contributeur -
Bonjour !
J'aimerais traduire en langage shell linux le petit algorithme suivant :
Se connecter au serveur1, rentrer automatiquement login et mot de passe
vérifier que le process toto et le process titi sont bien présents
si oui afficher OK, si non afficher NOK
Se connecter au serveur2, ...
et ainsi de suite sachant que j'ai 20 serveurs dont je veux vérifier que les applicatifs tournent bien, et ce serait mieux d'avoir un script auto lancé sur une seule machine, plutôt que de se connecter à la mano sur chacun des 20 serveurs...
Quelqu'un peut-il m'aider SVP ?
(je crois qu'il existe les instructions rlogin et rsh mais je ne sais pas si ça marcherait... ? qu'elle est la syntaxe ? je n'ai pas de contraintes liées à la sécurité donc pas la peine de faire du ssh ;))
J'aimerais traduire en langage shell linux le petit algorithme suivant :
Se connecter au serveur1, rentrer automatiquement login et mot de passe
vérifier que le process toto et le process titi sont bien présents
si oui afficher OK, si non afficher NOK
Se connecter au serveur2, ...
et ainsi de suite sachant que j'ai 20 serveurs dont je veux vérifier que les applicatifs tournent bien, et ce serait mieux d'avoir un script auto lancé sur une seule machine, plutôt que de se connecter à la mano sur chacun des 20 serveurs...
Quelqu'un peut-il m'aider SVP ?
(je crois qu'il existe les instructions rlogin et rsh mais je ne sais pas si ça marcherait... ? qu'elle est la syntaxe ? je n'ai pas de contraintes liées à la sécurité donc pas la peine de faire du ssh ;))
A voir également:
- Traduction en shell de mon petit algorithme
- Classic shell - Télécharger - Personnalisation
- Google traduction photo - Guide
- Waldik traduction ✓ - Forum Loisirs / Divertissements
- Kif'n'dir traduction ✓ - Forum Windows
- Comment imprimer une photo en petit ✓ - Forum Photo numérique
8 réponses
Salut,
https://www.nagios.com/
Tu n'as pas trop le choix, pour la connexion, t'es obligé de faire du ssh.
SSH te permet en plus d'éxécuter des commandes à distance.
Voici une ébauche, vite fait :
Evidemment, cela implique que tes binaires soient "joignables" par le shell.
Sinon, il faut préciser /bin/ps -- /bin/grep -- etc...
A toi de l'adapter en fonction de tes besoins.
Evidemment, ce script n'a pas la prétention d'être pleinement optimiser...
;-)
A++
https://www.nagios.com/
Tu n'as pas trop le choix, pour la connexion, t'es obligé de faire du ssh.
SSH te permet en plus d'éxécuter des commandes à distance.
Voici une ébauche, vite fait :
#!/bin/sh #declaration des machines srv1="192.168.2.202" srv2="192.168.0.2" srv3=...... #declaration des utilisateurs user1="root" usre2="test" #declaration des services service1="httpd" service2="sshd" service3="" # on fait du ssh puis on execute la commande ps # pas besoin de voir l'affichage #si tu veux voir l'affichage, retire le "> /dev/null" #Test du service1 sur le serveur1 ssh $user1@$srv1 "ps -ef | grep $service1 | grep -v grep" > /dev/null # si il n'y a pas d'erreur if [ $? -eq 0 ]; then #on affiche ok echo "Le process $service1 tourne" #sinon else #on affiche pas ok echo "Le process $service1 ne tourne pas" fi #Test du service2 sur le serveur1 ssh $user1@$srv1 "ps -ef | grep $service2 | grep -v grep" > /dev/null # si il n'y a pas d'erreur if [ $? -eq 0 ]; then #on affiche ok echo "Le process $service2 tourne" #sinon else #on affiche pas ok echo "Le process $service2 ne tourne pas" fi #fin du code
Evidemment, cela implique que tes binaires soient "joignables" par le shell.
Sinon, il faut préciser /bin/ps -- /bin/grep -- etc...
A toi de l'adapter en fonction de tes besoins.
Evidemment, ce script n'a pas la prétention d'être pleinement optimiser...
;-)
A++
Mais je t'en prie !!
Ca marche au moins ??
N'oublie pas de rendre ton script executable avec cette commande :
chmod 755 script.sh
Puis tu l'executes comme ceci :
./script.sh
Ca marche au moins ??
N'oublie pas de rendre ton script executable avec cette commande :
chmod 755 script.sh
Puis tu l'executes comme ceci :
./script.sh
ça ne marche pas car il y a une erreur d'autentification : j'ai cherché sur plusieurs sites parlant de ssh et j'ai vu qu'il fallait un couple de clés publique/privée.
J'ai donc fait :
sur la machine qui appelle :
cd ~/.ssh
ssh-keygen -t dsa
(pas de passphrase)
deux clés ont été générées. Ensuite, je voulais commencer par un truc simple c'est-à-dire faire un ssh depuis ma machnie 1 vers ma machine 1, donc j'ai copié la clef publique dans un fichier authorized_keys (à ce stade, mes 2 clés et mon fichier authorized sont tous les 3 dans le répertoire /root/.ssh)
Problème, ça ne marche pas :(
lorsque je tape :
ssh root@nom_du_serveur1
il me demande mon mot de passe, et quand je le rentre ça me dit qu'il est incorrect, access denied !!
j'comprends pas trop :( as-tu une idée ?
J'ai donc fait :
sur la machine qui appelle :
cd ~/.ssh
ssh-keygen -t dsa
(pas de passphrase)
deux clés ont été générées. Ensuite, je voulais commencer par un truc simple c'est-à-dire faire un ssh depuis ma machnie 1 vers ma machine 1, donc j'ai copié la clef publique dans un fichier authorized_keys (à ce stade, mes 2 clés et mon fichier authorized sont tous les 3 dans le répertoire /root/.ssh)
Problème, ça ne marche pas :(
lorsque je tape :
ssh root@nom_du_serveur1
il me demande mon mot de passe, et quand je le rentre ça me dit qu'il est incorrect, access denied !!
j'comprends pas trop :( as-tu une idée ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
As-tu configurer ton serveur pour l'authentification par clé?
Par défaut c'est par password. Donc les clés ne servent à rien.
Ca suffit d'avoir un compte sur le serveur et de se connecter avec son password.
Si tu veux une authentification par clé publique regarde dans le fichier de configuration
lance la commamnde avec l'option -v pour mode verbeux
P.S. et n'oublie pas d'avoir la clé privé sur le pc ou compte client
As-tu configurer ton serveur pour l'authentification par clé?
Par défaut c'est par password. Donc les clés ne servent à rien.
Ca suffit d'avoir un compte sur le serveur et de se connecter avec son password.
Si tu veux une authentification par clé publique regarde dans le fichier de configuration
PubkeyAuthentication yes # Let people use keys to authenticate AuthorizedKeysFile .ssh/authorized_keys # path to the authorized keys PasswordAuthentication no # NO login/password auth
lance la commamnde avec l'option -v pour mode verbeux
ssh -v root@nom_du_serveur1lami20j
P.S. et n'oublie pas d'avoir la clé privé sur le pc ou compte client
Vérifie que tu n'as pas interdit à l'utilisateur root de se connecter sur ssh.
Une option du genre :
PermitRootLogin Yes|No
Pas besoin de clé publique dans ton cas. Enfin, je ne pense pas.
Vérifie aussi que le firewall laisse passer ssh sur tous les serveurs.
A++
Une option du genre :
PermitRootLogin Yes|No
Pas besoin de clé publique dans ton cas. Enfin, je ne pense pas.
Vérifie aussi que le firewall laisse passer ssh sur tous les serveurs.
A++
Salut,
Pas besoin de clé publique dans ton cas.
Ben, s'il les a crées pourquoi ne pas les utiliser?
Bien sur il peut garder l'authentification par password, à lui de voir.
J'ai donc fait :
sur la machine qui appelle :
cd ~/.ssh
ssh-keygen -t dsa
(pas de passphrase)
deux clés ont été générées. Ensuite, je voulais commencer par un truc simple c'est-à-dire faire un ssh depuis ma machnie 1 vers ma machine 1, donc j'ai copié la clef publique dans un fichier authorized_keys (à ce stade, mes 2 clés et mon fichier authorized sont tous les 3 dans le répertoire /root/.ssh)
lami20j
Pas besoin de clé publique dans ton cas.
Ben, s'il les a crées pourquoi ne pas les utiliser?
Bien sur il peut garder l'authentification par password, à lui de voir.
J'ai donc fait :
sur la machine qui appelle :
cd ~/.ssh
ssh-keygen -t dsa
(pas de passphrase)
deux clés ont été générées. Ensuite, je voulais commencer par un truc simple c'est-à-dire faire un ssh depuis ma machnie 1 vers ma machine 1, donc j'ai copié la clef publique dans un fichier authorized_keys (à ce stade, mes 2 clés et mon fichier authorized sont tous les 3 dans le répertoire /root/.ssh)
lami20j