Une autre solution est d'utiliser la variable d'environnement PGPASSWORD : par exemple, créer un fichier ~/.psql-secret (avec un chmod 600 ~/.psql-secret)
export PGUSER=benoit
export PGHOST=192.168.0.5
export PGPORT=5432
export PGDATABASE=data
export PGPASSWORD=mdp_en_clair
|
Puis un script (~/sql_com.sh , avec un chmod +x ~/sql_com.sh):
#!/bin/sh
[ -f $HOME/.psql-secret ] && source $HOME/.psql-secret
/usr/bin/psql -c 'fc_com();' -o /var/log/sql_com.log
unset PGPASSWORD
|
Et lancer ce script par cron.
Code :
- 30 11 * * 1-5 /path/to/sql_com.sh > /dev/null
|
Note : Ça peut poser un problème de sécurité dans le sens où certaines versions de "ps" (selon l'OS utilisé) peuvent afficher toutes les variables d'environnement d'un processus, même si l'utilisateur n'est pas le propriétaire du processus (donc ça signifie que n'importe qui loggué sur la machine pourrait visualiser la variable PGPASSWORD). Ça ne sera bien sûr possible que pendant l'exécution du script. En tout cas, c'est à vérifier.
Bon, avec procps 2.0.16 sur un Linux 2.4.23, ça marche comme il faut (c'est à dire que seules les variables de l'utilisateur qui lance "ps" sont affichées).
Message édité par unk00 le 11-12-2003 à 13:06:30