Connexion ssh script bash - commande

lardio -  
 Utilisateur anonyme -
Bonjour,

je tente d'ecrire un petit script qui se connectera a un autre serveur pour lancer des commandes.

ssh user@server<< EOF

dir=804
df -k | grep nagios
cd /product/tomcat/
pwd
cd /product/tomcat/800/
pwd
cd /product/tomcat/"$dir"/
pwd
echo "$dir"
EOF


RESULTAT


user@server's password:

/dev/mapper/rootvg-nagios_client
225248 106852 106928 50% /product/nagios_client
/product/tomcat
/product/tomcat/800
/product/tomcat


Lorsque je passe la connexion en ssh, mes variables ne sont pas reconnu (ici dir). Lors du dernier pwd, ou du echo, la variable est pas prise en compte.
Une idee ?

Merci d'avance,

2 réponses

  1. Utilisateur anonyme
     
    salut,

    il faut mettre les commandes entre apostrophes pour que l'environnement change effectivement.
    pour qu'un here-string s'exécute entre apostrophes, c'est le mot qu'on met entre apostrophes :
    ssh user@machine <<'eof'
    var="pouic pouic"
    echo "$var"
    eof
    1
    1. lardio
       
      Bonjour,
      merci beaucoup pour la reponse.
      Par contre je perd mes precedentes variables ?

      En exemple (plus simple ^^) :


      hope=super
      ssh user@machine <<'EOF'

      var="pouic pouic"
      echo "$var"
      echo "$hope"
      EOF


      RESULTAT


      pouic pouic


      Est-il possible de conserver ses variables tout en etant connecte en ssh pour les utiliser ?

      Merci d'avance
      0
  2. Utilisateur anonyme
     
    quelques recherches plus tard...
    $ var=321
    $ ssh user@server <<eof
    echo "$var"
    varD="pouic"
    echo "\$varD"
    eof
    0