Outils de récupération de l’hébergement

Voici une méthode efficace pour effectuer une sauvegarde avec rsync qui permet une synchronisation distante, que nous allons rendre périodique. L’avantage de la synchronisation est de permettre la mise en place de systèmes plus réguliers de sauvegarde puisque seule l’information modifiée sera remplacée sur l’emplacement de sauvegarde.

Activer RSYNC sur le serveur qui contient les données à sauvegarder (ns1):

Pour activer le démon de synchronisation rsync sous UBUNTU 16.04:

sudo systemctl enable rsync

sudo service rsync start

Pour activer la synchronisation sous UBUNTU 14.04 avec rsync, aller modifier la ligne dans /etc/default/rsync ici:

RSYNC_ENABLE=true

Ceci n’est pas à faire sous Ubuntu:

Vous voudrez probablement lancer le démon rsync depuis inetd. Pour cela, vous devez d’abord ajouter le service rsync dans le fichier /etc/services (s’il n’y est pas déjà), comme ceci :
nano /etc/services

rsync 873/tcp

Pour lancer le démon avec inetd, ajoutez ce qui suit à votre fichier /etc/inetd.conf :
nano /etc/inetd.conf

rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon

N’oubliez pas d’envoyer à inetd un signal HUP pour lui dire de relire son fichier de configuration après que vous l’avez modifié.
ps -faux
kill -HUP pid (pour inetd)

Ensuite, créez le fichier de configuration /etc/rsyncd.conf:

nano /etc/rsyncd.conf

log file = /var/log/rsync.log

[photos]
uid = web1
gid = client1
path = /var/www/clients/client1/web1/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup photos.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[wordpress]
uid = web2
gid = client1
path = /var/www/clients/client1/web2/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup wordpress.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[piwik]
uid = web3
gid = client1
path = /var/www/clients/client1/web3/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup piwik.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[nuage]
uid = web4
gid = client1
path = /var/www/clients/client1/web4/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup nuage.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[magasin]
uid = web5
gid = client1
path = /var/www/clients/client1/web5/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup store.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[webmail]
uid = web6
gid = client1
path = /var/www/clients/client1/web6/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup webmail.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[w3pw]
uid = web7 
gid = client1
path = /var/www/clients/client1/web7/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup mdp.infolaf.net
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[virtualbox]
uid = web10
gid = client1
path = /var/www/clients/client1/web10/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup virtualbox.reseau.maison
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[listes]
uid = web14
gid = client1
path = /var/www/clients/client1/web14/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup virtualbox.reseau.maison
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[blog]
uid = web16
gid = client1
path = /var/www/clients/client1/web16/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup blog.infolaf.ca
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[courriel] 
uid = vmail 
gid = vmail 
path = /var/vmail 
hosts allow = 192.168.0.11 #ici votre IP 
comment = Backup courriel 
read only = true 
auth users = test 
secrets file = /etc/rsyncd.scrt

[mysql]
uid = infolaf
gid = infolaf
path = /home/infolaf/backups/mysql_DB
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup mysql
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[scripts_NS1]
uid = infolaf
gid = infolaf
path = /home/infolaf/scripts/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup scripts_NS1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[rsync_NS1]
uid = root
gid = root
path = /etc/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup rsync_NS1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[bind_NS1]
uid = root
gid = root
path = /etc/bind
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup bind_NS1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

#[crontab_NS1]
#uid = infolaf
#gid = infolaf
#path = /home/infolaf
#hosts allow = 192.168.0.11 #ici votre IP
#comment = Backup crontab_NS1
#read only = true
#auth users = test
#secrets file = /etc/rsyncd.scrt

[www-full]
uid = root
gid = root
path = /var/www/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup full path of www disk
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

Le fichier secret /etc/rsyncd.scrt devra contenir dans cet exemple les permissions 640:

personne1:motdepasse1
personne2:motdepasse2

nano /etc/rsyncd.scrt

test:votremotdepasse

chmod 640 /etc/rsyncd.scrt

Vous pouvez maintenant lancer rsync:

service rsync start

Le read only activé permet de protéger vos fichiers en écriture. Si pour une quelconque raison, vous souhaitez enlever cet attribut, revoyez alors toute la configuration de RSYNC.

Mettre l’utilisateur www-data permet d’être sûr que RSYNC aura un accès en lecture si vos fichiers de sauvegarde concernent des sites sur apache sans ISPConfig.

Toujours pour des raisons de sécurité, il est moins souple mais plus sage de n’indiquer que les ips des clients autorisés à faire une sauvegarde dans l’attribut hosts allow.

J’ai créé le fichiers script suivant (backup_mysql.sh) sur ns1 qui va servir à faire la sauvegarde des bases de données MySQL des sites web de mon serveur Apache :

Le scripts va extraire les bases de données et en faire une sauvegarde vers un répertoire sur ns1. Lorsque rsync sera lancé par la machine physique host1, les bases de données seront sauvegardées en même temps que les sites web.
on redevient l’usager infolaf (pas su surtout)

exit

mkdir -p /home/infolaf/backups/mysql_DB

mkdir /home/infolaf/scripts/

nano /home/infolaf/scripts/backup_mysql.sh

#mysql> -uroot -p<votremotdepasse> -e FLUSH TABLES WITH READ LOCK;
mysqldump -uroot -p<votremotdepasse> --databases c1photos > /home/infolaf/backups/mysql_DB/c1photos.sql 
mysqldump -uroot -p<votremotdepasse> --databases dbispconfig > /home/infolaf/backups/mysql_DB/dbispconfig.sql
mysqldump -uroot -p<votremotdepasse> --databases c1wordpress > /home/infolaf/backups/mysql_DB/c1wordpress.sql
mysqldump -uroot -p<votremotdepasse> --databases c1blog > /home/infolaf/backups/mysql_DB/c1blog.sql
mysqldump -uroot -p<votremotdepasse> --databases c1roundcubemail > /home/infolaf/backups/mysql_DB/c1roundcubemail.sql
mysqldump -uroot -p<votremotdepasse> --databases c1piwik > /home/infolaf/backups/mysql_DB/c1piwik.sql
mysqldump -uroot -p<votremotdepasse> --databases c1oscommerce > /home/infolaf/backups/mysql_DB/c1oscommerce.sql
mysqldump -uroot -p<votremotdepasse> --databases c1owncloud > /home/infolaf/backups/mysql_DB/c1owncloud.sql
mysqldump -uroot -p<votremotdepasse> --databases c1w3pw > /home/infolaf/backups/mysql_DB/c1w3pw.sql
mysqldump -uroot -p<votremotdepasse> --databases c1dada > /home/infolaf/backups/mysql_DB/c1dada.sql
#mysql> -uroot -p<votremotdepasse> -e UNLOCK TABLES;

echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les bases de donnees MySQL de vos sites web sont bien sauvegardee localement dans ~/backups/mysql_DB/"
echo ""
echo "La sauvegarde sera complete lorsque host1 lancera son script de sauvegarde des sites web"
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur infolaf@ns1.infolaf.net"

 

chmod 777 /home/infolaf/scripts/backup_mysql.sh

et on ajoute les commandes suivantes dans crontab :

crontab -e

# m h dom mon dow command
MAILTO=root
00 00 * * 0-7 sh /home/infolaf/scripts/backup_mysql.sh

La partie cliente (sur le serveur physique host1)

On fait la même chose pour faire des sauvegardes planifiées sur host1 :

Pour activer la synchronisation avec rsync, aller modifier la ligne dans /etc/default/rsync ici:

RSYNC_ENABLE=true

Ensuite, créez le fichier de configuration /etc/rsyncd.conf:
nano /etc/rsyncd.conf

[scripts_HOST1]
uid = nas
gid = nas
path = /home/nas/scripts
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup scripts_HOST1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[rsync_HOST1]
uid = root
gid = root
path = /etc/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup rsync_HOST1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[bind_HOST1]
uid = root
gid = root
path = /etc/bind
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup bind_HOST1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[samba_HOST1]
uid = root
gid = root
path = /etc/samba/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup samba_HOST1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[nfs_HOST1]
uid = root
gid = root
path = /etc/
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup nfs_HOST1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

[mediatomb_HOST1]
uid = root
gid = root
path = /etc/mediatomb
hosts allow = 192.168.0.11 #ici votre IP
comment = Backup mediatomb_HOST1
read only = true
auth users = test
secrets file = /etc/rsyncd.scrt

Le fichier secret /etc/rsyncd.scrt devra contenir dans cet exemple les permissions 640:

personne1:motdepasse1
personne2:motdepasse2

nano /etc/rsyncd.scrt

test:votremotdepasse

chmod 640 /etc/rsyncd.scrt

Vous pouvez maintenant lancer rsync:
service rsync start

Il est très simple une fois que le serveur est configuré d’effectuer une synchronisation :

exemple :
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::nuage/ /media/nas1/Backups/www/nuage rsync -avz --stats --ignore-errors xx.xx.xx.xx::backup_site1/ /mesbackups/site1
xx.xx.xx.xx est l’ip distante

Créer les scripts pour l’exécution de la commande de sauvegarde automatique :

mkdir -p /home/nas/scripts/rsync/

nano /home/nas/scripts/rsync/backup_mail-ns1.sh

echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les courriels sont bien sauvegardee localement dans /media/nas1/Backups/vmail/"
echo ""
echo ""
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison"
echo ""
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::courriel/ /media/nas1/Backups/vmail/

chmod 777 /home/nas/scripts/rsync/backup_mail-ns1.sh

nano /home/nas/scripts/rsync/backup_web-ns1.sh

echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les sites web sont bien sauvegardee localement dans /media/nas1/Backups/<votresiteweb>/"
echo ""
echo ""
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison"
echo ""
#rsync -avz --stats --delete --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.100::web/ /media/nas1/Backups/www
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::nuage/ /media/nas1/Backups/www/nuage
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::piwik/ /media/nas1/Backups/www/piwik
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::photos/ /media/nas1/Backups/www/photos
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::magasin/ /media/nas1/Backups/www/magasin
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::wordpress/ /media/nas1/Backups/www/wordpress
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::blog/ /media/nas1/Backups/www/blog
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::webmail/ /media/nas1/Backups/www/webmail
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::w3pw/ /media/nas1/Backups/www/w3pw
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::virtualbox/ /media/nas1/Backups/www/virtualbox
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::listes/ /media/nas1/Backups/www/listes
rsync -avz --stats --delete --exclude='quota.*' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::www-full/ /media/nas2/Backups/www-full_path

chmod 777 /home/nas/scripts/rsync/backup_web-ns1.sh

nano /home/nas/scripts/rsync/backup_mysql-ns1.sh

 

echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les bases de donnees MYSQL sont bien sauvegardee localement dans /media/nas1/Backups/MySQL_db/"
echo ""
echo ""
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison"
echo ""
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::mysql/ /media/nas1/Backups/MySQL_db

chmod 777 /home/nas/scripts/rsync/backup_mysql-ns1.sh

nano /home/nas/scripts/rsync/backup_scripts.sh

echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les scripts de NS1 sont bien sauvegarde dans /media/nas1/Backups/Scripts/NS1"
echo "Ce message vous confirme que les scripts de HOST1 sont bien sauvegarde dans /media/nas1/Backups/Scripts/HOST1"
echo ""
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison"
echo ""
echo "scripts_NS1"
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::scripts_NS1/ /media/nas1/Backups/Scripts/NS1
echo ""
echo "scripts_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::scripts_HOST1/ /media/nas1/Backups/Scripts/HOST1

chmod 777 /home/nas/scripts/rsync/backup_scripts.sh

nano /home/nas/scripts/rsync/backup_config.sh

echo "Bonjour,"
echo ""
echo "Ce message vous confirme que les fichiers de configuration de NS1 sont bien sauvegardes dans /media/nas1/Backups/Config/NS1"
echo "Ce message vous confirme que les fichiers de configuration de HOST1 sont bien sauvegardes dans /media/nas1/Backups/Config/HOST1"
echo ""
echo ""
echo "Message produit par le script de sauvegarde execute par CRON sur nas@host1.reseau.maison"
echo ""
#rsync -avz --stats --delete --exclude='lost+found/' --include='/bind/***' --exclude='**'
echo ""
echo "rsync_NS1"
rsync -avz --stats --delete --exclude='lost+found/' --include='rsyncd.conf' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::rsync_NS1/ /media/nas1/Backups/Config/NS1/rsync
echo ""
echo "rsync_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='rsyncd.conf' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::rsync_HOST1/ /media/nas1/Backups/Config/HOST1/rsync
echo ""
echo "bind_NS1"
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.10::bind_NS1/ /media/nas1/Backups/Config/NS1/bind
echo ""
echo "bind_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::bind_HOST1/ /media/nas1/Backups/Config/HOST1/bind
echo ""
echo "samba_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='smb.conf' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::samba_HOST1/ /media/nas1/Backups/Config/HOST1/
echo ""
echo "nfs_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='exports' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::nfs_HOST1/ /media/nas1/Backups/Config/HOST1/
echo ""
echo "mediatomb_HOST1"
rsync -avz --stats --delete --exclude='lost+found/' --include='config.xml' --exclude='**' --password-file /home/nas/scripts/rsync/rsync_pass test@192.168.0.11::mediatomb_HOST1/ /media/nas1/Backups/Config/HOST1/

chmod 777 /home/nas/scripts/rsync/backup_config.sh

On créer le fichier de mot de passe d’exécution automatique. Le mot de passe est celui indiqué dans le fichier /etc/rsyncd.scrt

nano /home/nas/scripts/rsync/rsync_pass

votremotdepasse

on change les permissions du fichier.

chmod 640 /home/nas/scripts/rsync/rsync_pass

et on ajoute les commandes suivantes dans crontab :

crontab -e

# m h dom mon dow command
MAILTO=postmaster@reseau.maison
15 00 * * 0-7 sh /home/nas/scripts/rsync/backup_mysql-ns1.sh
20 00 * * 0-7 sh /home/nas/scripts/rsync/backup_mail-ns1.sh
30 00 * * 0-7 sh /home/nas/scripts/rsync/backup_web-ns1.sh
45 00 * * 0-7 sh /home/nas/scripts/rsync/backup_scripts.sh
50 00 * * 0-7 sh /home/nas/scripts/rsync/backup_config.sh

Sauvegarde des comptes courriels (GMAIL-YAHOO) – Sur serveur virtuel ns1

Pré-requis: créer pour chacun des comptes que l’on désire sauvegarder un compte sur un autre serveur IMAP vers lequel la duplication s’effectuera.

Installer les dépendances pour imapsync

apt-get install libdate-manip-perl libterm-readkey-perl libterm-readkey-perl libdigest-hmac-perl libdate-manip-perl libmail-imapclient-perl libio-socket-ssl-perl liburi-perl libfile-copy-recursive-perl libio-tee-perl
apt-get install makepasswd rcs perl-doc libmail-imapclient-perl make git-core git-doc git-svn git-gui gitk

Ensuite, télécharger le code source le plus récent à partir du projet github vers votre répertoire /tmp:

cd /tmp

git clone git://github.com/imapsync/imapsync.git

Finalement, naviguer vers le répertoire téléchargé et installer imapsync:

cd imapsync

sudo make install

Si vous avez l’erreur : Can’t locate Unicode/String.pm

voir INSTALL et taper :

perl -MCPAN -e "install Unicode::String"

Added option --logfile. Default is like LOG_imapsync/YYYY_MM_DD_HH_MM_SS_user2.txt

J’ai créé les fichiers scripts suivants sur ns1 qui vont servir à faire les sauvegardes de mes comptes courriel importants avec le logiciel imapsync.

backup_gmail.sh
backup_radio-canada.sh
backup_yahoo.sh

on redevient l’usager infolaf (pas root surtout)
nano /home/infolaf/scripts/backup_gmail.sh

imapsync --host1 imap.gmail.com --user1 votreemail@gmail.com --password1 --host2 imap.infolaf.net --user2 backup_votreemail_gmail@reseau.maison --password2 --syncinternaldates --ssl1 --ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch --addheader --delete2 --nolog

chmod 777 /home/infolaf/scripts/backup_gmail.sh

nano /home/infolaf/scripts/backup_radio-canada.sh

imapsync --host1 imap.gmail.com --user1 votreemail@radio-canada.ca --password1 --host2 imap.infolaf.net --user2 backup_radio-canada@reseau.maison --password2 --syncinternaldates --ssl1 --ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch --addheader --delete2 --nolog

chmod 777 /home/infolaf/scripts/backup_radio-canada.sh

nano /home/infolaf/scripts/backup_yahoo.sh

imapsync --host1 imap.mail.yahoo.com --user1 votreemail@yahoo.fr --password1 --host2 imap.infolaf.net --user2 backup_votreemail_yahoo@reseau.maison --password2 --syncinternaldates --ssl1 --ssl2 --noauthmd5 --split1 100 --split2 100 --port1 993 --port2 993 --exclude "All Mail|Spam|Trash" --allowsizemismatch --addheader --delete2 --nolog

chmod 777 /home/infolaf/scripts/backup_yahoo.sh

et on ajoute les commandes suivantes dans crontab :
#Si la clause > log n’est pas spécifiée, cron enverra automatiquement un mail de confirmation. Pour éviter cela il suffit de spécifier > /dev/null

crontab -e

# m h dom mon dow command
MAILTO=root
00 00 * * 0-7 sh /home/infolaf/scripts/backup_mysql.sh
00 04 * * 1 sh /home/infolaf/scripts/backup_gmail.sh
30 04 * * 1 sh /home/infolaf/scripts/backup_yahoo.sh
00 05 * * 1 sh /home/infolaf/scripts/backup_radio-canada.sh

Information de référence:
Restauration et sauvegarde MySQL:

Sauvegarde des bases de données de MySQL:

mysqldump -uroot -p --databases c1photos > /home/infolaf/backups/mysql_DB/c1photos.sql

Restaurer une sauvegarde dans le format SQL :

phpmyadmin ne permet pas d’importer des bases de données de plus de 2M. Un moyen de contourner ce problème est de téléverser avec filezilla cette sauvegarde dans /tmp du serveur et ensuite d’utiliser la commande suivante :
mysql -uroot -p c1piwik < /tmp/c1piwik.sql

Pour restaurer une sauvegarde enregistrée par mysqldump composée d’énoncés SQL, utiliser ce fichier comme source (input) pour le client mysql. Si le fichier de sauvegarde a été créé par mysqldump avec l’option –all-databases ou –databases, il contient donc déjà les commandes CREATE DATABASE et USE statements et il n’est donc pas nécessaire de spécifier un nom de base de données pour charger les données:

mysql -p < /media/nas1/Backups/MySQL_db/drupal.sql

Alternativement, du shell mysql utiliser la syntaxe suivante:

mysql> source /media/nas1/Backups/MySQL_db/drupal.sql

Si le fichier de sauvegarde ne contient pas la commande CREATE DATABASE et USE statements, il faut alors d’abord créer la base de données en premier:

shell> mysqladmin create db1

Ensuite, il suffit de spécifier la base de données au moment de la restaurer:

shell> mysql db1 < dump.sql

Alternativement du shell mysql, créer la base de données et selectionner celle-ci comme base de données par défaut et restaurer ensuite les données:

mysql> CREATE DATABASE IF NOT EXISTS db1;
mysql> USE db1;
mysql> source dump.sql

Si vous avez perdu le mot de passe Root de votre serveur MySQL, voici une petite technique pour en mettre un nouveau sans devoir tout détruire.

Connectez vous en SSH sur votre serveur
Arrêtez proprement votre base de données avec un

/etc/init.d/mysqld stop

Lancez Mysql en « safe mode »

mysqld_safe --skip-grant-tables &

Lancez ensuite une session Mysql

mysql

Et changez votre password avec la commande SQL suivante :

update mysql.user set password = password('VOTRENOUVEAUMOTDEPASSE') where user = 'root'

Quittez mysql:

exit

Il suffira ensuite de « tuer » le process Mysql_safe avec un petit

ps -ax (notez le PID. On va dire que c’est 12345)

killall -9 12345

Et pour finir, relancez MySQL proprement :

/etc/init.d/mysqld start

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.