Bonjour,

J'écris un script bash très simple. Il doit exécuter deux commandes depuis mon utilisateurs, koshie, au nom de postgresql. Il doit droper une base de donnée puis la recréer en lui attribuant comme owner un utilisateur postgresql.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#!/bin/bash
 
#
# -- Drop old database and create new one
#
 
# Drop the database 
# su postgres -c "dropdb calebasse"
# Create the new database with calebasse user as owner
su postgres -c "/usr/bin/createdb calebasse -O calebasse"
Comme vous pouvez le voir, la première commande est commenté afin de simplement tester la création de la base que j'ai dropé manuellement. Ici, c'est donc censé créer la base 'calebasse' en l'attribuant à l'owner 'calebasse'. Or il ne se passe rien, la commande ne fonctionne pas. Pourtant la commande fonctionne très bien lorsqu'elle est lancé manuellement dans le shell.

Je me doute donc qu'il y a un petit problème par rapport à mon script, peut-être dans la manière qu'il est lancé. J'utilise la méthode suivante :

Je déplace le script dans /usr/local/bin, je lui attribue les droits suivants : -rwxr-xr-x 1 root staff 467 18 déc. 09:34 init-pre-prod.sh

Et j'ai essayé les méthodes suivantes pour le lancer :

_ sudo init-pre-prod.sh
_ sudo bash /usr/local/bin/init-pre-prod.sh
_ sudo ./usr/local/bin/init-pre-prod.sh

Je l'ai aussi déplacé dans mon home et j'ai ré-essayé les deux dernières commandes plus haut mais ça ne marche pas.

J'ai aussi essayé de me mettre directement en root (dans le doute) et c'est pareil.

Le système est une Debian 6.0.6.

Avez-vous une idée s'il vous plaît ?

Cordialement, Koshie