Bonjour,
J'ai un problème avec le script ci dessous. Il parcourt un fichier (bases.txt) contenant des infos sur des base mysql à sauvegarder. Je parcours le fichier ligne par ligne pour récupérer les infos. Le script lit qu'une ligne du fichier et s'arrête. Le problème se situe au niveau de l'appel ssh. Quand j'enlève la commande. le fichier bases.txt est bien lut.
Donc mes questions sont :
Pourquoi sa fait ça ?
Comment corriger le problème ?
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 #!/bin/sh cat < bases.txt | grep -v "#" | while true do read ligne if [ "$ligne" = "" ]; then break; fi set -- $ligne HOST=$1 DBNAME=$2 USER=$3 PASSWD=$4 RETENTION=$5 FILE=$6 echo -n "backup base $DBNAME" # Rotate file for ((I=$((RETENTION-1));I>=0;I--)); do if [ -f "data/${FILE}.gz.${I}" ]; then mv "data/${FILE}.gz.${I}" "data/${FILE}.gz.$((I+1))" fi done if [ -f "data/${FILE}" ]; then gzip "data/${FILE}" mv "data/${FILE}.gz" "data/${FILE}.gz.0" fi if [ -f "data/${FILE}.gz.$((RETENTION))" ]; then rm -f "data/${FILE}.gz.$((RETENTION))" fi # Save database ssh $HOST "mysqldump -u${USER} -p${PASSWD} -e -q -Q --add-drop-table ${DBNAME}" > data/$FILE RETVAL=$? if [ $RETVAL -eq 0 ] ; then echo -e "\t[\\033[1;32m OK \\033[0;39m]" else echo -e "\t[\\033[1;31m FAILED \\033[0;39m]" fi
Partager