Rechercher : dans
Par :

[SSH] : commande à distance

Dernière réponse le 19 jui 2007 à 18:41:07 tlep, le 18 jui 2007 à 17:32:37 
 Signaler ce message aux modérateurs

Bonjour,

Je souhaite effectuer des commandes complexes à distance, et çà ne fonctionne pas:

Exemple:

ssh root@192.168.xxx.xx "ls /home"
Ca marche :
awstat
billingbzh
billing_vm
conf
crm
etc...

Par contre:
ssh root@192.168.xxx.xx "for i in `ls /home`;do ls $i;done"

La j'obtiens des erreurs :
bash: -c: line 2: syntax error near unexpected token `conf'
bash: -c: line 2: `conf'

On ne peut pas exécuter des commandes complexes, ou des shells via ssh ?

Merci ;-)

Configuration: Windows XP
Firefox 2.0.0.4

Meilleures réponses pour « [SSH] : commande à distance » dans :
Se logguer à distance avec ssh (Linux) Voir (Pour ceux qui voudraient avoir un rappel sur SSH : http://www.commentcamarche.net/crypto/ssh.php3) Les commandes suivantes nécessitent d'avoir un compte sur la machine sur laquelle on veut se connecter et qu'un serveur SSH y soit installé. ...
Accéder à distance à sa machine (VNC+ssh) VoirL'astuce suivante vous permettra d'accéder à distance à votre machine de manière graphique. Nous allons utiliser le serveur VNC inclu dans Ubuntu (Vino) en le sécurisant par ssh. Vous pourrez alors accéder à distance à votre PC avec ssh et vnc...
Installer un serveur ssh sous Ubuntu VoirUn serveur ssh vous permet d'accéder à distance à votre machine. Vous aurez ainsi accès à la console distante (équivalente à telnet, mais sécurisée) et au transfer de fichiers (équivalent à FTP, mais sécurité également). Installation On ne peut...
Se logguer à distance avec ssh ( Windows ) Voir( Pour ceux qui voudraient avoir un rappel sur ssh : http://www.commentcamarche.net/crypto/ssh.php3 ) Contrairement à la plupart des distributions Linux, Windows ne possède pas de client ssh en natif. Il faut donc en installer un. ...
Télécharger Atelier Web Remote Commander VoirSi vous vous souciez de la maintenance et de l’optimisation de votre ordinateur, même quand vous n’êtes devant, utilisez des programmes de commande à distance. Atelier Web Remote Commander (AWRC) est un outil puissants conçu pour la...
Cryptographie - Secure Shell (protocole SSH) VoirInternet permet de réaliser un grand nombre d'opérations à distance, notamment l'administration de serveurs ou bien le transfert de fichiers. Le protocole Telnet et les r-commandes BSD (rsh, rlogin et rexec) permettant d'effectuer ces tâches...
Utilisation de Telnet VoirPrésentation de Telnet Telnet est un protocole permettant d'émuler un terminal à distance, cela signifie qu'il permet d'exécuter des commandes saisies au clavier sur une machine distante. L'outil Telnet est une implémentation du protocole...
Commandes Linux VoirTableau des principales commandes Linux Commande Description équivalent DOS ls liste le contenu d'un répertoire dir cd change de répertoire cd cd .. répertoire parent cd.. mkdir crée un nouveau...

1

sebsauvage, le 18 jui 2007 à 17:36:47
  • +1

Essaie en lançant tes commandes avec bash -c "commande1;commande2;etc"

Répondre à sebsauvage

2

tlep, le 18 jui 2007 à 17:53:34

Y'a du mieux il plante plus sur "conf" :

ssh root@192.168.xxx.xx bash -c "for i in `ls /home`;do ls $i;done"

ca me donne :

i: -c: line 1: syntax error near unexpected token `newline'
i: -c: line 1: `for'
bash: line 2: conf: command not found
bash: line 3: crm: command not found
bash: line 4: custuser: command not found
bash: line 5: log: command not found
bash: line 6: lost+found: command not found
bash: line 7: nttuser: command not found
bash: line 8: nusoap: command not found
bash: line 9: website: command not found
bash: -c: line 10: syntax error near unexpected token `do'
bash: -c: line 10: `ws;do ls ;done'

Répondre à tlep

3

sebsauvage, le 18 jui 2007 à 18:00:10

Ssh root@192.168.xxx.xx 'bash -c "for i in `ls /home`;do ls $i;done"'

peut-être ?

(sinon il va probablement prendre -c et ce qui suit comme une option de ssh.

Répondre à sebsauvage

4

Chacual, le 18 jui 2007 à 18:06:29

C'est juste un problème de ls :
ls $i ne fonctionne pas car tu ne te trouves pas dans le bon répertoire.
Il faut exécuter ls /home/$i !
Donc : ssh root@192.168.xxx.xx 'bash -c "for i in `ls /home`;do ls /home/$i;done"'

Répondre à Chacual

5

tlep, le 18 jui 2007 à 18:35:57

Si je fais:
ssh root@192.168.203.33 'bash -c "for i in `ls /home`;do ls $i;done"'
bash: -c: line 2: syntax error near unexpected token `billingbzh'
bash: -c: line 2: `billingbzh'

Si je fais :
ssh root@192.168.203.33 "bash -c 'for i in `ls /home`;do ls $i;done'"
bash: -c: line 2: syntax error near unexpected token `conf'
bash: -c: line 2: `conf'

LOL :-))

Répondre à tlep

6

jipicy, le 18 jui 2007 à 19:08:54
  • +1

Salut,

ssh root@192.168.203.33 'bash -c "for name in /home/*; do ls "$name"; done;"'
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

8

tlep, le 19 jui 2007 à 16:16:58

Comment on peut intégrer un find avec ta méthode ?

for Filename in `find ...`;do echo $Filename;done

?

Répondre à tlep

9

 jipicy, le 19 jui 2007 à 18:41:07
  • +1

Re-

ssh root@192.168.203.33 'bash -c "find /rep -name "fichier" -exec ls -l {} \;"'
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

7

tlep, le 19 jui 2007 à 11:49:05

Salut,

merci çà marche !

Tu peux expliquer le mystère ?

-Est-ce que je peux exécuter un shell créé en local via ssh ?
Par exemple créer un script sur la machine A puis l'exécuter via ssh :

ssh root@B 'bash -c 'mon_script.sh' ?

Apparemment non puisque mon_script.sh se trouve sur A et va essayer de l'exécuter sur B ?

Répondre à tlep