Sebw.infO

En parcourant le web
User Avatar

Backup manager

Ajouté par h2tp Aucun commentaire 24 mars 2016 Debian aucun


Tel pourrai être le leitmotiv de tout bon informaticien qui se respecte, en effet, personne n’est à l’abri d’un bug logiciel ou encore moins d’une défaillance physique et le constat est simple, plus son disque est gros et plus on a de chance de perdre des données…

Des sauvegardes, chaque jour, tu feras.

Tel pourrai être le leitmotiv de tout bon informaticien qui se respecte, en effet, personne n’est à l’abri d’un bug logiciel ou encore moins d’une défaillance physique et le constat est simple, plus son disque est gros et plus on a de chance de perdre des données…

An easy-to-use backup solution for making archives.

Voici la devise de Backup Manager, cet outils va vous permettre d’automatiser la sauvegarde de vos fichiers, bases mysql, bases subversion…très simplement.

Nous allons décrire ici l’installation sur Ubuntu ainsi que sa configuration qui est d’ailleurs d’une très grande simplicité !

Installation de Backup Manager:

C’est classique :

apt-get install backup-manager

A la fin de l’installation, un assistant se lance et vous permet de configurer des options par défaut.

Ou vous pouvez configurer à la main, comme indiqué dans l’étape suivante.

Configuration de Backup Manager

nano /etc/backup-manager.conf

Par défaut, les archives sont placées dans /var/archives, le répertoire doit être détenu par l’utilisateur root afin que personne d’autre ne puisse en consulter le contenu :

# Where to store the archives

export BM_REPOSITORY_ROOT="/var/archives"

Utilisateur et groupe à utiliser

# The repository will be readable/writable only by a specific

# user:group pair if BM_REPOSITORY_SECURE is set to true.

export BM_REPOSITORY_USER="root"

export BM_REPOSITORY_GROUP="root"

Les archives seront conservées 5 jours :

# Number of days we have to keep an archive (Time To Live)
export BM_ARCHIVE_TTL="5"

Méthode de compression à utiliser :

ajouter “mysql” si vous voulez sauver les bases de données.

export BM_ARCHIVE_METHOD="tarball mysql"

export BM_TARBALL_FILETYPE="tar.gz"

A la ligne suivante, ajoutez vos base de données séparer par un espace:

export BM_MYSQL_DATABASES="base1 base2 base3"

 

Les différents répertoires à sauvegarder : /etc contient les fichiers de configuration des services serveur, /home les données des sites et /var/lib/mysql les bases de données :

# Paths without spaces in their name:

export BM_TARBALL_DIRECTORIES="/etc /home /var/lib/mysql"

Nature des fichiers de sorties

export BM_TARBALL_FILETYPE="zip"

 

Ensuite, on renseigne l’utilisateur MySQL dédié aux sauvegardes :

# The user who is allowed to read every databases filled in BM_MYSQL_DATABASES

export BM_MYSQL_ADMINLOGIN="backupuser"

# its password

export BM_MYSQL_ADMINPASS="backuppwd"

Envoie d’un Email:

Allez maintenant au bas du fichier. Nous allons exécuter un script PHP à la fin de chaque sauvegarde qui nous avertira par email du bon déroulement de la sauvegarde :

# Enter here some shell script.

# It will be executed after the last action of backup-manager.

export BM_POST_BACKUP_COMMAND="/etc/backup-manager-email"

Sauvegardez le fichier et retournez dans le shell, la configuration est terminée.

Script d’envoie

nano /etc/backup-manager-email

Copiez ceci:

#!/usr/bin/php

<?php

$dest = 'contact@domain.tld';

$archives = '/home/backup';

$host = trim(file_get_contents('/etc/hostname'));

clearstatcache();

$dir = opendir($archives);

if($dir) {

        while(false !== ($filename = readdir($dir))) {

                if($filename[0]!='.' && preg_match('/'.date('Ymd').'/',$filename)) {

                        $thefile = $archives.'/'.$filename;

                        $size = exec("ls -l '".$thefile."' | awk '{print $5}'");

                        if($size > 0) {

                                $pagetext.= $filename." (".round($size/1000000000,2)." Go)\n";

                        } else {

                                $pagetext.= $filename." (? Go)\n";

                        }

                        $totalsize += $size;

                }

        }

        $pagetext .= "\nTotal : ".round($totalsize/1000000000,2)." Go\n";

}

mail($dest,'['.$host.'] Sauvegardes réussies',$pagetext);

?>

N’oubliez pas de modifier l’adresse email au début du script PHP !

Il ne vous reste plus qu’à rendre le script exécutable avec :

chmod +x /etc/backup-manager-email

 

Création d’une tâche cron pour automatiser les sauvegardes:

Il ne nous reste plus qu’à automatiser tout cela, en utilisant CRON bien sûr.

Lancez la commande suivante, qui crée le fichier /etc/backup-manager.sh :

cat < /etc/backup-manager.sh && chmod 700 /etc/backup-manager.sh

 

Copiez ceci:

#!/bin/sh

test -x /usr/sbin/backup-manager || exit 0

/usr/sbin/backup-manager

EOF

 

chmod +x /etc/backup-manager.sh

Cron

Ensuite, éditez le crontab pour y ajouter votre ficher backup-manager.sh :

crontab -e

 

puis insérez la ligne :

0 5 * * * /etc/backup-manager.sh

 

Vos données seront alors sauvegardées chaque matin à 5h.

 Bug avec la méthode Mysql 

J’ai été confronté à un vilain méchant bug qui faisait que les sauvegardes des bases de données était bien la ….mais vides ! C’est gênant .

Pour résoudre ça il faut éditer le fichier .backup-manager_my.cnf dans le dossier /root et vérifier le mot de passe affiché, dans mon cas il n’était pas bon.

Si le fichier n'existe pas il faut le créer:

cd /root

nano .backup-manager_my.cnf

Copiez ceci et adaptez:

[client]
password="mot_de_passe"

Sources


Vous avez aimé cet article ? Alors partagez-le avec vos amis en cliquant sur les boutons ci-dessous :


Écrire un commentaire

Quelle est la troisième lettre du mot hlzc ? :