BackupPC/fr

From SME Server
Jump to navigation Jump to search


Mainteneur

[1]Daniel B. de Firewall Services

Version

Contrib 10:
Contrib 9:
smeserver-BackupPC
The latest version of smeserver-BackupPC is available in the SME repository, click on the version number(s) for more information.


Contrib 9:
BackupPC
The latest version of BackupPC is available in the SME repository, click on the version number(s) for more information.


Description

BackupPC est un systeme puissant et performant utilisé pour sauvegarder sur disque un ensemble de postes clients et de serveurs, sous Unix, Linux, Windows ou Mac OSX. BackupPC est extrêmement configurable et facile à installer et à maintenir.

Avec la baisse du coût des disques et des systèmes RAID, il est pratique et rentable pour sauvegarder un grand nombre de machines sur le disque local d'un serveur ou stockage en réseau. C'est ce que BackupPC fait. Pour certains sites, cela pourrait être la solution de sauvegarde complète. Pour les autres sites, d'autres archives permanentes pourraient être créées périodiquement sur bandes magnétiques. Une variété de systèmes Open Source sont disponibles pour faire des sauvegarde sur bande.

BackupPC est écrit en Perl et extrait les données à sauvegarder via SMB en utilisant Samba, tar sous ssh/rsh/nfs ou rsync. Il est robuste, fiable, bien documenté et librement disponible en open source sur SourceForge.

Plus d'information et de support sont disponibles sur http://backuppc.sourceforge.net

Fonctionalités

Un système intelligent de mise en commun réduit au minimum le stockage sur disque et les Entrées/Sorties disque. Les fichiers identiques dans plusieurs sauvegardes des PC identiques ou différents sont stockés qu'une seule fois d'où une économie substantielle de stockage sur disque et d'Entrée/Sortie sur disque.

Un exemple d'utilisation de disque : 95 ordinateurs portables avec chaque sauvegarde complète pèse en moyenne 3,6 Go chacune, et chaque sauvegarde incrémentale d'environ 0,3 GB. Le stockage de trois sauvegardes hebdomadaires complètes et de six sauvegardes incrémentales par ordinateur portable est d'environ 1200 Go de données brutes, mais en raison de la mise en commun et de la compression seulement 150 Go sont nécessaires.

Le support optionnel de la compression réduit encore le stockage sur disque. Étant donné que seuls les nouveaux fichiers (non déjà mis en commun) ont besoin d'être compressés, il n'y a qu'un impact modeste sur le temps CPU.

Aucun logiciel client n'est nécessaire. Le protocole SMB standard est utilisé pour extraire des données de sauvegarde sur les clients Windows. Sur les clients Linux, tar sous ssh / rsh / nfs est utilisé pour sauvegarder les données. Avec la version 2.0.0, rsync est également supporté sur n'importe quel client qui a rsync ou rysncd.

Une puissante interface web (http / cgi) permet aux administrateurs de visualiser les fichiers de log, de configuration, le statut actuel et permet aux utilisateurs d'ouvrir et d'annuler les sauvegardes et les parcourir et de restaurer des fichiers à partir de sauvegardes.

Une série complète d'options de restauration est prise en charge, y compris la restauration directe (via smbclient, tar ou rsync/rsyncd) ou le téléchargement d'un fichier zip ou tar.

Prise en charge des environnements mobiles où les portables ne sont que sporadiquement connectés au réseau et qui ont des adresses IP dynamiques (DHCP).

Les paramètres de configuration flexibles permettent des sauvegardes multiples qui doivent être effectuées en parallèle, la spécification dont les actions à sauvegarder, les répertoires à sauvegarder ou à ne pas sauvegarder, des horaires différents pour les sauvegardes complètes et incrémentales, horaires des courriels de rappel pour les utilisateurs et ainsi de suite. Les paramètres de configuration peuvent être définis pour l'ensemble du système, ou encore sur une base par PC.

Les utilisateurs reçoivent des rappels périodiques si leur PC n'a pas récemment été sauvegardé. Le contenu du courrier électronique, le calendrier et les politiques sont configurables.

Testé sur les serveurs Linux, Freenix et Solaris et avec des clients Linux, Windows 95, Windows 98, Windows 2000, Windows XP et Windows Vista.

Documentation détaillée.

Open Source hébergé par SourceForge et distribué librement sous licence GPL.

Exigences

  • KOOZALI SME Serveur 7.x, 8.x ou 9.x.
  • un volume dédié est recommandée (qui peut être un simple disque simple ou des disques en RAID)

Installation

  • Monter un volume sur /var/lib/BackupPC

Cette partie est facultative mais fortement recommandée. Les sauvegardes doivent toujours être sur un volume séparé. Premièrement, préparer votre disque dur pour le système de fichiers ext3 (vous pouvez utiliser tous les systèmes de fichiers qui sont suportés, j'utilise toujours ext3 car il est très fiable) Dans cet exemple, j'utilise une simple partition /dev/sdb1, il pourrait aussi être une matrice RAID (/dev/md3) ou un volume logique (LVM, ou une combinaison de RAID et LVM). En passant, si vous savez comment gérer LVM, son utilisation est également recommandée car il sera plus facile de gérer les données des sauvegardes plus tard.

mkfs.ext3 -L BACKUPPC -m 1 /dev/sdb1

Maintenant, nous avons besoin pour créer le répertoire

mkdir -p /var/lib/BackupPC

Ajouter le point de montage dans fstab. Il suffit d'ajouter quelque chose comme :

/dev/sdb1    /var/lib/BackupPC       ext3    noatime 0 0

Et contrôler si tout est correct

mount -a
mount | grep BackupPC
/dev/sdb1 on /var/lib/BackupPC type ext3 (rw,noatime)
  • créer des liens symboliques

Cette partie est facultative mais recommandée. Avec ces commandes, tous les fichiers liés BackupPC (config et logs) seront stockés sur le volume de BackupPC. Vous serez alors en mesure d'échanger le disque BackupPC entre deux serveurs.

mkdir -p /var/lib/BackupPC/{etc,log}
ln -s /var/lib/BackupPC/etc /etc/BackupPC
ln -s /var/lib/BackupPC/log /var/log/BackupPC
  • installer le paquet (SME 9.x)
yum --enablerepo=smecontribs install smeserver-BackupPC
signal-event backuppc-update

Vous devriez maintenant être en mesure d'accéder à l'interface dans le gestionnaire du serveur ou directement sur https://mon.domaine.tld/BackupPC

Vous trouverez trois exemples de configuration :

  • smeserver-template est un exemple de fichier de configuration de sauvegarde de serveur KOOZALI SME uniquement.
  • localhost-template est un extrait du fichier de configuration pour sauvegarder le serveur lui-même.
  • windows-template est un exemple de sauvegarde d'un hôte Windows en utilisant Cygwin + rsyncd.

Pour créer un hôte à l'aide d'un modèle, créer un nouvel hôte, ajouter = <nom_du_modèle>.

Par exemple :

MonServeur=smeserver-template

Lorsque vous exécutez, la configuration de smeserver-template sera copiée sur MonServeur. Vous pouvez ensuite modifier la configuration de MonServeur.

Mise à jour depuis smeserver-backuppc.fws-3.0-1

Si vous utilisez déjà la version précédente de la contrib, certaines autres étapes sont nécessaires : l'emplacement par défaut des sauvegardes a changé depuis /opt/backuppc/fichiers dans /var/lib/BackupPC

Le plus simple est de lier symboliquement l'ancien emplacement vers le nouveau :

ln -s /opt/backuppc/files /var/lib/BackupPC

Ensuite, vous pouvez installer la nouvelle version :

yum --enablerepo=smecontribs install smeserver-BackupPC

Ensuite, il suffit d'entrer les commandes suivantes :

mv /etc/BackupPC/config.pl.back /etc/BackupPC/config.pl
mv /etc/BackupPC/hosts.back /etc/BackupPC/hosts
mv /etc/BackupPC/pc/localhost.pl.back /etc/BackupPC/pc/localhost.pl
db configuration delprop backuppc version
usermod -d /var/lib/BackupPC/ -m backuppc
mv /home/e-smith/files/users/backuppc/.ssh/ /var/lib/BackupPC/
signal-event backuppc-update

Cela devait être ok ;)

Propriétés de la base de données

Il n'y a que deux propriétés que vous pouvez modifier :

  • status: (enabled|disabled) Voulez-vous que le service démarre automatiquement au démarrage du serveur ?
  • examples: (enabled|disabled) Voulez-vous que les fichiers d'exemple de configuration soient ajoutés de nouveau s'ils sont supprimés ?
  • sudo: une liste de commandes backuppc qui pourront être exécutées en tant que root en utilisant sudo. La valeur par défaut est "/usr/bin/rsync, /bin/gtar".

Lorsque vous avez configuré, vous devez exécuter :

signal-event backuppc-update


  Note :
si vous apportez des modifications aux propriétés de "sudo", vous devez ensuite vérifier la syntaxe de sudoers pour être sûr(e) que tout est OK. Pour cela, vous devez exécuter
 visudo

Et fermez le fichier. Si visudo détecte une erreur, il vous le dira.


Comme exemple, si vous voulez pouvoir démarre par le LAN (wake on lan) :

 config setprop backuppc sudo `config getprop backuppc sudo`,/sbin/ether-wake
signal-event backuppc-update

Ajouter ensuite simplement un script à votre commande «prebackup» ou «ping» comme :

#!/bin/sh
# Configure l'adresse mac pour chaque hôte
host1_mac=<mac address>
host1_name=<host name>
host2_mac=<mac address>
host2_name=<host name>
# Durée de démarrage de l'hôte
boottime=120
# Interface d'envoi des paquets WoL
interface=eth0
# Fonction d'essai du ping des hôtes
pingcheck()
{
ping -w 5 -c 2 $1
export pingstatus=$?
}
case $1 in
       host1)
               sudo etherwake -i $interface $host1_mac
               sleep $boottime
               pingcheck $host1_name
               exit $pingstatus
       ;;
       host2)
               sudo etherwake -i $interface $host2_mac
               sleep $boottime
               pingcheck $host2_name
               exit $pingstatus
       ;;
       *)
               echo "Unknown machine $1"
               exit 1
       ;;
esac


NB : si vous utilisez l'utilisateur d'administration par défaut de backuppc, vous devrez utiliser le chemin complet pour les commandes précédentes ; les scripts ne doivent pas être placés dans /etc/BackupPC car les droits seront modifiés.

Operations

Sauvegarder un serveur KOOZALI SME

Pour configurer un client SME Server pour être sauvegardé en utilisant une configuration fondée sur la condition smeserver-template, configurer SSH à partir du serveur de sauvegarde comme suit :

[root@backupserver ~]# su -s /bin/bash backuppc
bash-3.2$ ssh-keygen -t rsa -b 2048
(utiliser une phrase de passe vide)
bash-3.2$ cat /var/lib/BackupPC/.ssh/id_rsa.pub | ssh root@myserver.mydomain.com \
"cat >> /root/.ssh/authorized_keys2"
(confirm the host key)

Restaurer ou migrer un serveur KOOZALI SME

Si vous voulez simplement restaurer quelques fichiers ou tout un répertoire, vous devez utiliser l'interface web, et, en quelques clics, vous avez terminé, vos fichiers restaurés directement à leur place, ou à une autre si vous le voulez.

Cela comprend la possibilité d'utiliser cette sauvegarde complète ou presque complète, pour utiliser l'option de restauration lors de l'installation d'un nouveau système d'exploitation, ce qui vous aidera à migrer entre les versions.

  • modifier SERVERNAME avec le nom réel de votre sauvegarde ;
  • modifer -n -1 avec le numéro de la sauvegarde complète la plus récente que vous voulez utiliser (-1 signifie par rapport à la fin : la dernière disponible dans ce cas).
su - backuppc -s /bin/sh
cd ~
mkdir MaRestauration
cd MaRestauration/

Pour inclure et restaurer tout ce qui est à l'extérieur du répertoire habituellement sauvegardé dans le serveur KOOZALI SME :

/usr/share/BackupPC/bin/BackupPC_tarCreate  -h SERVERNAME -n -1 -s /  / > smeserver.tar

La sauvegarde de base dans la console du serveur KOOZALI SME serait l'équivalent de :

 /usr/share/BackupPC/bin/BackupPC_tarCreate  -h SERVERNAME -n -1 -s  /    home/e-smith etc/e-smith/templates-custom etc/e-smith/templates-user-custom \
etc/ssh root etc/sudoers  etc/passwd  etc/shadow etc/group etc/gshadow etc/samba/secrets.tdb  etc/samba/smbpasswd > smeserver.tar

Il vous suffit ensuite de copier ceci sur un disque USB, ou bien de le copier sur un disque virtuel si votre SME est virtualisé et ne peut brancher aucun périphérique USB :

mkdir /mnt/MonDisque
mount /dev/disk/by-label/MonDisque /mnt/MonDisque
mv /var/lib/BackupPC/myrestore/smeserver.tar /mnt/MonDisque/ 
umount /mnt/MonDisque/ 
  1. Installer le serveur KOOZALI SME ;
  2. redémarrer ;
  3. brancher votre disque quand vous voyez l'écran demandant si l'on souhaite effectuer une restauration ;

et vous avez fini.

Backup a Linux host through rsync

To configure a Linux host client to be backed up, configure SSH from the backup server as follows in order to exchange certificates and to perform a login without passwords.

At the BackupPC server command line as root:

su -s /bin/bash backuppc
ssh-keygen -t rsa -b 2048  # use a blank passphrase
exit

Assuming SSH access to the remote host to be backed up is already configured, as root:

su -s /bin/bash backuppc 
ssh-copy-id -i ~backuppc/.ssh/id_rsa.pub root@your.host.name
exit

You can test the key exchange:

su -s /bin/bash backuppc  #become backuppc user
ssh -l root your.host.name                                                     # add "-p 2222" for port 2222
exit                      #from the remote_host
exit                      #from the backuppc user back to root

You should be able to log in without a password.

Note: There are times when the backuppc user needs a real shell specified in /etc/passwd, for example, when the backuppc user is used to run sudo commands or pre/post scripts.

Now you can go to the admin backuppc panel to set your host

Backup a Windows Client with rsync

To configure a Windows client to be backed up via rsync, install rsync on the Windows client. rysnc needs to be running as a service on the Windows client to ensure communication. There are several options/versions of rsync – the first I was able to get working was from http://sourceforge.net/projects/backuppc/files/cygwin-rsyncd/2.6.8_0/ The zip file contains 7 files – the site goes into more detail about each of the files. Depending on how you wish to use BackupPC will determine which files to edit. I use rsync without ssh keys – to do so create a local user with sufficient rights to the directory or directories on the Windows client, then edit the file rsync.secrets to include the UserID & Password. You then use that same UserID & Password within the configuration from the BackupPC webpage – where you chose to back-up the client with Samba, rsync etc. The contents of rsync.secrets file is simply:

 UserID:Password

You will have to create a “Cygwin share” on the Windows box – that is done using the rsync.conf file. The “Cygwin share” is the name you choose within the square brackets. My rsync.conf file with a share name of “cdocs” (after removal of all personal information of course) looks like this:

[cdocs]
   path = c:/User
   comment = c: Drive documents
   auth users = <valid-back-up-user>
   secrets file = c:/rsyncd/rsyncd.secrets
   hosts allow = 192.168.1.1
   strict modes = false
   read only = true
   list = false

We have share name (cdocs), path, the valid user created on the Windows client, the path to the rysnc.secrets file, an allowable host (this being the local backup server IP), modes, read only and list. The options are mostly explained in the file – what it doesn’t show is that if you have a different version of rsync, the rsync.conf file looks a bit different. This one is for rsync 3.0.9

[cdocs]
  Path = /cygdrive/c/Users/<USERNAME>
  comment = c: User Data
  strict modes = false
  auth users = <valid-back-up-user>
  secrets file = c:/rsyncd/rsyncd.secrets
  hosts allow = 192.168.1.1
  read only = false
  list = false

The final thing that must happen to make rsync work properly is to load rysnc as a service on the Windows client. The file service.bat shows the following command to accomplish this:

c:/rsyncd/rsync.exe -a "--config=c:/rsyncd/rsyncd.conf --daemon --no-detach"

There is also a “gotcha” – sometimes port 873 is blocked by Windows Firewall, so you may need to fix that.

Remove backups

  • Remove all backups of a client
rm -rf /var/lib/BackupPC/pc/<client>/
sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_serverMesg BackupPC_nightly run
  • Remove One backup of a client
cd /var/lib/BackupPC/pc/<client>/
ls
rm -fR <backup_number>
sudo -u backuppc /usr/share/BackupPC/bin/BackupPC_serverMesg BackupPC_nightly run


  Warning:
Removing a single backup must be done with extreme care. You can safly remove the last backup for example, but if you remove a backup on which another one is based on, you can screw up your backups


After this, you will see space reclaimed and you can check it with df, but you still need to remove statistic line, otherwise you will see it in your web interface. To do that:

nano /var/lib/BackupPC/pc/<client>/backups
With ctrl+k you can remove the line with <backup_number>.

Relog to your web interface and voila! No more <backup_number>.

Known Issues

  • When restarting the BackupPC service you may receive the error as indicated below :

[root@backuppc ~]# service backuppc restart
Shutting down BackupPC:                                    [  OK  ] 
Starting BackupPC:                                         [  OK  ] 
BackupPC: WARNING:  Your BackupPC $Conf{TopDir} is not listed in the locate 
BackupPC: database configuration's PRUNEPATHS.  This may cause all of your 
BackupPC: backed up files to be indexed! 

To remove the warning

you should create a custom template /etc/e-smith/templates-custom/etc/updatedb.conf/10conf (copy the default /etc/e-smith/templates/etc/updatedb.conf/10conf)

mkdir -p /etc/e-smith/templates-custom/etc/updatedb.conf/
cp /etc/e-smith/templates/etc/updatedb.conf/10conf /etc/e-smith/templates-custom/etc/updatedb.conf/

add the directory /var/lib/BackupPC to the PRUNEPATHS list, then

expand-template /etc/updatedb.conf
  • “aborted by signal=PIPE”

Sometime the backup fails with this error, this error is related to the remote ssh service. You must set in the /etc/ssh/ssh_config of your remote host

 ServerAliveInterval 120

then restart your ssh service

One other way could be to set in the setting of backupPC (RsyncClientCmd)the default value for all hosts

$Conf{RsyncClientCmd} = '$sshPath -o ServerAliveInterval=120 -q -x -l root $host $rsyncPath $argList+';
  • trying backing up a SME Server you might encounter error or timeout on ssh, this is because of the AutoBlock fucntion on sshd
config setprop sshd AutoBlock disabled
signal-event remoteaccess-update

Désinstaller

yum remove smeserver-BackupPC BackupPC

Bugs

Merci de faire parvenir les problèmes à SME-Contribs sur bugzilla en sélectionnant le logiciel smeserver-BackupPC or ou en utilisant ce lien


Below is an overview of the current issues for this contrib:

IDProductVersionStatusSummary (4 tasks)
12197SME Contribs10.0CONFIRMEDcleanup /var/log/httpd-bkpc/
12196SME Contribs10.0CONFIRMEDremove old way logrotate
12123SME Contribs10.0CONFIRMEDimport deps from fws
11517SME Contribs10.0rcCONFIRMEDcleanup remove use of sv run script for service

Changelog

Only released version in smecontrib are listed here.

smeserver-BackupPC Changelog: SME 10 (smecontribs)
2023/02/11 Zsolt Vasarhelyi 0.2-15.sme
- expand-updatedb-conf patch [SME: 10513]
2023/02/10 Zsolt Vasarhelyi 0.2-14.sme
- $Conf{TopDir} not in locate configuration's PRUNEPATHS [SME: 10513]

2022/07/31 Jean-Philippe Pialasse 0.2-13.sme
- update to httpd 2.4 syntax [SME: 12036]

including Requires, and bkpc-conf
2022/07/30 Brian Read 0.2-12.sme
- Re-build and link to latest devtools [SME: 11997]
2022/07/25 Zsolt Vasarhelyi 0.2-11.sme
- update to httpd 2.4 syntax [SME: 12036]