Bonjour à tous
j'ai un script bash qui fonctionne bien quand je le lance "à la main" :
./BeforeJobs.sh
quand ce dernier est appelé par bacula j'ai l'erreur :
ClientRunBeforeJob: /etc/scripts/bacula/BeforeJob.sh: 15: Syntax error:
"(" unexpected
Pour vérifier le problème j'ai mis mon script dans cron j'ai la même
erreur : /etc/scripts/bacula/BeforeJob.sh: 15: Syntax error: "(" unexpected
à priori cela coinse au niveau de mon tableau j'ai essaye les ecritutres
suivante trouvée sur le web :
avec ou sans espace entre la parenthèse et le premier caractère à
l'intérieur de cette dernière ( idem à la fin de la parenthèse )
=> Tableau=([1]="postgres [2]="template1" [3]="mantis" [4]="dbnl51"
[5]="ipplan")
=> Tableau=(postgres template1 mantis dbnl51 ipplan)
=> declare -a Tableau=([1]="postgres [2]="template1" [3]="mantis"
[4]="dbnl51" [5]="ipplan")
=> declare -a Tableau=(postgres template1 mantis dbnl51 ipplan)
voici mon script
#
#
#
#!/bin/sh
# Constantes chemin des répertoires
DirTmp=/data/BckPostgres
DirFinal=/data/BckDbs
DirTime=/etc/scripts
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Constantes bases
# Mettre dans le tableau le nom de la base de donnée [son_numero]=nom_base
Tableau=( [1]=postgres [2]=template1 [3]=mantis [4]=dbnl51 [5]=ipplan )
nbelement=${#table...@]}
#login
User=postgres
echo '################################################'
echo '# Debut Pré-install #'
echo '################################################'
echo "Mise à jour de l'heure"
$DirTime/time.sh
echo 'Supression de la dernière sauvegarde'
cd $DirFinal
rm *.gz
echo 'Suppression terminée'
if [ -d $DirTmp ] ; then
echo -e "Le répertoire $DirTmp existe"
else
echo -e "Le répertoire $DirTmp n'existe pas : création de ce dernier"
mkdir -p $DirTmp
chown -R postgres $DirTmp
fi
echo "Nombre de bases à sauvegarder : '$NbElement' ."
# Dump des databases chaud
echo "Sauvegarde intégrale des bases"
for i in ${!Tableau[*]}
do
Base=${Tableau[$i]}
su $User -c "pg_dump -E='UTF8' --create -o $Base --file=$DirTmp/$Base.`date
+%d-%m-%y`.sql"
taille=$(ls -alh $DirTmp/$Base.`date +%d-%m-%y`.sql |awk -F" " '{print $5}')
if [ $taille = 0 ] ; then
taille='ERREUR DE SAUVEGARDE'
fi
echo 'DUMP de la base '$Base' effectué taille : '$taille''
done
echo "Sauvegarde des datas uniquement"
for i in ${!Tableau[*]}
do
Base=${Array[$i]}
su $User -c "pg_dump -E='UTF8' -o --data-only $Base
--file=$DirTmp/$Base-data.`date +%d-%m-%y`.sql"
taille=$(ls -alh $DirTmp/$Base-data.`date +%d-%m-%y`.sql |awk -F" " '{print
$5}')
if [ $taille = 0 ] ; then
taille='ERREUR DE SAUVEGARDE'
fi
echo 'DUMP de la base '$Base' effectué taille : '$taille''
done
echo "Sauvegarde des datas uniquement avec insert"
for i in ${!Tableau[*]}
do
Base=${Array[$i]}
su $User -c "pg_dump -E='UTF8' --data-only --inserts $Base
--file=$DirTmp/$Base-data-inser.`date +%d-%m-%y`.sql"
taille=$(ls -alh $DirTmp/$Base-data-inser.`date +%d-%m-%y`.sql |awk -F" "
'{print $5}')
if [ $taille = 0 ] ; then
taille='ERREUR DE SAUVEGARDE'
fi
echo 'DUMP de la base '$Base' effectué taille : '$taille''
done
echo "Sauvegarde des schémas uniquement"
for i in ${!Tableau[*]}
do
Base=${Array[$i]}
su $User -c "pg_dump -E='UTF8' -o --schema-only $Base
--file=$DirTmp/$Base-schema.`date +%d-%m-%y`.sql"
taille=$(ls -alh $DirTmp/$Base-schema.`date +%d-%m-%y`.sql |awk -F" "
'{print $5}')
if [ $taille = 0 ] ; then
taille='ERREUR DE SAUVEGARDE'
fi
echo 'DUMP de la base '$Base' effectué taille : '$taille''
done
#optimisation
echo "Optimisation des dumps sql"
cd $DirFinal
tar -czf DBS_Dump-`date +%m-%d-%y`.tar.gz $DirTmp/*
taille=$(du -sh $DirTmp | awk -F" " '{print $1}')
echo 'Taille des dumps des bases de données : '$taille''
taille=$(ls -alh $DirFinal/DBS_Dump-`date +%m-%d-%y`.tar.gz | awk -F" " '{print
$5}')
echo 'Taille du fichier compressé : '$taille''
echo '################################################'
echo '# Fin Pré-install #'
echo '################################################'
Merci de votre aide
philippe
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists
Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/4b88d071.4030...@worm-fr.com