bonjour,
j'ai un problème sur lequel je m'arrache les cheveux car je ne vois vraiment pas d'ou il provient :
je veux faire un script permettant de faire une sauvegarde de bases postgresql, j'ai donc créé un petit script simple que j'execute sur le serveur de bd postgres.
Code :
- # !/bin/sh
- echo "export bases postgre"
- #------------------------------------
- # Export base postgre par base
- #------------------------------------
- BACKUP_DIR="/mnt/backupdir/`date '+%y_%m_%d'`/postgre"
- # efface le repertoire backup si existant
- if [ -d $BACKUP_DIR ]
- then
- echo "dossier $BACKUP_DIR existant .. suppression"
- rm -rf $BACKUP_DIR
- else
- echo "dossier $BACKUP_DIR inexistant .."
- fi
- #creation du repertoire backup et positionnement
- mkdir $BACKUP_DIR
- cd $BACKUP_DIR
- echo "repertoire de backup OK"
- # memorise la date du jour
- date '+%y_%m_%d' > tmp.date
- echo ""
- echo -n "Debut de l'export : le "
- date '+%d/%m/%y a %H:%M:%S'
- echo ""
- echo -n "Creation du repertoire $BACKUP_DIR"
- # creation du repertoire de sauvegarde (devient le repertoire courant)
- cat tmp.date | awk -F':' '{
- system ("rm -rf " $1)
- }'
- cat tmp.date | awk -F':' '{
- system ("echo /" $1)
- system ("mkdir " $1)
- }'
- echo ""
- echo Recherche des bases...
- echo ""
- # recherche les bases presentes sur le serveur postgresql
- su -l postgres psql -lt > $BACKUP_DIR/tmp.bases
- echo "Export en cours..."
- # creation des fichiers de dump
- cat $BACKUP_DIR/tmp.bases | gawk '{
- if ($1 !="" ){
- system ("echo Export de :"$1":" )
- system ("su - l postgres -c 'pg_dump --file=$BACKUP_DIR/PGSQL_"$1".dmp --inserts "$1"'" )
- }
- }'
- # compression des fichiers de dump dans une archive tar.gz
- cat tmp.date | gawk -F':' '{
- system ("mv *.dmp " $1)
- system ("tar -czf PGSQL_" $1 ".tar.gz " $1)
- system ("rm -rf " $1)
- }'
- # suppression des fichiers temporaires
- rm -f tmp.*
- # fin de l'export
- echo
- echo -n "Fin de l'export : le "
- date '+%d/%m/%y a %H:%M:%S'
|
quand je lance mon script, je me tape ca comme trace :
Code :
- export bases postgre
- ./postgreBackup.sh: line 59: syntax error: unexpected end of file
|
sachant que le syntax error n'est certainement pas ligne 59 mais plus haut, puisque je n'obtiens aucune trace de mon test "if [-d $BACKUP_DIR]"
alors que si je mets un echo juste avant mon if, il s'affiche sans pb ...
je sais que ca fait un peu bourrin vu comme ca, mais merci d'avance à tous mes futurs bienfaiteurs