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 :

le brouillon d'un script brouillon!


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 275
    Par défaut le brouillon d'un script brouillon!
    bonjour,

    j'ai donc fait une pseudo copie de plusieurs scripts pour faire un systeme de sauvegarde avec un tar afin de le balancer ensuite sur un autre serveur (ncftpput)
    j'ai plusieurs problemes ...

    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
    #!/bin/bash
     
    rm -f /home/backup/sauvegarde_du_jour.txt
    touch /home/backup/sauvegarde_du_jour.txt
    chown backup /home/backup/sauvegarde_du_jour.txt
     
    echo "ETAT DE VOTRE SAUVEGARDE  pour le `date +"%d-%m-%y"`" >> /home/backup/sauvegarde_du_jour.txt
    echo -e "---------------------------------" >> /home/backup/sauvegarde_du_jour.txt
     
    mysqldump -uroot -p(motdepasse) -A >/home/touteslesbases.sql
     
    echo -e "Dump mysql effectué (en principe...) " >> /home/backup/sauvegarde_du_jour.txt
     
     
    rm -f /home/backup/sauvegarde/*.*
     
    echo "--------------------------------" >> /home/backup/sauvegarde_du_jour.txt
    echo -e "suppression de l'aincien dossier  (en principe...) " >> /home/backup/sauvegarde_du_jour.txt
     
     
    tar -zcvf /home/backup/sauvegarde/home.`date --rfc-3339=seconds`.tar.gz --exclude /home/backup --exclude /home/coppermine /home /etc/bind/named.conf /var/bind/pri/ /usr/local/lib/php5 /var/spool/cron/crontabs /usr/local/apache/conf/httpd.conf 
     
    ncftpput  -R -m  -u (user) -p (pass) xx.xx.xx.xx.xx   /ledossier /home/backup/sauvegarde/essai.txt
     
    echo "------------------------------------------------------------------------" >> /home/backup/sauvegarde_du_jour.txt
    echo  "copie de :" >> /home/backup/sauvegarde_du_jour.txt
    echo  "/etc/bind/named.conf " >> /home/backup/sauvegarde_du_jour.txt
    echo  "/var/bind/pri/ " >> /home/backup/sauvegarde_du_jour.txt
    echo  "/usr/local/lib/php5 " >> /home/backup/sauvegarde_du_jour.txt
    echo  "/var/spool/cron/crontabs" >> /home/backup/sauvegarde_du_jour.txt
    echo  "/usr/local/apache/conf/httpd.conf" >> /home/backup/sauvegarde_du_jour.txt
    echo  "(fait dans un TAR a la date du jour )" >> /home/backup/sauvegarde_du_jour.txt
    echo  " exclude /home/backup  ET  /home/coppermine"  >> /home/backup/sauvegarde_du_jour.txt
    echo "------------------------------------------------------------------------" >> /home/backup/sauvegarde_du_jour.txt
    echo "A demain .... normalement ... !!!" >> /home/backup/sauvegarde_du_jour.txt
    echo -e "---------------------------------" >> /home/backup/sauvegarde_du_jour.txt
    mail -s "Le taré du jour ! (`date +"%d-%m-%y-%H-%M"`)" 'lemail@free.fr' </home/backup/sauvegarde_du_jour.txt
    comment puis-je eviter de repeter " >> /home/backup/sauvegarde_du_jour.txt" a chaque fin de ligne echo ?(et que veut dire echo -e ?)
    mon mysqldump ne fonctionne pas (en ligne de commande, oui)
    ...et j'aimerai bien pouvoir controler que c'est bien le nouveau (pas celui de la veille ...avec un controle de date ?)
    rm -f /home/backup/sauvegarde/*.* non plus (en ligne de commande, oui)
    un detail supplementaire :
    tar -zcvf /home/backup/sauvegarde/home.`date --rfc-3339=seconds`.tar.gz => mon fichier ne finit pas par ".tar.gz" , bien que ça fonctionne quand meme (je le renomme et je peux le decompresser ... ouf )
    le ncftpput ne fonctionne pas non plus (ligne de commande, oui)

    ce que je comprend pas trop, c'est que le rm, ncftpput, mysqldump, ne fonctionnenent pas , et le tar, si !!??

    désolé de vous assaillir de questions ...

    merci d'avance pour vos reponses !

  2. #2
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Par défaut
    Salut,

    Citation Envoyé par zugolin
    comment puis-je eviter de repeter " >> /home/backup/sauvegarde_du_jour.txt" a chaque fin de ligne echo ?(et que veut dire echo -e ?)
    comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    MON_FIC="/home/backup/sauvegarde_du_jour.txt"
    echo $MON_FIC
    
    Résultat :
    /home/backup/sauvegarde_du_jour.txt
    Code man echo : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -e
        Interpréter les séquences de caractères précédées d'un backslash '\' suivantes :
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    [commande externe] ne fonctionne pas (en ligne de commande, oui)
    J'en déduis que tu lances le script depuis un cron... il faut donc indiquer le chemin complet des commandes externes.
    par exemple : /bin/rm
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre éclairé Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 275
    Par défaut
    merci a vous deux!!

    mais, bon ... c'est toujours pas bon
    Winnt :
    d'ac pour "echo $MON_FIC" , mais je croyais qu'il y avait une soluce plus rapide pour ça , du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo -e "------------------------------\n"
     "copie de : \n" >>
    "/etc/bind/named.conf  \n" >> /home/backup/sauvegarde_du_jour.txt
    ... pas grave, ça , de toute façon...
    merci pour explication du -e (j'avais oublié le nam developpez !!)
    N_BaH:
    oui, ce sera depuis le cron;
    pour l'instant, c'est avec putty.

    /usr/bin/mysqldump etc....
    ou
    /bin/rm -f /home/backup/sauvegarde/*
    ne fonctionne toujours pas (ssh, oui)
    edit:
    ncftpput, non plus

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 651
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LOG=/home/backup/sauvegarde_du_jour.txt
     
    echo "------------------------------
    copie de : 
    etc/bind/named.conf" >> $LOG
    les commandes externes ne fonctionnent pas, sans messages d'erreur ?

    place un set -x sous le shebang, ça t'en dira peut-être plus...

    le script est exécutable ? comment le lances-tu ?


    __
    parfois c'est simplement parce que l'écran n'est pas allumé que rien ne s'affiche
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre éclairé Avatar de zugolin
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 275
    Par défaut
    pas de message d'erreur
    a part ncftpput
    could not stat /home/backup/sauvegarde/*.*
    : No such file or directory.
    ncftpput /home/backup/sauvegarde/*.*
    : no valid files were specified.
    mais il fonctionne en ligne

    "place un set -x sous le shebang, ça t'en dira peut-être plus..."
    euh..... comment qu'on fait ça ?

    script exécutable (root, en 644)

    voila où j'en suis :

    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
    #!/bin/bash
     
    rm -f /home/backup/sauvegarde_du_jour.txt
    touch /home/backup/sauvegarde_du_jour.txt
    chown backup /home/backup/sauvegarde_du_jour.txt
     
    echo "ETAT DE VOTRE SAUVEGARDE  pour le `date +"%d-%m-%y"` 
    --------------------------------- " >> /home/backup/sauvegarde_du_jour.txt
    rm -Rf /home/touteslesbases*
    /usr/bin/mysqldump -uroot -p(pass) -A >/home/touteslesbases_du_`date +"%d-%m-%y"`.sql
     
    echo -e "Dump mysql effectué (en principe...) " >> /home/backup/sauvegarde_du_jour.txt
     
    #suprime l'ancien home.tar
    /bin/rm -f /home/backup/sauvegarde/*
     
    echo "--------------------------------
    suppression de l'aincien dossier  (en principe...) " >> /home/backup/sauvegarde_du_jour.txt
     
    #on nomme le tar a la date et on copie :
    tar -zcvf /home/backup/sauvegarde/home.`date --rfc-3339=seconds`.tar.gz --exclude /home/backup --exclude /home/coppermine /home /etc/bind/named.conf /var/bind/pri/ /usr/local/lib/php5 /var/spool/cron/crontabs /usr/local/apache/conf/httpd.conf 
    ncftpput  -R -m  -u (user) -p (pass) xx.xx.xx.xx  / /home/backup/sauvegarde/*.*
     
    echo "------------------------------
    copie de : 
    /etc/bind/named.conf  
    /var/bind/pri/ 
    /usr/local/lib/php5 
    /var/spool/cron/crontabs 
    /usr/local/apache/conf/httpd.conf 
    (fait dans un TAR a la date du jour ) 
    exclude /home/backup  ET  /home/coppermine 
    -----------------------------------------
    A demain .... normalement ... !!! 
    --------------------------------- " >> /home/backup/sauvegarde_du_jour.txt
    mail -s "Le taré du jour ! (`date +"%d-%m-%y-%H-%M"`)" 'lemail@free.fr' </home/backup/sauvegarde_du_jour.txt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/09/2005, 19h49

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