Modification de MySQL : Backup d'un serveur
La modification peut être annulée. Veuillez vérifier les différences ci-dessous pour voir si c’est bien ce que vous voulez faire, puis publier ces changements pour finaliser l’annulation de cette modification.
Version actuelle | Votre texte | ||
Ligne 1 : | Ligne 1 : | ||
{{EnCours|auteur=Adadov}} | |||
{{Auteur|Adadov}} | {{Auteur|Adadov}} | ||
[[Category:SysAdmin]] | |||
== Introduction == | == Introduction == | ||
Ligne 9 : | Ligne 11 : | ||
== Script de backup == | == Script de backup == | ||
< | <source lang="bash"> | ||
#!/bin/bash | #!/bin/bash | ||
MUSER='backup' | MUSER='backup' # Nom d'utilisateur pour MySQL | ||
BUSER='backup' | BUSER='backup' # Nom d'utilisateur pour la connexion SSH au serveur de backup | ||
BSRV=' | BSRV='srv2' # Adresse ou non du serveur de backup | ||
DEST='/backup' | DEST='/backup' # Répertoire où envoyer le fichier sur le serveur de backup | ||
DATE=`date +%y%m%d` | DATE=`date +%y%m%d` | ||
Ligne 30 : | Ligne 31 : | ||
############################################ | ############################################ | ||
cd $DATADIR | |||
for i in `${CFIND} * -type d`; do mysqldump -u ${MUSER} ${i} | ${CGZIP} -9 > ${BACKDIR}/${HOST}_${i}_${DATE}.sql.gz; done | |||
for i in `${CFIND} | |||
do | |||
done | |||
${CSCP} ${BACKDIR}/*_${DATE}.sql.gz ${BUSER}@${BSRV}:${DEST}/ | ${CSCP} ${BACKDIR}/*_${DATE}.sql.gz ${BUSER}@${BSRV}:${DEST}/ | ||
Ligne 50 : | Ligne 38 : | ||
${CFIND} ${BACKDIR}/*.sql.gz -ctime +${RETDAY} -type f -delete | ${CFIND} ${BACKDIR}/*.sql.gz -ctime +${RETDAY} -type f -delete | ||
</ | cd - | ||
</source> | |||
== Configuration du serveur MySQL == | == Configuration du serveur MySQL == | ||
Ligne 57 : | Ligne 47 : | ||
On autorisera cet utilisateur à se connecter uniquement depuis localhost vu qu'il n'aura pas de mot de passe. | On autorisera cet utilisateur à se connecter uniquement depuis localhost vu qu'il n'aura pas de mot de passe. | ||
{{ | {{LinuxTerminal2|user=root|text=mysql -p}} | ||
{{MySQLTerminal|text=GRANT USAGE,SELECT,LOCK TABLES | {{MySQLTerminal|text=GRANT USAGE,SELECT,LOCK TABLES ON *.* TO 'backup'@'localhost';}} | ||
Nous avons maintenant un utilisateur 'backup' capable de se connecter au serveur MySQL pour sauvegarder chacune des bases sans avoir besoin de saisir un mot de passe. | Nous avons maintenant un utilisateur 'backup' capable de se connecter au serveur MySQL pour sauvegarder chacune des bases sans avoir besoin de saisir un mot de passe. | ||
Ligne 64 : | Ligne 54 : | ||
== Configuration de la connexion SSH au serveur de backup == | == Configuration de la connexion SSH au serveur de backup == | ||
Pour se connecter au serveur | Pour se connecter au serveur SSH il faudra générer une clé SSH qui ne demandera pas de mot de passe. | ||
{{Warn|On prendra grand soin de ne pas laisser qui que ce soit accéder à la clé privée sinon il aurait facilement accès au serveur.}} | {{Warn|On prendra grand soin de ne pas laisser qui que ce soit accéder à la clé privée sinon il aurait facilement accès au serveur.}} | ||
Ligne 70 : | Ligne 60 : | ||
La création de la clé se fait depuis l'utilitaire 'ssh-keygen'. | La création de la clé se fait depuis l'utilitaire 'ssh-keygen'. | ||
{{ | {{LinuxTerminal2|user=root|text=ssh-keygen -t rsa -b 2048}} | ||
<output> | <output> | ||
Generating public/private rsa key pair. | Generating public/private rsa key pair. | ||
Ligne 97 : | Ligne 87 : | ||
Je déconseille très fortement d'utiliser 'root' sur le serveur distant pour recevoir le fichier, il vaut mieux avoir créer un utilisateur qui aura un droit d'écriture sur le dossier de destination pour éviter de mettre tout le système en péril si la clé venait à tomber entre de mauvaise mains. | Je déconseille très fortement d'utiliser 'root' sur le serveur distant pour recevoir le fichier, il vaut mieux avoir créer un utilisateur qui aura un droit d'écriture sur le dossier de destination pour éviter de mettre tout le système en péril si la clé venait à tomber entre de mauvaise mains. | ||
{{ | {{LinuxTerminal2|user=root|text=ssh-copy-id backup@srvdistant}} | ||
Une fois le mot de passe saisi, l'utilitaire se chargera de mettre en place la clé publique sur le serveur distant.<br /> | Une fois le mot de passe saisi, l'utilitaire se chargera de mettre en place la clé publique sur le serveur distant.<br /> | ||
Il ne reste plus qu'à tester la connexion. | Il ne reste plus qu'à tester la connexion. | ||
{{ | {{LinuxTerminal2|user=root|text=ssh backup@srvdistant}} | ||
Elle devrait se faire sans aucune demande de mot de passe. | Elle devrait se faire sans aucune demande de mot de passe. | ||