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 :

script bash - backup db mysql avec notification email failed ou success


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Par défaut script bash - backup db mysql avec notification email failed ou success
    Bonjour à tous,

    Je cherche un moyen d'optimiser un script (trouvé sur le net ) pour faire un backup database avec une notification email quand le backup réussi mais aussi quand il échoue. C'est sur cette dernière étape (Mes notions en script sont malheureusement très mauvaises)

    Pourriez-vous m'aider sur le sujet ?

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    #!/bin/bash
     
    # A Simple Shell Script to Backup Red Hat / CentOS / Fedora / Debian / Ubuntu Apache Webserver and SQL Database
    # Path to backup directories
    DIRS="/home/ubuntu/backup/bin"
     
    # Store todays date
    NOW=$(date +"%F")
     
    # Store backup path
    BACKUP="/home/ubuntu/backup/var/$NOW"
    #BACKUP="/mnt/cald-backup/database/$NOW"
     
     
    # Backup file name hostname.time.sql.gz
    MFILE="$(hostname).$(date +'%T').sql.gz"
     
     
     
     
    # Set MySQL username and password
    MYSQLUSER="userdb"
    MYSQLPASSWORD="password"
     
    # Remote SSH server cald-backup setup
    SSHSERVER="ipserver"                   # your remote ssh server
    SSHUSER="ubuntu"                        # username
    SSHDUMPDIR="/home/ubuntu/backup/var"    # remote ssh server directory to store dumps
     
     
    # Paths for binary files
    TAR="/bin/tar"
    MYSQLDUMP="/usr/bin/mysqldump"
    GZIP="/bin/gzip"
    SCP="/usr/bin/scp"
    SSH="/usr/bin/ssh"
    LOGGER="/usr/bin/logger"
     
    # make sure backup directory exists
    [ ! -d $BACKUP ] && mkdir -p ${BACKUP}
     
    # Log backup start time in /var/log/messages
    $LOGGER "$0: *** Backup started @ $(date) ***"
     
    # Backup MySQL
    $MYSQLDUMP  -u ${MYSQLUSER} --single-transaction  -h localhost -p${MYSQLPASSWORD} sooner | $GZIP -9 > ${BACKUP}/${MFILE}
     
    # Dump all local files to failsafe remote UNIX ssh server / home server
    $SSH ${SSHUSER}@${SSHSERVER} mkdir -p ${SSHDUMPDIR}/${NOW}
    $SCP -r ${BACKUP}/* ${SSHUSER}@${SSHSERVER}:${SSHDUMPDIR}/${NOW}
     
    # Log backup end time in /var/log/messages
    $LOGGER "$0: *** Backup Ended @ $(date) ***"
     
    # Check for backup file and log messages
    if [ -f $BACKUP/$MFILE ]
      then
    #    /usr/bin/mail -s "DB  ethan7888 backup completed successfully." useremail
     
      else
    #echo toto
        /usr/bin/mail -s "DB ethan7888 backup failed."  useremail
    fi
     
     
    exit

    Le script dans l’absolu (il est en production) fonctionne bien, le problème est que quoiqu'il arrive (donc y compris quand le backup échoue) j'ai un message de successfully, je ne suis pas sur mais je pense que c'est du au faite, que sur le serveur source (serveur db) il crée le dossier backup, et donc que tout est Ok d'ou l'email de success par mail ?

    Si c'est le cas, comment d'après vous, je pourrai faire en sorte qu'il m'envoie un failed dans le cas d'un problème lors du process ?


    Merci d'avance

    Cordialement

    Ethan7888

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    Bonjour,

    j'ai un message de successfully
    c'est d'autant plus étrange que la ligne qui envoie ce mail est commentée !
    et le script n'ayant pas d'action then devrait échouer, avec une message d'erreur.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Juin 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 2
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    c'est d'autant plus étrange que la ligne qui envoie ce mail est commentée !
    et le script n'ayant pas d'action then devrait échouer, avec une message d'erreur.
    Hum, mince, désolé, j'ai fait une boulette en copiant collant, c'était lors d'un de mes tests, donc ne tenez pas compte de la ligne commentée, je remet le script à jour ici :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    #!/bin/bash
     
    # A Simple Shell Script to Backup Red Hat / CentOS / Fedora / Debian / Ubuntu Apache Webserver and SQL Database
    # Path to backup directories
    DIRS="/home/ubuntu/backup/bin"
     
    # Store todays date
    NOW=$(date +"%F")
     
    # Store backup path
    BACKUP="/home/ubuntu/backup/var/$NOW"
     
     
     
    # Backup file name hostname.time.sql.gz
    MFILE="$(hostname).$(date +'%T').sql.gz"
     
     
     
     
    # Set MySQL username and password
    MYSQLUSER="userdb"
    MYSQLPASSWORD="password"
     
    # Remote SSH server cald-backup setup
    SSHSERVER="ipserver"                   # your remote ssh server
    SSHUSER="ubuntu"                        # username
    SSHDUMPDIR="/home/ubuntu/backup/var"    # remote ssh server directory to store dumps
     
     
    # Paths for binary files
    TAR="/bin/tar"
    MYSQLDUMP="/usr/bin/mysqldump"
    GZIP="/bin/gzip"
    SCP="/usr/bin/scp"
    SSH="/usr/bin/ssh"
    LOGGER="/usr/bin/logger"
     
    # make sure backup directory exists
    [ ! -d $BACKUP ] && mkdir -p ${BACKUP}
     
    # Log backup start time in /var/log/messages
    $LOGGER "$0: *** Backup started @ $(date) ***"
     
    # Backup MySQL
    $MYSQLDUMP  -u ${MYSQLUSER} --single-transaction  -h localhost -p${MYSQLPASSWORD} sooner | $GZIP -9 > ${BACKUP}/${MFILE}
     
    # Dump all local files to failsafe remote UNIX ssh server / home server
    $SSH ${SSHUSER}@${SSHSERVER} mkdir -p ${SSHDUMPDIR}/${NOW}
    $SCP -r ${BACKUP}/* ${SSHUSER}@${SSHSERVER}:${SSHDUMPDIR}/${NOW}
     
    # Log backup end time in /var/log/messages
    $LOGGER "$0: *** Backup Ended @ $(date) ***"
     
    # Check for backup file and log messages
    if [ -f $BACKUP/$MFILE ]
      then
        /usr/bin/mail -s "DB  ethan7888 backup completed successfully." useremail
     
      else
     
        /usr/bin/mail -s "DB ethan7888 backup failed."  useremail
    fi
     
     
    exit

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 644
    Par défaut
    quoi qu'il arrive, que la sauvegarde réussisse, ou pas, le fichier $BACKUP/$MFILE est créé, car la redirection est effectuée avant les commandes (dump | gzip).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ true >/tmp/ficTrue
    $ false >/tmp/ficFalse
    $ ls -1 /tmp/fic{True,False}
    /tmp/ficFalse
    /tmp/ficTrue
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Script PHP pour remplir mysql avec un fichier Excel
    Par Xeuch dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2013, 13h17
  2. Script automatisé backup BDD Mysql
    Par Dreamtale dans le forum Linux
    Réponses: 3
    Dernier message: 22/12/2010, 17h54
  3. Script d'authentification PHP / MySQL avec session
    Par king_soft dans le forum Langage
    Réponses: 6
    Dernier message: 09/07/2010, 15h00
  4. Script bash - besoin d'aide avec sed & awk
    Par Obiwan31 dans le forum Unix
    Réponses: 1
    Dernier message: 23/04/2010, 10h11
  5. Réponses: 3
    Dernier message: 15/06/2009, 22h24

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