Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Commande via ssh

11 réponses
Avatar
Le Cerdocyon
--3uo+9/B/ebqu+fSQ
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

J'ai fait une connexion automatique vers un serveur, via ssh et l'=E9change=
de cl=E9 classique.

Mon but =E9tant de v=E9rifier le num=E9ro de pid d'un processus, et d'en av=
oir le retour en console.

=2E..

Mais je n' en suis qu'=E0 la connexion,

ssh user@serveur
ls

L=E0 je teste juste un ls, mais il fonctionne quand je coupe la connexion a=
pr=E8s un exit par exemple.

Que dois-je mettre =E0 la suite pour qu'il =E9x=E9cute les commande cons=E9=
cutivement ?

Merci de votre aide en tout cas.

--=20
Cerdocyon
key ID 0x773B483BAC099326

--3uo+9/B/ebqu+fSQ
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAktv8FgACgkQdztIO6wJkyZXLACgoc4clju724Ed3XvwUnNr04Eq
AQAAoNjUMnuBjahmu2DnFFuRu50q58YD
=8AdA
-----END PGP SIGNATURE-----

--3uo+9/B/ebqu+fSQ--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org

10 réponses

1 2
Avatar
Kevin Hinault
Le 8 février 2010 12:07, Le Cerdocyon a écrit :

Mon but étant de vérifier le numéro de pid d'un processus, et d'en avoir le retour en console.



Si tu lance un démon ou quelques chose dans le genre et qu'il est mis
en background tu peux récupérer le pid avec la variable $!
Testes ça :

$ sleep 100 &
$ echo $!

--
Kévin
Membre de Breizhtux, GULL de Saint-Brieuc et de Bretagne -
http://www.breizhtux.info
Membre de l'April - « promouvoir et défendre le logiciel libre » -
http://www.april.org
http://identi.ca/khi - http://twitter.com/kh_i - http://system-linux.eu

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
François Cerbelle
Le Cerdocyon a écrit :
J'ai fait une connexion automatique vers un serveur, via ssh et l'échange de clé classique.
Mon but étant de vérifier le numéro de pid d'un processus, et d'en avoir le retour en console.
...
Mais je n' en suis qu'à la connexion,
ssh
ls
Là je teste juste un ls, mais il fonctionne quand je coupe la connexion après un exit par exemple.
Que dois-je mettre à la suite pour qu'il éxécute les commande consécutivement ?



Pour le PID d'un process, tu peux utiliser pidof :
[ ShLvl:1 Cmd:507 Ret:0 lun fév 08 12:14:27 ]
~ $ ssh ouranos pidof apache2
943 942 941 940 938 30873 30364 30363 30362 30360 30347

Pour executer plusieurs commandes à la suite, le plus propre serait peut-etre de créer un script, de
l'envoyer sur la machine distante, de l'y executer et de l'en supprimer :
echo ps > script.sh
scp script.sh :
ssh chmod +x script.sh
ssh ./script.sh
ssh rm script.sh

Fanfan

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Le Cerdocyon
--PuGuTyElPB9bOcsM
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Le 08/02/10 at 12:14, Kevin Hinault a ecrit:
Le 8 février 2010 12:07, Le Cerdocyon a écrit :

Mon but étant de vérifier le numéro de pid d'un processus, et d'en avoir le retour en console.



Si tu lance un démon ou quelques chose dans le genre et qu'il est mis
en background tu peux récupérer le pid avec la variable $!
Testes ça :

$ sleep 100 &
$ echo $!




Je ne connaissais pas, mais je me suis mal exprimé en fait.

J'ai plusieurs serveurs sur lesquels fonctionnent différents process qui ne doivent pas tomber.

avec ssh, je veux me connecter automatiquement et vérfier si le nom du pr ocess tourne.

si oui je ne fais rien

sinon je lance une commande (une commande shell qui va lancer un script)

J'aimerai me connecter automatiquement aux serveurs, (ça c'est bon)

en suite lancer un ps -ef, récuper le nom du script qui tourne + son pid
si ok script + pid qui tourne, le script me retourne OK ça marche.

Si ça ne marche pas, me proposer de lancer le script qui va bien.


--
Cerdocyon
key ID 0x773B483BAC099326

--PuGuTyElPB9bOcsM
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAktv9AEACgkQdztIO6wJkyZGQwCgnZ2rI2LjMuzs7yTkGjdjUeed
BbAAni2K9NVwwLP7fwFe1FZ8NcbXJKyL
=olEl
-----END PGP SIGNATURE-----

--PuGuTyElPB9bOcsM--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Jean-Yves F. Barbier
Le Cerdocyon a écrit :
...
J'ai plusieurs serveurs sur lesquels fonctionnent différents process qui ne doivent pas tomber.

avec ssh, je veux me connecter automatiquement et vérfier si le nom du process tourne.

si oui je ne fais rien

sinon je lance une commande (une commande shell qui va lancer un script)



Pourquoi faire cela manuellement, alors que monit associé à un crontab
peut faire le boulot pour toi?

--
She cried, and the judge wiped her tears with my checkbook.
-- Tommy Manville

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Alexandre
Le lundi 08 février de l'année 2010, vers 12 heures et 07 minutes, Le Cerdocyon écrivait:
J'ai fait une connexion automatique vers un serveur, via ssh et l'échange de clé classique.
Mon but étant de vérifier le numéro de pid d'un processus, et d'en avoir le retour en console.
...
Mais je n' en suis qu'à la connexion,
ssh
ls
Là je teste juste un ls, mais il fonctionne quand je coupe la connexion après un exit par exemple.
Que dois-je mettre à la suite pour qu'il éxécute les commande consécutivement ?



Bonjour,

echo ls | ssh

plus largement:

echo "mes commandes" | ssh


--
Alexandre Delanoë

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
fra-duf-no-spam
Le 14648ième jour après Epoch,
Alexandre écrivait:

Le lundi 08 février de l'année 2010, vers 12 heures et 07 minut es, Le Cerdocyon écrivait:
J'ai fait une connexion automatique vers un serveur, via ssh et l'é change de clé classique.
Mon but étant de vérifier le numéro de pid d'un processus , et d'en avoir le retour en console.
...
Mais je n' en suis qu'à la connexion,
ssh
ls
Là je teste juste un ls, mais il fonctionne quand je coupe la conne xion après un exit par exemple.
Que dois-je mettre à la suite pour qu'il éxécute les comm ande consécutivement ?



Bonjour,

echo ls | ssh

plus largement:

echo "mes commandes" | ssh



Et sans le "echo" et le "|":

ssh "liste de commandes"

"man ssh" pour plus de détails.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Julien Demange
Bonjour,

Alexandre a écrit :

echo ls | ssh



pioue...
n'est ce pas plus propre de faire ?
$ ssh ls

Si plusieurs commandes on peut aussi faire :
$ ssh ls /usr ; ls /var


plus largement:

echo "mes commandes" | ssh



Si plusieurs commandes, je proposerais plutôt un script sur chaque
serveurs distant (éventuellement sur un montage NAS) exécuté ainsi :
$ ssh /path/to/script

Et bien sur, une authentification basé sur des clé avec une clé privé
non chiffré sur le poste initiant les connection. Mais éventuellement
une restriction d'usage de la clé sur chaque serveur distant :
$ ssh -i clekivabien /path/to/script

Dans la foulé on peut éviter de mettre 'root' comme "user" mais passer
par des sudo et un utilisateur spécialement prévu à ces tâches de
maintenance. Avec un sudoer qui restreint ce dit user à juste le(s)
script(s) prévu.



--
Ouvertement,
Julien Demange

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Alexandre
Le lundi 08 février de l'année 2010, vers 15 heures et 27 minutes, Julien Demange écrivait:
Bonjour,
Alexandre a écrit :
> echo ls | ssh
pioue...
n'est ce pas plus propre de faire ?
$ ssh ls
Si plusieurs commandes on peut aussi faire :
$ ssh ls /usr ; ls /var



Oui, entièrement d'accord. Mais cette solution avait déjà été
proposée et le but était pédagogique (personnellement, parfois avant
de comprendre un raccourcis, j'aime bien connaître le chemin sur toute
sa longueur).

--
Alexandre Delanoë

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Edi Stojicevic
* Julien Demange [2010-02-08 15:27:21 +0100] wrote :

Bonjour,

Alexandre a écrit :

> echo ls | ssh

pioue...
n'est ce pas plus propre de faire ?
$ ssh ls

Si plusieurs commandes on peut aussi faire :
$ ssh ls /usr ; ls /var



Non ceci ne fonctionne pas ainsi :)
le ls /var va lister le contenu du répertoire /var local et non distant.

pour lister deux repertoires distants :

ssh ls /usr /var

par exemple.



> plus largement:
>
> echo "mes commandes" | ssh

Si plusieurs commandes, je proposerais plutôt un script sur chaque
serveurs distant (éventuellement sur un montage NAS) exécuté ainsi :
$ ssh /path/to/script



D'accord là-dessus.

[...]

Perso, j'utilise ssh-agent pour me connecter à mes serveurs avec les
clefs qui vont bien pour ne pas à avoir à rentrer mon mot de passe à
chaque fois.

mes 2¢
--
.''`. Edi Stojicevic
: :' : Debian GNU/Linux user, admin & developer - http://www.debian.org
`. `~' French speaking Debian website founder - http://www.debianworld.org
`- GPG Key Id : 0x1237B032

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
Avatar
Vincent Lefevre
On 2010-02-09 00:29:55 +0100, Edi Stojicevic wrote:
* Julien Demange [2010-02-08 15:27:21 +0100] wrote :
> Si plusieurs commandes on peut aussi faire :
> $ ssh ls /usr ; ls /var

Non ceci ne fonctionne pas ainsi :)
le ls /var va lister le contenu du répertoire /var local et non distant.



C'est parce qu'il fallait quoter:

ssh "ls /usr ; ls /var"

On peut aussi ajouter un -t pour avoir un affichage multicolonne
(pour dire qu'on a un terminal):

ssh -t "ls /usr ; ls /var"

--
Vincent Lefèvre - Web: <http://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers
En cas de soucis, contactez EN ANGLAIS
1 2