Aller au contenu

Recherche scripts / conseils pour backup MySQL


Sujets conseillés

Guest Albert_H
Posté
Tu peux faire le dump en local et le transférer ensuite sur un ftp.

Alternative: copier le dump créé sur un autre serveur avec scp (nécessite accès au shell et clé ssh)

Pour backuper un dossier, il faut par exemple créer une archive avec "tar". Ensuite, copier cette archive où tu veux (email, autre serveur...)

Dan

Bonjour,

Oui ca ok, mais le but serais d envoyer directement sur un autre serveur, une idee?

Posté
Bonjour,

Oui ca ok, mais le but serais d envoyer directement sur un autre serveur, une idee?

Bah Dan t'a donné la soluce ;)

Par exemple tu peux lancer periodiquement avec cron un script qui dans l'ordre dump la base, la compresse et l'envoi sur un autre serveur avec scp.

Chez moi par exemple je dump toutes les bases toutes les 3h, j'ai un script qui fait des rotations au niveau des dump pour ne concerver que les dernieres plus quelques anciennes (une chaque debut de semaine pour le mois en cour puis une par mois). A coté de ca j'ai un script qui utilise rsync pour sauvegarder le repertoire des dumps ainsi que les repertoires utilisateurs (web + log) sur un serveur de sauvegarde distant.

Une fois les clées ssh echangées tout est automatique et on peut dormir tranquilement avec une securité acceptable (on peut utiliser plusieurs serveurs de sauvegarde eventuelement...).

Guest Albert_H
Posté
Bah Dan t'a donné la soluce ;)

Par exemple tu peux lancer periodiquement avec cron un script qui dans l'ordre dump la base, la compresse et l'envoi sur un autre serveur avec scp.

Chez moi par exemple je dump toutes les bases toutes les 3h, j'ai un script qui fait des rotations au niveau des dump pour ne concerver que les dernieres plus quelques anciennes (une chaque debut de semaine pour le mois en cour puis une par mois). A coté de ca j'ai un script qui utilise rsync pour sauvegarder le repertoire des dumps ainsi que les repertoires utilisateurs (web + log) sur un serveur de sauvegarde distant.

Une fois les clées ssh echangées tout est automatique et on peut dormir tranquilement avec une securité acceptable (on peut utiliser plusieurs serveurs de sauvegarde eventuelement...).

Oui ca j ai bien compris, mais tu n as pas compris ma question ;)

Le dump tu le fait en local, puis tu l envois, ca pas de pb. Ce que je voudrais savoir si on peux faire le dump directement sur un distant, sans utiliser le local!! est ce clair?

Posté (modifié)
Oui ca j ai bien compris, mais tu n as pas compris ma question ;)

Le dump tu le fait en local, puis tu l envois, ca pas de pb. Ce que je voudrais savoir si on peux faire le dump directement sur un distant, sans utiliser le local!! est ce clair?

Ahhh effectivement j'ai repondu completement à coté :whistling:

Ce que tu peux faire c'est mettre le script dont j'ai parlé précédement sur le serveur distant mais l'appeler depuis ton ordi par ssh (au lieu de se servir de ssh pour se connecter au serveur comme on fait d'habitude, tu peux lui faire executer une commande)...

Edit: evidement on peut se passer du script et tout faire par les commandes transmisent par ssh aussi...

Modifié par BigVicente
Posté (modifié)
Ahhh effectivement j'ai repondu completement à coté :whistling:

Ce que tu peux faire c'est mettre le script dont j'ai parlé précédement sur le serveur distant mais l'appeler depuis ton ordi par ssh (au lieu de se servir de ssh pour se connecter au serveur comme on fait d'habitude, tu peux lui faire executer une commande)...

Edit: evidement on peut se passer du script et tout faire par les commandes transmisent par ssh aussi...

Moi j'utilise ce code pour l'envoyer à mon mail ( gmail.com ) http://frenchfragfactory.net/ozh/my-projec...ail-attachment/

svp serait il possible de faire la commande tar pour compresser un dossier à partir d'un code php parceque j'ai l'access aux cmds ssh

Merci.

Modifié par grazianno
  • 2 years later...
Posté (modifié)

bonjour,

désolé de remonter ce post, (cela prouve que je cherche)

j'utilise la commande indiqué par Dan,

mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/$i.$1.sql.gz

toutefois, celle-ci écrase à chaque fois l'ancien fichier, est il possible d'apporter à cette commande une demande de nouveau fichiers plutôt qu'un écrasement

j'ai également tenté ce script, idem il écrase chaque base pour la nouvelle

#!/bin/sh
# Copyright © 2007 Julien Ricard
# This script is licensed under GNU GPL version 2.0 or above

### Config ###
# répertoires séparés par un espace
DIRS="/home/ home/mysql/*****"
# le répertoire temporaire pour compresser... laissez ça !
BACKUP_DIR=/tmp/backup
# pour avoir un fichier de sauvegarde par jour effacez la ligne NOW=1
NOW=$(date +%d-%m-%Y)
NOW=1

### Config MySQL ###
# le user qui se connecte à mysql pour faire le mysqldump et le mysql
# cet user doit avoir les droits "Select" et "Lock Tables" en global
# mettez root si vraiment vous le voulez
MYSQL_USER=*****
MYSQL_PASS=*******
MYSQL_HOST=localhost
# les chemins des exécutables de mysql
MYSQL_BIN=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
# celui de gzip
GZIP=/bin/gzip

### Config de votre compte FTP ###
# où uploader les fichiers sur le FTP
FTP_DIR=/httpdocs/******/
# votre login et votre mot de passe
FTP_USER=******
FTP_PASS=******
FTP_SERVER=**********
# chemin de ncftp
NCFTP_BIN=/usr/bin/ncftp

### E-mail pour les alertes ###
********l*@hotmail.com

### Après on ne touche à rien ###
[ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR || :
FILE=fs-$NOW.tar.gz
tar -zcf $BACKUP_DIR/$FILE $DIRS

DBS=$($MYSQL_BIN -u$MYSQL_USER -h$MYSQL_HOST -p$MYSQL_PASS -Bse 'show databases')
for db in $DBS
do
FILE=$BACKUP_DIR/mysql-$db-$NOW.sql.gz
$MYSQLDUMP -u $MYSQL_USER -h $MYSQL_HOST -p$MYSQL_PASS $db | $GZIP -9 > $FILE
done

$NCFTP_BIN -u$FTP_USER -p$FTP_PASS $FTP_SERVER << EOF
mkdir $FTP_DIR
echo "$NCFTP_BIN -u$FTP_USER -p$FTP_PASS $FTP_SERVER< mkdir $FTP_DIR"
cd $FTP_DIR
lcd $BACKUP_DIR
del *
mput *
quit
EOF

rm -f $BACKUP_DIR/*
if [ "$?" == "0" ]; then
OUT=/tmp/backup.fail
echo "Date : $(date)">$OUT
echo "Serveur : $(hostname)" >>$OUT
echo "Sauvegarde sur FTP échouée" >>$OUT
mail -s "Sauvegardé échouée" "$EMAIL" <$OUT
rm -f $OUT
fi

L'idéal serais de garder au moins 5 jours de base avant écrasement

Modifié par TrocWeb
Posté

hello,

tu peux par exemple mettre la date dans le nom du fichier :

mysqldump -u$USER -p$PASSWORD -e -q -Q --add-drop-table $i | gzip > $LOCALDIR/$i.$1.`date +'%Y-%m-%d'`.sql.gz

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...