mettre en place un cron job pour sauvegarder MySQL

Discussion dans 'Administration d'un site Web' créé par trustno1, 7 Janvier 2007.

  1. trustno1
    trustno1 WRInaute occasionnel
    Inscrit:
    7 Août 2005
    Messages:
    359
    J'aime reçus:
    0
    Bonjour,
    comment mettre en place un cron pour sauvegarder bd mysql tous les x jours.

    merci
     
  2. nnx
    nnx WRInaute occasionnel
    Inscrit:
    22 Janvier 2003
    Messages:
    330
    J'aime reçus:
    0
    Fais une recherche sur le forum : la question a été souvent abordée, que tu sois sur un mutu ou un dédié.
     
  3. kylliox
    kylliox Nouveau WRInaute
    Inscrit:
    20 Octobre 2006
    Messages:
    49
    J'aime reçus:
    0
    Aller pour commencer dans la bonne humeur voila ce que tu peut faire.

    Dans my.cnf j'ai tu mets ca pour les logs:
    Code:
    log             = /var/log/mysql/mysql.log
    log-bin                 = /var/log/mysql/mysql-bin.log
    log-error       = /var/log/mysql/mysqld.err
    log-update      = /var/log/mysql/bdd.log
    ensuite tu fait un script bash journalier qui récupére les logs du serveurs (il y a toutes les transactions de la journée dedans)
    Code:
    tar -cpPzvf bdd.tar.gz `find /var/log/mysql -type f -print | grep "bdd."`
    de temps en temps un dump de ta base et en même temp une petite relance des logs :
    Code:
    for i in `find /var/lib/mysql/* -type d`; do
        a=`echo $i | cut -d / -f 5`
        mysqldump -u dump -pdumppass --opt $a | gzip > bdd.gz
    done
    rm -rf /var/log/mysql/bdd*
    mysqladmin -u flush -pflushpass flush-logs
    bien sur l'user qui fait ces manips dans cron doit avoir les bon droits.
    dans mysql il faut créer un user flush et un autre dump qui n'ont aucun droit sauf les taches pour lesquels ils sont assignées.

    Voila
     
  4. billyboylindien
    billyboylindien WRInaute occasionnel
    Inscrit:
    28 Février 2005
    Messages:
    425
    J'aime reçus:
    0
  5. code
    code WRInaute impliqué
    Inscrit:
    29 Juillet 2005
    Messages:
    617
    J'aime reçus:
    0
    Personnellement j'utilise ceci et c'est vraiment simple et efficace :

    Pour une sauvegarde quotidienne :
    Code:
    #!/bin/sh
      # sauvegarde des bases de données hebdommadaire
      # A modifier:
      USER=xxxxx
      PASS=xxxxxxxxxxxx
      DESTINATION=/backup/daily/mysql
    
      DATE=`date +%Y-%m-%d`
      TIME=`date +%H:%M`
      DAY=`date +%d`
      DEL=`TZ=CST+24 date +%Y-%m-%d`
    
      # backup de la semaine
      mysqldump -u $USER --password=$PASS nomdelabase | gzip > $DESTINATION/nomdelabase-$TIME.$DATE.sql.gz
    
    //répéter les 2 lignes précédentes autant de fois que de bases à sauvegarder
    
      # efface le backup de la veille
      rm -rf $DESTINATION/*.$DEL.sql.gz
     
    
    Cela se passe donc en 2 temps : Sauvegarde de (des) bases et suppression des sauvegardes de la veille (inutile de garder plus d'une journée car je fais une sauvegarde toutes les 2 heures + une sauvegarde hebdomadaire et que ce sont des tables qui ont un très grand nombre d'enregistrement par jour donc une sauvegarde de 3 jours n'a aucun intérêt)


    Backup hebdommadaire pour les tables qui ont peu d'enregistrements
    Code:
    
     #!/bin/sh
      # sauvegarde des bases de données hebdommadaire
      # A modifier:
      USER=xxxx
      PASS=xxxx
      DESTINATION=/backup/weekly/mysql
    
      DATE=`date +%Y-%m-%d`
      WEEK=`date +%W`
      let "DEL=$WEEK-2"
    
      # backup de la semaine
      mysqldump -u $USER --password=$PASS nomdelabase | gzip > $DESTINATION/nomdelabase-$WEEK.$DATE.sql.gz
     
      # efface le backup vieux de 2 semaines
      rm -rf $DESTINATION/*-$DEL.*.sql.gz
    
    Pour la tâche cron, éditer le fichier crontab et ajouter ceci :

    Code:
    0 0,6,9,12,15,18,21 * * * root /usr/bin/backup-daily-bdd 2>&1 > /dev/null   # Sauvegarde quotidienne des bases de données 
    1 0 * * 0 root /usr/bin/backup-weekly-bdd 2>&1 > /dev/null   # Sauvegarde hebdomadaire des bases de données 
    
    Dans le premier cas, les bases sont sauvées tous les jours à 00h00, 6h00, 9h00 etc.. dans le 2eme cas, à minuit et 1 minute tous les lundis matins
     
  6. bigs32
    bigs32 WRInaute occasionnel
    Inscrit:
    8 Mai 2006
    Messages:
    451
    J'aime reçus:
    0
    ca a l'air super tout ca.mais pour un novice c'est pas tres clair comme explication
    faut copier le code en quelle extention ?
    finallement il y a combien de fichiers en tout

    pensez à des gars qui connaissent pas grande chose , comme moi par exemple .

    merci les gars
     
  7. objectifweb
    objectifweb WRInaute discret
    Inscrit:
    6 Octobre 2004
    Messages:
    110
    J'aime reçus:
    0
    Bonjour

    Il y a plus simple, tu vas sur webcron.org qui est un cron mais par le web, donc sans chipoter à ton serveur, et en plus ils fournissent un script qui sauve tes bases dans un répertoire, donc tu sauves la totalité en ftp par la suite, et tu as toujours plusieurs versions en ligne de ta DB

    Patrick
     
Chargement...
Similar Threads - mettre place cron Forum Date
AMP stories : quelle stratégie SEO mettre en place ? Référencement Google 12 Mars 2020
Comment mettre en place le paiement sur Woocommerce ? e-commerce 4 Juin 2019
Cookies et RGPD : mettre en place le script tarteauciron.js Développement d'un site Web ou d'une appli mobile 18 Février 2019
Mettre en place sa stratégie de netlinking Netlinking, backlinks, liens et redirections 24 Mars 2016
DoubleClick for publisher: comment mettre en place? Monétisation d'un site web 23 Mars 2016
Comment mettre en place un stystème de notation avec étoiles? Débuter en référencement 7 Avril 2015
Mettre en place une stratégie pour Facebook Facebook 2 Décembre 2014
Comment mettre en place un système de rachat de livres sur un site? e-commerce 26 Novembre 2013
Mettre en place un système de code de réduction sur un site E-commerce: Développement d'un site Web ou d'une appli mobile 28 Août 2012
URL Rewritting - Impossible à mettre en place URL Rewriting et .htaccess 30 Mars 2012
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice