• [^] # Re: inverse

    Posté par . En réponse au message Obtenir sortie de psql via ssh [résolu]. Évalué à 1.

    Bingo ça venait bien de là.

    Mise en place de deux variables de test pour mettre en évidence l'importance des quotes simples sur les quotes double après la commande ssh.

    En local :

    moi@pclocal:~$ echo 'export test="Valeur locale !' >> .bashrc
    moi@pclocal:~$ exec bash
    moi@pclocal:~$ echo $test
    Valeur locale !

    Sur le serveur :

    moi@pclocal:~$ ssh user@server
    Last login: Mon Sep 5 16:21:00 2016 from 10.70.2.8
    user@server[database]
    /home/user $ echo 'export test="Valeur serveur !' >> .bashrc
    /home/user $ exec bash
    /home/user $ echo $test
    Valeur serveur !

    Maintenant test des DOUBLES quote

    moi@pcperso:~$ ssh user@server "echo $test"
    Valeur locale !

    Maintenant je teste les SIMPLE quote

    moi@pcperso:~$ ssh user@server 'echo $test'
    Valeur serveur !

    Conclusion : Il faut utiliser les simple quote.
    Maintenant recherche de la conf utilisée.

    moi@pclocal:~$ ssh user@server
    Last login: Mon Sep 5 16:21:00 2016 from 10.70.2.8
    user@server[database]
    /home/user $ echo $PGPORT
    5433
    /home/user $ exit
    logout
    moi@pcperso:~$ ssh user@server 'echo $PGPORT'

    Y'a donc bien un souci de definition de la variable $PGPORT.
    Une rapide recherche m'a permis de trouver que cette variable était définie dans le .bash_profile
    Il est donc nécessaire de le lire, de le sourcer avec . .bash_profile;

    moi@pcperso:~$ ssh $dev4_oltp '. .bash_profile; echo $PGPORT'
    5433

    Ca marche !
    Confirmé par :

    moi@pcperso:~$ ssh user@server '. .bash_profile; psql << END
    select tablename from pg_tables LIMIT 1;
    END'
     tablename 
    --------------
     pg_statistic
    (1 row)

    Merci à tous ! =)