Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH

Aujourd’hui, nous abordons la sauvegarde des fichiers essentiels du serveur.

Backup Manager permet d’effectuer des sauvegardes quotidiennes du système : il crée des archives dans plusieurs formats de compression (tar, gzip, bzip2, lzma, dar, zip) et peut les exporter vers un serveur FTP.

Dans notre cas, nous allons l’installer et le configurer pour envoyer tout ce qui est important sur notre serveur sur le serveur FTP externe de sauvegarde fourni gratuitement par OVH (100 Go).

Etape 1 : 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.

Etape 2 : 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"

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 :

export BM_ARCHIVE_METHOD="tarball"
export BM_TARBALL_FILETYPE="tar.gz"

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"

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"

Enfin, on s’occupe de la manière dont on traite nos fichiers de sauvegarde. Dans notre cas, nous les uploadons sur le serveur FTP de sauvegarde OVH donc :

export BM_UPLOAD_METHOD="ftp"

Et plus bas :

# Timeout (in seconds) for FTP transfer
# This setting only has effect when using FTP transfer with
# secure mode disabled (BM_UPLOAD_FTP_SECURE to "false")
export BM_UPLOAD_FTP_TIMEOUT="3600"

# the user to use for the FTP connections/transfers
export BM_UPLOAD_FTP_USER="ksXXXXXXX.kimsufi.com"

# the FTP user's password
export BM_UPLOAD_FTP_PASSWORD="FTP-PASSWORD"

# FTP specific remote hosts
export BM_UPLOAD_FTP_HOSTS="ftpback-XXXX-XXXX.ovh.net"

# purge archives on remote hosts before uploading?
export BM_UPLOAD_FTP_PURGE="true"

# You can specify a time to live for archives uploaded with FTP
# This can let you use different ttl's locally and remotely
# By default, BM_ARCHIVE_TTL will be used.
export BM_UPLOAD_FTP_TTL="5"

# destination for FTP uploads (overrides BM_UPLOAD_DESTINATION)
export BM_UPLOAD_FTP_DESTINATION="/"

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.

Etape 3 : ouverture du port 21 dans iptables

On commence par activer les deux modules du kernel qui nous sont nécessaires pour le FTP:

modprobe ip_conntrack
modprobe ip_conntrack_ftp

Pour pouvoir communiquer avec le serveur FTP, il faut que le port 21 soit ouvert dans iptables:

iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

Etape 4 : création du script PHP qui envoie un mail après la sauvegarde

On crée le fichier précedemment renseigné :

nano /etc/backup-manager-email

Et on y ajoute :

#!/usr/bin/php
<?php
/*
Plugin Name: Backup-Manager Email
Plugin URI: https://www.skyminds.net/?p=5315
Description: Sends a recap email to sysadmin after Backup-Manager has backed up the files.
Version: 2.0
Author: Matt Biscay
Author URI: https://www.skyminds.net/
*/
/* --- Changelog ---
v2.0 :
- PHP 7.x compatible
- switch from single recipient to recipient array
- better dir recursion
- fixed undefined variables
- new function to format file sizes
v1.0 : initial release
*/
$dest = array('ADMIN@EXAMPLE.COM');
$archives = '/var/archives';
$host = trim(file_get_contents('/etc/hostname'));
clearstatcache();
$pagetext = '';
$totalsize = 0;
// Function: Format Bytes Into TiB/GiB/MiB/KiB/Bytes
function format_filesize($rawSize) {
if($rawSize / 1099511627776 > 1) {
return number_format($rawSize/1099511627776, 1).' TiB';
} elseif($rawSize / 1073741824 > 1) {
return number_format($rawSize/1073741824, 1).' GiB';
} elseif($rawSize / 1048576 > 1) {
return number_format($rawSize/1048576, 1).' MiB';
} elseif($rawSize / 1024 > 1) {
return number_format($rawSize/1024, 1).' KiB';
} elseif($rawSize > 1) {
return number_format($rawSize, 0).' bytes';
} else {
return 'unknown';
}
}
$dir = opendir($archives);
if($dir) {
while(false !== ($filename = readdir($dir))) {
if($filename[0]!='.' && $filename[0]!='..' && preg_match('/'.date('Ymd').'/',$filename)) {
$thefile = $archives.'/'.$filename;
$size = exec("ls -l '".$thefile."' | awk '{print $5}'");
if($size>0) {
$pagetext.= $filename . " (". format_filesize($size) .")\n";
} else {
$pagetext.= $filename . " (". format_filesize($size) .")\n";
}
$totalsize += $size;
}
}
$pagetext.= "\nTotal : " . format_filesize($totalsize) ."\n";
}
foreach($dest as $d) {
  mail($d,'['.$host.'] Backup OK',$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

Etape 5 : 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 << EOF > /etc/backup-manager.sh && chmod 700 /etc/backup-manager.sh
#!/bin/sh
test -x /usr/sbin/backup-manager || exit 0
/usr/sbin/backup-manager
EOF

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.

Erreurs courantes et solutions

Si vous obtenez l’erreur Error reported by backup-manager-upload for method "ftp", check "/tmp/bmu-log.xxxxxx" qui renvoie vers Timeout at /usr/share/perl/5.20/Net/FTP.pm line 771, il faut impérativement augmenter la valeur de BM_UPLOAD_FTP_TIMEOUT.

Par défaut, BM_UPLOAD_FTP_TIMEOUT est de 120 secondes, ce qui est sous-dimensionné : si votre fichier de sauvegarde fait plus d’1 Go, cela risque de déclencher un timeout. Augmentez donc la valeur, j’ai mis 3600 secondes (1h) chez moi :

export BM_UPLOAD_FTP_TIMEOUT="3600"

Conclusion

Voilà, vous êtes parés : toutes les données vitales du serveur sont maintenant sauvegardées automatiquement sur le serveur de sauvegarde OVH.

Il ne vous reste plus qu’à vous connecter sur le serveur de sauvegarde via le serveur et vérifier que les fichiers sont effectivement uploadés. Un pas de plus vers la redondance/intégrité des données.

Synopsis » Monter un serveur dédié de A à Z

  1. Serveur dédié : installation d’Apache, PHP, MySQL et Webmin
  2. Serveur dédié : créer la base de données MySQL et importer WordPress
  3. Serveur dédié : créer et activer un Virtual Host sous Apache
  4. Serveur dédié : changer les DNS du nom de domaine et le faire pointer vers le serveur
  5. Serveur dédié : sécurisation des services avec iptables et fail2ban
  6. Serveur dédié : sécurisation de la couche TCP/IP
  7. Serveur dédié : création d’un serveur mail Postfix (sécurisé avec Saslauthd et certificat SSL) et Courier (accès POP et IMAP) utilisant une base MySQL d’utilisateurs/domaines virtuels
  8. Serveur dédié : sécuriser Apache 2 avec ModSecurity
  9. Serveur dédié : CHMOD récursif sur des fichiers ou répertoires en ligne de commande
  10. Serveur dédié : installer APC comme système de cache et configurer Varnish comme reverse-proxy pour Apache pour améliorer les performances
  11. Serveur dédié : afficher la véritable IP derrière un reverse-proxy comme Varnish
  12. Serveur dédié : intégrer SSH à WordPress pour mettre à jour le core, les plugins et les thèmes
  13. Serveur dédié : installer la dernière version d’APC par SVN
  14. Serveur dédié : analyse des performances du serveur
  15. Serveur dédié : mettre à jour le noyau Debian de la Kimsufi
  16. Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH
  17. Serveur dédié : configurer la limite mémoire pour PHP et Suhosin
  18. Bash : supprimer tous les fichiers et sous-répertoires d’un répertoire
  19. Serveur dédié : impossible de se connecter à un port distant
  20. Rsync: rapatrier les fichiers du serveur à la maison
  21. Bash : réparer les tables MySQL en cas de crash
  22. Serveur dédié : création d’une seedbox avec Transmission
  23. Serveur dédié : des paquets LAMP à jour sous Debian
  24. Serveur dédié : mise à jour vers Debian 7 Wheezy
  25. Serveur dédié : activer X11 forwarding pour SSH
  26. Serveur dédié : optimiser toutes les images JPG et PNG avec OptiPNG et JpegOptim
  27. Postfix : résoudre l’erreur “fatal: www-data(33): message file too big”
  28. Serveur dédié : mise en place de l’IPv6
  29. WordPress : accorder les bonnes permissions aux fichiers et dossiers avec chown et chmod
  30. WordPress : héberger les images sur un sous-domaine
  31. Serveur dédié : ajouter l’authentification SPF, Sender-ID et DKIM à Postfix et Bind9 avec opendkim
  32. Apache : lorsque le domaine seul (sans WWW) renvoie une erreur 403
  33. Serveur dédié : sécuriser Apache avec HTTPS (HTTP avec la couche TLS/SSL) en Perfect Forward Secrecy
  34. Serveur dédié : passer WordPress en HTTPS (TLS/SSL)
  35. Serveur dédié : configurer Webmin en TLS avec un certificat SSL
  36. Serveur dédié : configurer Transmission pour accéder au WebUI via TLS-SSL
  37. Serveur dédié : installer et configurer Varnish 4
  38. Serveur dédié : passage au mod FastCGI et PHP-FPM avec Apache MPM Worker
  39. Récupérer un serveur Kimsufi après un plantage de kernel avec le mode rescue OVH
  40. Serveur dédié : configurer Postfix et Courier pour utiliser TLS-SSL en Perfect Forward Secrecy
  41. Serveur dédié : retirer Varnish, devenu inutile avec HTTPS
  42. Serveur dédié : installer la dernière version d’OpenSSL sous Debian
  43. Serveur dédié : activer l’IP canonique du serveur sous Apache
  44. Serveur dédié : mise à jour vers PHP 5.6
  45. MySQL : convertir les tables MyISAM au format InnoDB
  46. Serveur dédié : optimiser toutes les images GIF avec GIFsicle
  47. Serveur dédié : migration de MySQL vers MariaDB
  48. BASH : lister, bloquer et débloquer des adresses IP avec iptables
  49. Serveur dédié : produire une meilleure réserve d’entropie avec haveged
  50. Serveur dédié : mettre en place DNSSEC pour sécuriser les DNS du domaine
  51. Serveur dédié : mise en place du protocole DANE
  52. 8 règles d’or pour bien déployer DNSSEC et DANE
  53. Serveur dédié : installer PHP7 FPM avec FastCGI sous Debian
  54. Serveur dédié : optimiser la couche TCP
  55. Fail2Ban: protéger Postfix contre les attaques DoS de types AUTH, UNKNOWN et EHLO
  56. Serveur dédié : mettre à jour Apache pour HTTP/2
  57. Serveur dédié : ajouter le domaine à la liste HSTS preload
  58. Serveur dédié : ajouter l’authentification DMARC à Postfix et BIND
  59. Serveur dédié : à la recherche de l’inode perdue ou comment résoudre le problème “no space left on device”
  60. Serveur dédié : installer NginX avec support HTTP2 et certificat SSL, PHP, MariaDB sous Debian

Rencontrez-vous des défis avec votre site WordPress ou WooCommerce? Laissez-moi les résoudre pour vous.

Discutons des solutions possibles »

Articles conseillés :

37 pensées sur “Serveur dédié : sauvegarde automatique des fichiers avec Backup Manager sur le serveur de sauvegarde OVH”

  1. Bonjour,

    bravo pour tous ces tutos, c’est vraiment très instructif.

    J’ai un souci avec la sauvegarde sur ftp via backup manager. Les archives sont bien créées dans /var/archives, la connexion au ftp est bonne mais j’ai le message suivant si je lance le backup en mode verbose :

    root@sd-XXXXX:/home/user# backup-manager --verbose
    Fichier /var/archives/sd-XXXXX.dedibox.fr-etc.20120520.master.tar.gz existe déjà ; ignoré.
    Fichier /var/archives/sd-XXXXX.dedibox.fr-home.20120520.master.tar.gz existe déjà ; ignoré.
    Fichier /var/archives/sd-XXXXX.dedibox.fr-var-lib-mysql.20120520.master.tar.gz existe déjà ; ignoré.
    Trying to upload files with ftp
    Logged on dedibackup-bzn.online.net, in / (FTP binary mode)
    Cleaning remote directory through FTP
    Erreur rapportée par backup-manager-upload pour la méthode « ftp », voir « /tmp/bmu-log.6slJGp ».
    

    Pourtant je peux uploader mes fichiers de sauvegarde manuellement via ftp en utilisant la commande put.

    Si j’ouvre le log d’erreur qui vient d’être créé :

    Can't use an undefined value as a symbol reference at /usr/share/perl/5.10/Net/FTP/dataconn.pm line 54.

    voici le contenu de mon fichier dataconn.pm :

    ## Generic data connection package
    ##
    
    package Net::FTP::dataconn;
    
    use Carp;
    use vars qw(@ISA $timeout $VERSION);
    use Net::Cmd;
    use Errno;
    
    $VERSION = '0.11';
    @ISA     = qw(IO::Socket::INET);
    
    
    sub reading {
      my $data = shift;
      ${*$data}{'net_ftp_bytesread'} = 0;
    }
    
    
    sub abort {
      my $data = shift;
      my $ftp  = ${*$data}{'net_ftp_cmd'};
    
      # no need to abort if we have finished the xfer
      return $data->close
        if ${*$data}{'net_ftp_eof'};
    
      # for some reason if we continously open RETR connections and not
      # read a single byte, then abort them after a while the server will
      # close our connection, this prevents the unexpected EOF on the
      # command channel -- GMB
      if (exists ${*$data}{'net_ftp_bytesread'}
        && (${*$data}{'net_ftp_bytesread'} == 0))
      {
        my $buf     = "";
        my $timeout = $data->timeout;
        $data->can_read($timeout) && sysread($data, $buf, 1);
      }
    
      ${*$data}{'net_ftp_eof'} = 1;    # fake
    
      $ftp->abort;                     # this will close me
    }
    
    
    sub _close {
      my $data = shift;
      my $ftp  = ${*$data}{'net_ftp_cmd'};
    
      $data->SUPER::close();
    
      delete ${*$ftp}{'net_ftp_dataconn'}
        if exists ${*$ftp}{'net_ftp_dataconn'}
    

    Une idée de ce qui coince ?

    Reply
    • Salut astiritsa,

      Vérifie dans backup-manager.conf que tu as bien le paramètre suivant :

      export BM_UPLOAD_FTP_PASSIVE="true"

      Apparemment, ce serait l’activation du mode passif qui permettrait de résoudre l’erreur.

      Reply
      • Merci Matt, ça marche parfaitement grâce à toi !
        Tu l’as vu grâce à ce que j’ai posté ou c’est un problème que tu avais déjà rencontré ?

        Encore merci !

      • Je t’en prie astiritsa :)

        Non, je n’avais jamais eu cette erreur avant. J’ai fait quelques recherches pour voir si c’était une erreur connue et la plupart du temps, le problème est dû au mode passif du FTP.

        A bientôt!

      • Salut à vous,

        Et si export BM_UPLOAD_FTP_PASSIVE=”true”
        est déjà à true ?

        Backup-manager crée bien les fichiers, les identifiants ftp sont corrects, j’arrive à m’y connecter à partir de la commande ftp sous debian, mais j’ai toujours cette erreur ?

  2. Bonjour,
    Je me renseigne sur la sauvegarde de mon site actuellement et j’aime ce tutoriel sur backup-manager. Mais avant d’essayer d’installer quoique ce soit, il me viens une question car Sauvegardez c’est bien, mais comment restaure-t-on ?

    Je suis Nouveau sur Linux, excusez les questions con :) Mais imaginez que demain je plante mon serveur kimsufi. Je vais sur le manager, je réinstalle debian. La il me faut faire un apt-get install de tout ce qu’il y avais précédemment sur le serveur. Une fois effectuer le dossier /etc/ devrait reconfigurer tout ca très vite. Le dossier /home remettra les fichiers du site et /var/lib/mysql réinstallera la BDD.

    Mais comment réimporter les fichiers de la zone de backup vers le kimsufi ?
    Aucun tutoriel lu n’explique cette manœuvre :)

    Reply
    • Salut furtifias,

      Personnellement, je rapatrie régulièrement les fichiers créés par backup-manager chez moi. Lors de mon changement de serveur, j’ai tout simplement réuploadé les répertoires /home /etc /var/lib/mysql depuis mon client FTP.

      C’est rapide et je n’ai copié que les fichiers dont j’avais vraiment besoin.

      Reply
  3. Bonsoir, tuto très intéressant :)
    mais j’ai une question est il d’application pour un centos 5 avec cpanel ?
    Je demande sa pour le port 21 et surtout l’installation via yum :)
    Merci

    Reply
    • Bonsoir gtraxx,

      Je n’utilise pas CentOS mais normalement, la configuration devrait être très similaire. Pour le port 21, c’est standard.

      Pour yum, il faut remplacer aptitude par yum.

      Reply
  4. Je ne comprends pas bien pourquoi “backup-manager-email” m’envoie toujours la taille des archives SQL égale à 0, alors que j’ai bien vérifié que les fichiers sont parfaitement et complètement envoyés dans les archives, puis sur le serveur de backup. Pour ce faire, j’ai effectué l’opération inverse, à savoir le transfert des fichiers SQL du backup dans un répertoire temporaire sur le serveur, puis j’en ai décompressé un ou deux pour m’apercevoir qu’ils étaient bien complets.
    En effet, les fichiers les plus importants d’un site sont ceux de la base de données. C’est pourquoi je me suis beaucoup inquiété de leur absence présumée sur le serveur de backup. Pour rien ?

    Reply
    • Bonjour,

      Dans l’email envoyé, la taille des fichiers est exprimée en giga-octets (Go) donc suivant la taille de la base de données, c’est normal d’avoir un nombre proche de zéro.

      A titre d’exemple, mes bases compressées font 20 Mo mais dans l’email j’obtiens :

      skyminds.net-var-lib-mysql.20120704.tar.gz (0.02 Go)

      Voilà, en espérant avoir répondu à vote inquiétude.

      Reply
  5. Bien ce tuto sur Backup manager, mais j’ai un probleme, j’arrive pas à sauvegarder les bases mysql, pourtant pourtant mon fichier de conf est bien remplit.

    Reply
  6. Bonjour,

    Je rencontre un problème avec ce tuto. Mon backup se créer bien dans le dossier de mon choix mais il ne s’upload pas sur le serveur FTP ovh…

    Pourtant je suis bien en mode passif, etc, je recois bien un email…mais quand je vais sur mon interface ovh, je vois que mon espace ftp est toujours vide.
    De plus je constate que les archives que je créer ne s’efface pas elle reste dans le dossier de backup sur mon disque dur…

    Une précision, je créer les archives dans le chemin
    export BM_REPOSITORY_ROOT=”/home/archives”

    Autre problème, elle ne s’efface pas donc a chaque fois les archives sont plus grosse et donc finisse par saturé mon HD..

    Ou est ce que je peux voir les log de cette manip ?

    Merci

    Reply
  7. Bonjour,
    Merci pour ce tuto !
    Je l’ai mis en place sur un serveur kimsufi, cela fonctionne.. un peu trop !
    Je reçois environ 160 mails à chaque sauvegarde !! :/
    On dirait que le script s’exécute pour chaque fichier ou chaque tâche…

    Une idée d’où cela peut venir ?

    Merci d’avance !

    Reply
    • Salut Sigmax,

      Je reçois le mail en double les deux premiers jours aussi sur ma kimsufi mais cela s’auto-corrige ensuite : un seul mail.

      Reply
      • Malheureusement cela ne s’est pas auto-corrigé… Je reçois toujours environ 160 mails au moment de la sauvegarde… Et même si sur gmail je peux les supprimer rapidement tous les jours à l’heure de la sauvegarde j’ai le téléphone qui s’affole ^^

        Je vais être obliger de désactiver ce script… Si quelqu’un à une idée d’ou peut venir le problème je suis preneur !!

      • Salut Sigmax,

        Je ne comprends pas d’où peuvent venir ces 160 mails, je n’ai que 4 fichiers créés chaque jour donc au pire ce serait 4 mails.

        J’ai enlevé l’array de l’adresse email et l’ai remplacé par une simple variable. Dis-moi si cela corrige le problème.

      • Bonjour à tous,

        Finalement le lendemain de la modification j’ai recommencé à recevoir mes 160 mails quotidiens… Je me suis rendu compte que si je lancais manuellement /usr/sbin/backup-manager je ne recevais qu’un mail par contre mon cron 0 11 * * * /usr/sbin/backup-manager lui générait cette multitude de mails… J’ai donc relu l’article et je me suis rendu compte que pour le cron il fallait utiliser un script “/etc/backup-manager.sh”. Je l’ai créé, j’ai modifier le cron pour qu’il l’execute, je viens de fiare un test et ça à l’air bon !

        Je n’ai pas vraiment comprit ce que faisait ce script… mais ça à l’air de marcher !

      • Le script récupère la taille de chacun des fichiers de backup. Une fois la sauvegarde réalisée, il envoie un mail à l’admin avec ces infos.

  8. Bonjour,

    J’ai toujours un soucis avec le script de backup. Celui ci n’efface pas les backups contenu dans le repertoire home, du coup mon disque fini par saturé. J’ai volontairement fait les archive dans le repetoire home car j’avais besoin de garder de l’espace sur la partition principale.

    Autre point: mon espace backup sur ovh est déja saturé. Est ce que ca te semble normal avec ce genre de script.

    Dernieres question pour acceder a mon espace ftp, je dois passer par mon serveur, mais je cherche une méthode sans le shell. Comment faire ?

    Merci d’avance Matt pour ton aide.

    Reply
    • Salut Majeri,

      Je viens de vérifier et Backup Manager ne me laisse que :
      – 5 jeux de sauvegarde en local,
      – 10 jeux de sauvegarde sur le FTP de backup OVH.

      Les options du fichier /etc/backup-manager.conf sont bien respectées. Vérifie que tu as bien :

      pour le local :

      # Number of days we have to keep an archive (Time To Live)
      export BM_ARCHIVE_TTL="5"
      
      # Do you want to replace duplicates by symlinks?
      # (archive-DAY is a duplicate of archive-(DAY - 1) if they
      # are both the same according to MD5 hashes).
      export BM_ARCHIVE_PURGEDUPS="true"
      
      # Prefix of every archive on that box (default is HOSTNAME)
      export BM_ARCHIVE_PREFIX="$HOSTNAME"
      
      # Should we purge only archives built with $BM_ARCHIVE_PREFIX
      export BM_ARCHIVE_STRICTPURGE="true"
      

      pour le distant :

      # purge archives on remote hosts before uploading?
      export BM_UPLOAD_FTP_PURGE="true"
      
      # You can specify a time to live for archives uploaded with FTP
      # This can let you use different ttl's locally and remotely
      # By default, BM_ARCHIVE_TTL will be used.
      export BM_UPLOAD_FTP_TTL="10"

      Je laisse les sauvegardes sous /var/, je pense que ce n’est pas une bonne idée de placer les fichiers de sauvegarde sous /home/, sachant que c’est ce répertoire que l’on sauvegarde.

      Reply
  9. Bonjour,

    Merci pour le tuto très utile !
    Cependant ‘ai le même problème que dotMastaz ci-dessus, à savoir :
    mon hébergeur (Online) bloque depuis peu l’accès au FTP de backup en mode actif.
    Lorsque je configure backup manager en mode actif, j’obtiens l’erreur : “FTP active mode is forbidden, passive mode is mandatory. The upload transfer “ftp” failed.”

    Lorsque je le configure en mode passif, j’obtiens une erreur différente : “Can’t use an undefined value as a symbol reference at /usr/share/perl/5.10/Net/FTP/dataconn.pm line 54.”

    J’ai déjà exploré quelques pistes, ouvert les ports nécessaires au mode passif dans mon firewall et les ai déclaré dans la conf de Pure-ftpd, activé modprobe ip_conntrack_ftp et modprobe ip_nat_ftp comme conseillé dans la doc de pure-ftpd, mais rien à faire, backup-manager renvoie toujours une erreur.

    les fichiers de sauvegarde sont par contre bien créés sur le serveur principal, c’est juste l’upload sur le FTP de backup qui ne passe pas.

    Si quelqu’un a une solution, je le remercie d’avance !

    Reply
    • Bonjour,

      Je me réponds à moi-même après avoir testé une solution qui fonctionne, ça peut servir aux autres :
      il fallait en fait ouvrir une plage de port plus large dans Iptables.
      ça fonctionne avec les lignes
      modprobe ip_conntrack
      modprobe ip_conntrack_ftp
      iptables -t filter -A OUTPUT -p tcp –dport 21 -j ACCEPT
      iptables -A OUTPUT -o eth0 -p tcp –sport 1024:65535 –dport 1024:65535 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

      Reply
  10. Bonjour,

    Merci pour ce tuto. Tout fonctionne à merveille sauf l’envoi de mails, je ne reçois aucun mail après sauvegarde. Pouvez-vous m’aider un peu ?

    Reply
  11. Bonjour,

    j’utilise ce script depuis un an, mais j’aimerais savoir s’il est possible de limiter la bande passante via FTP ?

    Reply
    • Bonjour Cyril,

      Je n’ai vu aucune option permettant de limiter la bande passante. Si cela sature ta connexion réseau, essaie de lancer la sauvegarde la nuit.

      Reply
  12. Salut Matt, tout d’abord merci pour tous tes tutos qui sont vraiment très bien fait !

    J’ai mis en place Backup Manager, et je voudrais en savoir plus sur comment exploiter les sauvegardes SQL.
    Je m’explique: lorsque j’ouvre mon tar.gz j’accède à var/lib/mysql et un dossier par BDD. Dans ce dossier je trouve que des fichiers *.frm. J’ai cru comprendre qu’il s’agissait que de la structure des tables sans les données ! Ne peux t-on pas faire des sauvegardes en format sql directement ? peut-on et comment reconstituer ma bdd à partir de frm ? merci d’avance :)

    Reply
  13. (Après la guerre :)

    Ne pas oublier le –no-burn si vous souhaitez tester le script avant laisser le cron faire son truc. Backup-Manager va automatiquement chercher à graver un CD si vous l’appelez par le prompt. Je n’ai pas essayé de comprendre pourquoi mais c’est un problème connu. C’est peut-être même volontaire!

    Reply
  14. Mise à jour de l’article :
    – nouvelle version du script PHP (compatible PHP 7.1),
    – ajout de la rubrique “Erreurs courantes et solutions”.

    Reply

Opinions