Connexion ssh script bash - commande

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. 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. 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. quelques recherches plus tard...
    $ var=321
    $ ssh user@server <<eof
    echo "$var"
    varD="pouic"
    echo "\$varD"
    eof
    0