#1 Le 23/06/2016, à 11:11
- Soze
Step by step vérification d'un script
Bonjour à tous,
Voilà je vous contacte car on m'a demandé de vérifier un script qui ne fonctionne plus.
En gros il fait des backups mais cela fais 5 ans qu'il n'en a plus fait.
Quels sont les étapes à faire pour voir pourquoi et comment réparer le fonctionnement du script ?
Je précise que je parle bien en dehors du code lui même !
Merci d'avance,
Soze
Plus d'info :
L'erreur que j'ai dans les logs du script :
The keychain process is not running, the processing is stopped without backup
Et voilà la partie du script qui renvoie cette erreur si une erreur est présente :
PROCESSUS=`ps -ef | grep ssh-agent | grep -cv 'grep'`
En gros ça test si le PROCESSUS est différent que 1, est si c'est différent que 1, ça revois l'erreur.
Dernière modification par Soze (Le 23/06/2016, à 11:38)
Hors ligne
#2 Le 23/06/2016, à 13:05
- J5012
Re : Step by step vérification d'un script
Quels sont les étapes à faire pour voir pourquoi et comment réparer le fonctionnement du script ?
Je précise que je parle bien en dehors du code lui même !
sans avoir le code, on peut parler encore longtemps ...
Hors ligne
#3 Le 23/06/2016, à 13:06
- Nairwolf
Re : Step by step vérification d'un script
Sans avoir accès au code, c'est difficile de savoir ce qui ne marche pas...
Si tu as besoin de débugger ton script tu peux lancer le script en utilisant l'option -x de cette manière :
bash -x script [arg1..]
A voir ce thread sur Stack Overflow qui pourra t'aider.
Sinon, ce n'est pas responsable de ton problème, mais la notation
PROCESSUS=`ps -ef | grep ssh-agent | grep -cv 'grep'`
n'est plus recommandé. Il faut privilégier cette notation :
PROCESSUS=$(ps -ef | grep ssh-agent | grep -cv 'grep')
Hors ligne
#4 Le 23/06/2016, à 13:08
- Watael
Re : Step by step vérification d'un script
salut,
pour être précis, la ligne copiée recherche ssh-agent dans la liste des processus actifs.
ça peut ne pas être une erreur du script, mais une modification de la configuration de la machine, ou du contexte d'exécution du script, car ssh-agent n'est pas actif !
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 23/06/2016, à 13:19
- Soze
Re : Step by step vérification d'un script
Je ne pense pas que le script soit en question comme je l'ai indiqué !
Ici je reçois une erreur précise du à une situation dans le script qui le coupe !
Comme l'indique Watael ...
Par contre, je suis un peu perplexe, car j'arrive à me connecter en SSH sur la machine ..
Comment puis-je vérifier que ssh-agent est actif et comment l'activer ?
Merci !
Hors ligne
#6 Le 23/06/2016, à 13:30
- Nairwolf
Re : Step by step vérification d'un script
Tu peux éventuellement retaper la commande du script pour vérifier le résultat. Même un simple "ps -ef | grep ssh-agent" devrait te permettre de vérifier si le ssh-agent tourne.
Hors ligne
#7 Le 23/06/2016, à 13:34
- J5012
Re : Step by step vérification d'un script
The keychain process is not running, the processing is stopped without backup
→ paquet keychain
Hors ligne
#8 Le 23/06/2016, à 13:59
- Soze
Re : Step by step vérification d'un script
The keychain process is not running, the processing is stopped without backup
→ paquet keychain
C'est à dire ? Dans le script il test le processus ssh agent uniquement je pense ...
Donc je ne comprends pas
Hors ligne
#9 Le 23/06/2016, à 14:03
- Nairwolf
Re : Step by step vérification d'un script
Tu as fait :
ps -ef | grep ssh-agent
?
Hors ligne
#10 Le 23/06/2016, à 14:14
- Soze
Re : Step by step vérification d'un script
Oui et j'ai obtenu ceci :
user 1755 1 0 12:33 ? 00:00:00 ssh-agent
user 1882 1821 0 15:14 pts/1 00:00:00 grep ssh-agent
Hors ligne
#11 Le 23/06/2016, à 14:30
- Nairwolf
Re : Step by step vérification d'un script
Etrange... Ton ssh-agent tourne bien. Tu peux vérifier en tapant la ligne complète :
PROCESSUS=`ps -ef | grep ssh-agent | grep -cv 'grep'`; echo $PROCESSUS"
cela devrait te renvoyer 1.
Donc c'est bien conforme à ce que tu attends de ton code. Après ne pouvant pas lire le reste de ton code, c'est difficile de t'aider davantage...
Hors ligne
#12 Le 23/06/2016, à 15:22
- littlejohn75
Re : Step by step vérification d'un script
Etrange... Ton ssh-agent tourne bien. Tu peux vérifier en tapant la ligne complète :
PROCESSUS=`ps -ef | grep ssh-agent | grep -cv 'grep'`; echo $PROCESSUS"
cela devrait te renvoyer 1.
Eh non ! cela devrat renvoyer une ligne contenant ss-agent
Sur une machine avec keychain
fp2x@drmas:~$ res=$(ps -edf | fgrep ssh-agent | fgrep -v grep) && echo ok || echo non
ok
fp2x@drmas:~$ echo $res
fp2x 12950 1 0 févr.23 ? 00:00:00 ssh-agent
fp2x@drmas:~$
En fait il aurait été plus judicieux de tester si on a une variable d'environnement SSH_AUTH_SOCK bien renseignée sur une bonne socket
fp2x@drmas:~$ env | fgrep SSH
SSH_AGENT_PID=12950
SSH_CLIENT=10.67.6.43 61643 22
SSH_TTY=/dev/pts/1
SSH_AUTH_SOCK=/tmp/ssh-mnBGDkAJeycM/agent.12949
SSH_CONNECTION=10.67.6.43 61643 10.67.24.196 22
fp2x@drmas:~$ ls -ls /tmp/ssh-mnBGDkAJeycM/agent.12949
0 srw------- 1 fp2x fp2x 0 févr. 23 14:41 /tmp/ssh-mnBGDkAJeycM/agent.12949
fp2x@drmas:~$
Une méthode similaire consiste à utiliser
fp2x@masime:~$ ssh-add -l
Could not open a connection to your authentication agent.
fp2x@masime:~$ ssh-add -l && echo ok || echo no agent
Could not open a connection to your authentication agent.
no agent
fp2x@masime:~$
Bref, je vous invite à tester ce genre de commandes dans le terminal qui vous sert de connexion ssh. Testez aussi l'utilisation de keychain
fp2x@drmas:~$ fgrep keychain .bashrc
eval `keychain --eval --agents ssh id_rsa id_dsa`
fp2x@drmas:~$
Cordialement,
Regards,
Mit freundlichen Grüssen,
مع تحياتي الخالصة
---
F. Petitjean
« Celui qui, parti de rien, n'est arrivé nulle part n'a de merci à dire à personne !! »
Pierre Dac
Hors ligne
#13 Le 23/06/2016, à 16:14
- Soze
Re : Step by step vérification d'un script
Bonjour,
J'ai testé vos commandes et voici ...
-bash-2.05b$ res=$(ps -edf | fgrep ssh-agent | fgrep -v grep) && echo ok ||echo non
ok
-bash-2.05b$ echo $res
savecol 1755 1 0 12:33 ? 00:00:00 ssh-agent
-bash-2.05b$ ssh-add -l
Could not open a connection to your authentication agent.
Hors ligne
#14 Le 23/06/2016, à 17:11
- littlejohn75
Re : Step by step vérification d'un script
Très fort ! Vous avez un processus ssh-agent qui tourne, mais qui ne sert à rien puisqu'il n'a pas été lancé de telle sorte qu'il lance lui-même un nouveau shell avec lequel on interagit avec le système.
C'est compliqué à expliquer
Il faut d'abord comprendre que c'est un modèle client-serveur.
Normalement, vous n'intervenez que sur le système client. Vous créez une instance d'un agent qui servira de médiateur pour fournir les réponses aux demandes d'authentification venant du serveur (distant) à votre place.
Création d'une instance de l'agent
fpetitjean@drsoseng:~$ old=$$
fpetitjean@drsoseng:~$ echo $old
19984
fpetitjean@drsoseng:~$ ps -l -p 19984
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1006 19984 19983 0 80 0 - 8158 wait pts/14 00:00:00 bash
fpetitjean@drsoseng:~$
fpetitjean@drsoseng:~$ ssh-agent bash
fpetitjean@drsoseng:~$ nnn=$$
fpetitjean@drsoseng:~$ echo $nnn
20164
fpetitjean@drsoseng:~$ ps -l -p 19984,20164
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1006 19984 19983 0 80 0 - 8158 wait pts/14 00:00:00 bash
0 S 1006 20164 19984 0 80 0 - 8115 wait pts/14 00:00:00 bash
fpetitjean@drsoseng:~$
fpetitjean@drsoseng:~$ echo $SSH_AUTH_SOCK
/tmp/ssh-eQLkBtIhxdPP/agent.20164
fpetitjean@drsoseng:~$ ls -ls /tmp/ssh-eQLkBtIhxdPP/agent.20164
0 srw------- 1 fpetitjean users 0 Jun 23 17:51 /tmp/ssh-eQLkBtIhxdPP/agent.20164
fpetitjean@drsoseng:~$
Chargement des clés
fpetitjean@drsoseng:~$ ssh-add -l
The agent has no identities.
fpetitjean@drsoseng:~$
fpetitjean@drsoseng:~$ ssh-add
Enter passphrase for /homes/fpetitjean/.ssh/id_rsa:
Identity added: /homes/fpetitjean/.ssh/id_rsa (/homes/fpetitjean/.ssh/id_rsa)
Identity added: /homes/fpetitjean/.ssh/id_dsa (/homes/fpetitjean/.ssh/id_dsa)
fpetitjean@drsoseng:~$ ssh-add -l
1024 1c:22:50:8a:0c:04:98:89:40:90:b9:60:2f:28:83:ab /homes/fpetitjean/.ssh/id_rsa (RSA)
1024 b6:0f:81:4e:f9:9a:a8:97:ef:52:6f:f9:d6:90:67:cb /homes/fpetitjean/.ssh/id_dsa (DSA)
fpetitjean@drsoseng:~$
Vérification
fpetitjean@drsoseng:~$ echo $SSH_AUTH_SOCK
/tmp/ssh-eQLkBtIhxdPP/agent.20164
fpetitjean@drsoseng:~$ ls -ls /tmp/ssh-eQLkBtIhxdPP/agent.20164
0 srw------- 1 fpetitjean users 0 Jun 23 17:51 /tmp/ssh-eQLkBtIhxdPP/agent.20164
fpetitjean@drsoseng:~$
Je vous laisse, j'ai une petite course à faire.
Dans mon cas, le poste client est un Windows 7 avec PuTTY/pageant et les interactions se font dans la fenêtre PuTTy (deux shells)
---
« Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » (R. Devos)
Hors ligne
#15 Le 23/06/2016, à 20:14
- J5012
Re : Step by step vérification d'un script
Quels sont les étapes à faire pour voir pourquoi et comment réparer le fonctionnement du script ?
Je précise que je parle bien en dehors du code lui même !sans avoir le code, on peut parler encore longtemps ...
Soze, tu vois ce que je disais ?
les gens repondant vont tourner autour de ton pot pendant longtemps ...
tu devrais peut-etre verifier ton script sur le lancement de keychain ?
http://linux.die.net/man/1/keychain
Hors ligne
#16 Le 27/06/2016, à 07:49
- Soze
Re : Step by step vérification d'un script
Hello à tous,
L'erreur ne serait tout simplement pas le fait que l'utilisateur qui exécute le script à un manque de droit ?
Comment je peux vérifier/arranger ça ?
Hors ligne