pb de script bash incompréhensible

pb de script bash incompréhensible - Shell/Batch - Programmation

Marsh Posté le 10-06-2005 à 11:23:02    

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 :
  1. # !/bin/sh
  2. echo "export bases postgre"
  3. #------------------------------------
  4. # Export base postgre par base
  5. #------------------------------------
  6. BACKUP_DIR="/mnt/backupdir/`date '+%y_%m_%d'`/postgre"
  7. # efface le repertoire backup si existant
  8. if [ -d $BACKUP_DIR ]
  9. then
  10.     echo "dossier $BACKUP_DIR existant .. suppression"
  11.     rm -rf $BACKUP_DIR
  12. else
  13.     echo "dossier $BACKUP_DIR inexistant .."
  14. fi
  15. #creation du repertoire backup et positionnement
  16. mkdir $BACKUP_DIR
  17. cd $BACKUP_DIR
  18. echo "repertoire de backup OK"
  19. # memorise la date du jour
  20. date '+%y_%m_%d' > tmp.date
  21. echo ""
  22. echo -n "Debut de l'export : le "
  23. date '+%d/%m/%y a %H:%M:%S'
  24. echo ""
  25. echo -n "Creation du repertoire $BACKUP_DIR"
  26. # creation du repertoire de sauvegarde (devient le repertoire courant)
  27. cat tmp.date | awk -F':' '{
  28.     system ("rm -rf " $1)
  29. }'
  30. cat tmp.date | awk -F':' '{
  31.     system ("echo /" $1)
  32.     system ("mkdir " $1)
  33. }'
  34. echo ""
  35. echo Recherche des bases...
  36. echo ""
  37. # recherche les bases presentes  sur le serveur postgresql
  38. su -l postgres psql -lt > $BACKUP_DIR/tmp.bases
  39. echo "Export en cours..."
  40. # creation des fichiers de dump
  41. cat $BACKUP_DIR/tmp.bases | gawk '{
  42. if ($1 !="" ){
  43.         system ("echo Export de :"$1":" )
  44.         system ("su - l postgres -c 'pg_dump --file=$BACKUP_DIR/PGSQL_"$1".dmp --inserts "$1"'" )
  45.         }
  46. }'
  47. # compression des fichiers de dump dans une archive tar.gz
  48. cat tmp.date | gawk -F':' '{
  49.     system ("mv *.dmp " $1)
  50.     system ("tar -czf PGSQL_" $1 ".tar.gz " $1)
  51.     system ("rm -rf " $1)
  52. }'
  53. # suppression des fichiers temporaires
  54. rm -f tmp.*
  55. # fin de l'export
  56. echo
  57. echo -n "Fin de l'export : le "
  58. date '+%d/%m/%y a %H:%M:%S'


 
quand je lance mon script, je me tape ca comme trace :  
 

Code :
  1. export bases postgre
  2. ./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 :D

Reply

Marsh Posté le 10-06-2005 à 11:23:02   

Reply

Marsh Posté le 10-06-2005 à 11:59:20    

bon, je suis un boulet, faut que j'arrête d'ouvrir mes scripts avec le bloc notes moi ...
mais avec putty qui plante toutes les 10 min c chiaaaaannnt !!

Reply

Marsh Posté le 10-06-2005 à 12:03:03    

Utilise vi  [:petrus75]


Message édité par Elmoricq le 10-06-2005 à 12:03:10
Reply

Marsh Posté le 10-06-2005 à 13:47:57    

c bon, j'utilisais emacs sous putty, mais maintenant j'utilise mon eclipse, c un peu plus agréable pour coder qd même ;)  
et g pas trop la maitrise de vi, donc non merci ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed