Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/03/2007, 11h02   #1
Invité de passage
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 8
Points : 3
Points : 3
Par défaut read line

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 :
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
Dragon13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 14h47   #2
Invité de passage
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 8
Points : 3
Points : 3
La solution apres 2h de galere. Si quelqu'un a l'explication du pourquoi ca marche, je prend.

Code :
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
40
 
#!/bin/sh
 
cat < bases.txt | grep -v "#" | while read ligne
do
        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 files
        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}" 0>/dev/null >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
 
done
Dragon13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h45.


 
 
 
 
Partenaires

Hébergement Web