problème de script dans le crontab pour postgres et regexp

Bonjour,

j’ai un petit soucis de script shell qui s’execute manuellement mais qui a un comportement différent dans le crontab et je ne trouve pas pourquoi.

La commande qui pose soucis est la suivante:

#!/bin/bash baseDeDonnees=`psql postgres -U postgres -c "\l" | grep -Eo "^ [a-zA-Z0-9_-.]+"`

Le crontab

#sauvegarde de la base de donnees 1 11 * * * /opt/script/backupPostgres.sh
avec cette commande, je veux récupérer la liste des bases dans mon serveur postgres pour effectuer des sauvegardes séparées.

En manuel, le retour me donne bien ce que je veux, c’est à dire:

dr-254-392 db_auto p08-14-df28.64 postgres template0 template1 template_test testdbupdate testobs_crub testme testert

mais dans le cron elle me retourne:

dr db p08 postgres template0 template1 template_test testdbupdate testobs testme testert

on dirait qu’elle s’arrète aux différents caractères spéciaux.
Auriez-vous une idée car je sèche. Ai je fait une erreur dans la regexp ?

Merci à vous

en effet ta regexp semble coupable vu le résultat, d’ailleurs pourquoi fait tu un grep?tu ne veux pas sauvegarder toutes tes bases de données?si je tente (je ne suis pas un spécialiste des regexp) de la traduire tu cherche les bases de données dont le nom commence soit par une minuscule, soit par une majuscule, soit par un chiffre soit par “_” soit par “-” soit par “.” et qui peut être rencontré une à plusieurs fois donc à mon avis tout les noms de tes bases de données mais je me trompe peut-être sinon pour l’erreur en elle-même essais avec ta regexp non pas entre guillemets mais entre simples quotes

je vais essayer.

J’ai fait une regexp pour récupérer le nom des bases de données car le \l affiche la liste sous forme de tableau avec les propriétaires des tables.

allez, je passe aux choses serieuses, je suis en train de le refaire en perl, ce sera plus simple…

comme je voulais me faire un petit soft du style backuppc, mais version base de données, c’est parti.

Pour l’instant, il sauvegarde les bases de données postgres local et réseau en fonction d’un fichier de config tout simple :slightly_smiling:.

Il est deja sympa pour un début, le plus dur, sera de faire des sauvegardes de table ou des données modifiées sur la journée… Mais c’est sympa de se remettre à la prog :slightly_smiling:

Si jamais cela interresse quelqu’un :wink:

Quand il sera bien avancé, je le publierai sur sourceforge ou mentor.debian.org

Bonne soirée.