mettre en place un cron job pour sauvegarder MySQL
7 messages
• Page 1 sur 1
Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics
-

kylliox - WRInaute discret

- Messages: 57
- Inscription: 20 Oct 2006
Aller pour commencer dans la bonne humeur voila ce que tu peut faire.
Dans my.cnf j'ai tu mets ca pour les logs:
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)
de temps en temps un dump de ta base et en même temp une petite relance des 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
Dans my.cnf j'ai tu mets ca pour les logs:
- Code: Tout sélectionner
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: Tout sélectionner
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: Tout sélectionner
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
- code
- WRInaute impliqué

- Messages: 648
- Inscription: 29 Juil 2005
Personnellement j'utilise ceci et c'est vraiment simple et efficace :
Pour une sauvegarde quotidienne :
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
Pour la tâche cron, éditer le fichier crontab et ajouter ceci :
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
Pour une sauvegarde quotidienne :
- Code: Tout sélectionner
#!/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: Tout sélectionner
#!/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: Tout sélectionner
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
- bigs32
- WRInaute impliqué

- Messages: 517
- Inscription: 8 Mai 2006
code a écrit:Personnellement j'utilise ceci et c'est vraiment simple et efficace :
Pour une sauvegarde quotidienne :
- Code: Tout sélectionner
#!/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: Tout sélectionner
#!/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: Tout sélectionner
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
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
- objectifweb
- WRInaute discret

- Messages: 130
- Inscription: 6 Oct 2004
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
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
7 messages
• Page 1 sur 1
Formation recommandée sur ce thème :
Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par les experts Google Analytics de Ranking Metrics.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Mettre en place un système de tache Cron
- Backup mysql & cron
- problème d'accès cron avec php/mysql
- Sauvegarde base mysql / Utilisation de cron tab dans Plesk
- Mettre un cron sous plesk et linux pas à pas ..
- supprimer une tache cron avec un php appelé par cron
- Mettre en place un decompte horaire ...
- Mettre en place une newsletter.
- Mettre en place un jeux concours
- Mettre en place un numéro surtaxé
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Optimiser le référencement d'un forum phpBB : réécriture d'URL - 20-09-2008
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- GoogleStats : analyse temps réel des visites de Google sur votre site - 02-10-2002
- Révélations sur eval.google.com (Rater Hub Google) - 03-06-2005
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Nouveau Picasa : Picasa Web Albums - 19-09-2006
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

