IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Problème avec un script de sauvegarde


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 18
    Points : 6
    Points
    6
    Par défaut Problème avec un script de sauvegarde
    Bonjour à tous,

    J'ai créé un script de sauvegarde, qui me retourne une erreur que je ne comprends pas vraiment. Voici le script en question:

    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
    #!/bin/bash
    if mount | grep /mnt/backup > /dev/null
    then 
    	rsync -avh --progress --stats /mnt/alienbrain_projects5 /mnt/backup/alienbrain_projects5
    	rsync -avh --progress --stats /mnt/partition2/Ressources /mnt/backup/partition2/Ressources
    	echo "$(date) : La sauvegarde s'est effectuée correctement" >> /rapportBackup
     
    elif mount /dev/sdd1 /mnt/backup
    	if mount | grep /mnt/backup > /dev/null
    		then 
    			rsync -avh --progress --stats /mnt/alienbrain_projects5 /mnt/backup/alienbrain_projects5
    	        rsync -avh --progress --stats /mnt/partition2/Ressources /mnt/backup/partition2/Ressources
    			echo "$(date) : La sauvegarde s'est effectuée correctement" >> /rapportBackup
     
    else mount /dev/sde1 /mnt/backup
    	if mount | grep /mnt/backup > /dev/null
    		then
    			rsync -avh --progress --stats /mnt/alienbrain_projects5 /mnt/backup/alienbrain_projects5
    	        rsync -avh --progress --stats /mnt/partition2/Ressources /mnt/backup/partition2/Ressources
    			echo "$(date) : La sauvegarde s'est effectuée correctement" >> /rapportBackup
    		else
    			echo "$(date): La sauvegarde a eu un problème, données non sauvegardées" >> /rapportBackup
    	fi
    fi
    Il me dit à l'exécution:
    Unexpected end of file (expected "then")
    Je suis un novice du bash et j'espère que vos lanternes éclaireront cette sombre affaire.
    Merci à tous.

  2. #2
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 277
    Points : 12 722
    Points
    12 722
    Par défaut
    Bonjour,

    Il te manque au moins un "then" et des "fi".
    La syntaxe du if est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
    Les blocs entre crochet son facultatifs mais si tu l'utilises, il faut qu'il soit complet, donc un "elif COMMAND;" doit être suivi d'un "then COMMAND;" .

    Et tout "if" ce termine par un "fi".
    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Donc si je comprends bien, mon if après mon elif est faux, il faudrait que je suive par then.
    Mais dans ce cas là, je vois pas comment rappeler mes commandes rsync ça m'échappe un peu.

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 277
    Points : 12 722
    Points
    12 722
    Par défaut
    Non, une COMMAND peut être un if, donc tu peux avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if blabla
    then
     blabla
    elif blabla
    then
     if blabla
     then
      blabla
     fi
    fi
    Cordialement.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Ahhh je pensais pas que je pouvais remettre un bloc d'instruction dans le elif après le then.
    Je vais travailler là dessus, je clôture quand je me suis dépatouillé avec ça.
    Merci beaucoup.

  6. #6
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour,

    mais tu peux !

    Tout ce qui est dit est juste qu'il faut ajouter 'then' après la condition 'elif blablabla'.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Salut,

    je veux pas faire mon chieur, mais quand je vois ça :
    Citation Envoyé par Orichas Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	rsync -avh --progress --stats /mnt/alienbrain_projects5 /mnt/backup/alienbrain_projects5
    	rsync -avh --progress --stats /mnt/partition2/Ressources /mnt/backup/partition2/Ressources
    	echo "$(date) : La sauvegarde s'est effectuée correctement" >> /rapportBackup
    alors qu'il n'y a aucun test sur le retour des commandes de rsync et aucun test sur l'espace disque disponible, je me dis que tu te prépares à de sacrées surprises avec ton message optimiste "La sauvegarde s'est effectuée correctement" sans aucune preuve...
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2015
    Messages : 18
    Points : 6
    Points
    6
    Par défaut
    Comme je l'ai précisé plus haut, je débute dans le scripting, j'aimerais avoir une base fonctionnelle avant de rentrer dans ce genre de détails.
    Parce qu'à l'heure actuelle, je n'ai aucune idée de comment faire des retours de test des commandes rsync tout comme je ne sais pas du tout comment contrôler l'espace avant lancement de la commande.

  9. #9
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 726
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 726
    Points : 15 126
    Points
    15 126
    Par défaut
    Citation Envoyé par Orichas Voir le message
    Comme je l'ai précisé plus haut, je débute dans le scripting, j'aimerais avoir une base fonctionnelle avant de rentrer dans ce genre de détails.
    J'ai bien compris, mais je faisais ma remarque dans le sens où bien souvent on code viteuf' un truc à l'arrache, ça fonctionne OK et on passe à autre chose, et le provisoire devient définitif, et le jour où on a besoin d'une sauvegarde on se rend compte que ça fait 6 mois qu'elle échoue tous les soirs...

    Citation Envoyé par Orichas Voir le message
    Parce qu'à l'heure actuelle, je n'ai aucune idée de comment faire des retours de test des commandes rsync
    Les retours de commande :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    prompt> une_commande_avec_ses_paramètres
    prompt> err=$?
    prompt> # et on teste la valeur de "$err"
    Exemple :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    prompt> ls /un_dossier_qui_n_existe_pas
    prompt> echo $?
    prompt> 2
    prompt> ls /un_dossier_qui_existe
    prompt> echo $?
    prompt> 0
    Citation Envoyé par Orichas Voir le message
    je ne sais pas du tout comment contrôler l'espace avant lancement de la commande.
    man df te dira tout

    Et pour tester ton script de sauvegarde, tu te crées une arbo de test (plutôt que de risquer de fusiller tes données) genre
    /dossier_pour_tester_rsync
    /dossier_pour_tester_rsync/dossier_plein/sous_dossier/fichier
    /dossier_pour_tester_rsync/dossier_vide

    et en avant
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

Discussions similaires

  1. [Mail] Problème avec mon script d'envoi de mail
    Par leroivert dans le forum Langage
    Réponses: 18
    Dernier message: 02/12/2005, 00h26
  2. [Configuration] Problème avec un script de login utilisant une session
    Par HNT dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 27/09/2005, 19h56
  3. Problème avec un script d'ouverture de pop-up
    Par HNT dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/08/2005, 16h37
  4. problème avec un script de generation de nom de login
    Par black_code dans le forum Langage
    Réponses: 2
    Dernier message: 04/08/2005, 13h51
  5. [JOptionPane] Problème avec une boite de sauvegarde
    Par lanfeustdetroll dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 03/08/2005, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo