« Installation BackupPC Version 4.x » : différence entre les versions
2024>WikiSysop Aucun résumé des modifications |
m 1 version importée |
(Aucune différence)
| |
Dernière version du 1 février 2024 à 11:10
Installation BackupPC Version 4.x
[modifier]Prérequis
[modifier]Ces instructions ont été testées sur Ubuntu Xenial 16.04 LTS, Ubuntu Bionic 18.04 LTS, Ubuntu Focal 20.04 LTS et Debian 10 Buster.
Il n'y a aucun problème à utiliser la version graphique, mais pas de mode virtuel pour un backup !
Puis faire la mise a jour :
sudo apt-get update
sudo apt-get upgrade
Installation
[modifier]Créer le fichier backuppc-ubuntu-installer avec la commande nano puis faite un copier coller de la suite dedans.
Rq: Ou télécharger le script https://gitlab.molnix.com/molnix-open-source/backuppc-ubuntu-installer/-/raw/master/backuppc-ubuntu-installer
nano installbackuppc
#!/bin/bash
set -e
if [[ $1 == "install" || $1 == "upgrade" ]]; then
ACTION=$1
elif [[ $1 == "" ]]; then
ACTION=install
else
echo "usage: $(basename $0) action [source]"
echo "action is either install (default) or upgrade"
echo "source is either tar (default) or git"
exit 1
fi
if [[ $2 == "git" || $2 == "tar" ]]; then
SOURCE=$2
elif [[ $2 == "" ]]; then
SOURCE=tar
else
echo "Unknown source $2!"
exit 1
fi
# Install dependencies
apt-get -q update
apt-get -q -y upgrade
apt-get install -q -y apache2 apache2-utils libapache2-mod-perl2 par2 perl smbclient rsync tar gcc zlib1g zlib1g-dev rrdtool git make perl-doc libarchive-zip-perl libfile-listing-perl libxml-rss-perl libcgi-session-perl libacl1-dev curl pwgen
# Set password or read password file
if [[ -e /root/password ]]; then
PASSWORD=$(cat /root/password)
else
PASSWORD=$(pwgen -s -1 32)
fi
echo "$PASSWORD" > /root/password
chmod 600 /root/password
# Set up backuppc user and directory
adduser --system --home /var/lib/backuppc --group --disabled-password --shell /bin/false backuppc
echo "backuppc:$PASSWORD" | sudo chpasswd backuppc
mkdir -p /var/lib/backuppc/.ssh
chmod 700 /var/lib/backuppc/.ssh
echo -e "BatchMode yes\nStrictHostKeyChecking no" > /var/lib/backuppc/.ssh/config
if [[ ! -e /var/lib/backuppc/.ssh/id_rsa ]]; then
ssh-keygen -q -t rsa -b 4096 -N '' -C "BackupPC key" -f /var/lib/backuppc/.ssh/id_rsa
fi
chmod 600 /var/lib/backuppc/.ssh/id_rsa
chmod 644 /var/lib/backuppc/.ssh/id_rsa.pub
chown -R backuppc:backuppc /var/lib/backuppc/.ssh
# Get BackupPC release versions
get_latest_release() {
curl --silent "https://api.github.com/repos/$1/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'
}
bpcver=$(get_latest_release "backuppc/backuppc")
bpcxsver=$(get_latest_release "backuppc/backuppc-xs")
rsyncbpcver=$(get_latest_release "backuppc/rsync-bpc")
mkdir -p /tmp/bpc
cd /tmp/bpc
if [[ $SOURCE == "tar" ]]; then
# Fetch and install latest stable releases
wget https://github.com/backuppc/backuppc-xs/releases/download/$bpcxsver/BackupPC-XS-$bpcxsver.tar.gz
wget https://github.com/backuppc/rsync-bpc/releases/download/$rsyncbpcver/rsync-bpc-$rsyncbpcver.tar.gz
wget https://github.com/backuppc/backuppc/releases/download/$bpcver/BackupPC-$bpcver.tar.gz
tar -zxf BackupPC-XS-$bpcxsver.tar.gz
tar -zxf rsync-bpc-$rsyncbpcver.tar.gz
tar -zxf BackupPC-$bpcver.tar.gz
cd BackupPC-XS-$bpcxsver
perl Makefile.PL
make
make test
make install
cd ../rsync-bpc-$rsyncbpcver
./configure
make
make install
cd ../BackupPC-$bpcver
fi
if [[ $SOURCE == "git" ]]; then
# Fetch and install the latest development code instead
git clone https://github.com/backuppc/backuppc.git
git clone https://github.com/backuppc/backuppc-xs.git
git clone https://github.com/backuppc/rsync-bpc.git
cd backuppc-xs
perl Makefile.PL
make
make test
make install
cd ../rsync-bpc
./configure
make
make install
cd ../backuppc
./makeDist --nosyntaxCheck --releasedate "`date -u "+%d %b %Y"`" --version ${bpcver}git
tar -zxf dist/BackupPC-${bpcver}git.tar.gz
cd BackupPC-${bpcver}git
fi
if [[ $ACTION == "install" ]]; then
./configure.pl --batch --cgi-dir /var/www/cgi-bin/BackupPC --data-dir /var/lib/backuppc --hostname backuppc --html-dir /var/www/html/BackupPC --html-dir-url /BackupPC --install-dir /usr/local/BackupPC
fi
if [[ $ACTION == "upgrade" ]]; then
./configure.pl --batch --config-path /etc/BackupPC/config.pl
fi
# Set up web server
# Note that changing the apache user and group (/etc/apache2/envvars) could cause other services
# provided by apache to fail. There are alternatives if you don't want to change the apache
# user: use SCGI or a setuid BackupPC_Admin script - see the docs.
cp httpd/BackupPC.conf /etc/apache2/conf-available/backuppc.conf
sed -i "/Require local/d" /etc/apache2/conf-available/backuppc.conf
sed -i "s/export APACHE_RUN_USER=www-data/export APACHE_RUN_USER=backuppc/" /etc/apache2/envvars
sed -i "s/export APACHE_RUN_GROUP=www-data/export APACHE_RUN_GROUP=backuppc/" /etc/apache2/envvars
echo '<html><head><meta http-equiv="refresh" content="0; url=/BackupPC_Admin"></head></html>' > /var/www/html/index.html
a2enconf backuppc
a2enmod cgid
service apache2 restart
# Set up backuppc service
cp systemd/init.d/debian-backuppc /etc/init.d/backuppc
chmod 755 /etc/init.d/backuppc
update-rc.d backuppc defaults
chmod u-s /var/www/cgi-bin/BackupPC/BackupPC_Admin
touch /etc/BackupPC/BackupPC.users
sed -i "s/$Conf{CgiAdminUserGroup}.*/$Conf{CgiAdminUserGroup} = 'backuppc';/" /etc/BackupPC/config.pl
sed -i "s/$Conf{CgiAdminUsers}.*/$Conf{CgiAdminUsers} = 'backuppc';/" /etc/BackupPC/config.pl
chown -R backuppc:backuppc /etc/BackupPC
echo $PASSWORD | htpasswd -i /etc/BackupPC/BackupPC.users backuppc
service backuppc start
# Clean up
cd
rm -rf /tmp/bpc
echo "All done!"
exit 0
Ensuite exécuter le script en mode root en utilisant par exemple la commande suivante:
chmod -R 755 installbackuppc && sudo ./installbackuppc
Changement du mot de passe utilisateur backuppc
htpasswd /etc/BackupPC/BackupPC.users backuppc
Connexion à Backuppc
[modifier]- Dans un navigateur,lancer BackupPC avec http://localhost/BackupPC_Admin
- Connectez-vous avec le login backuppc et le mot de passe généré à la fin du script
Configuration de Backuppc
[modifier]Pour un partage sur un serveur Windows (SMB)
[modifier]Création du "host" et choix des partages
[modifier]Nous supposons que le serveur à sauvegarder est à pour ip fixe, 192.168.0.1. Pour le sauvegarder, nous utiliserons le protocole smb
Ajouter notre serveur dans la liste des ordinateurs à sauvegarder
* Allez dans Modifier les machines (dans la partie serveur) -> Machines
|
Paramétrage de la sauvegarde du serveur
[modifier]Choix des partages, dossiers à sauvegarder
[modifier]- Cliquez une fois sur État pour renouveler l'affichage
- Dans la section Hôtes, cliquez dans le menu déroulant sur l'adresse ip du serveur (192.168.0.1)
- Dans la section 192.168.0.1,Cliquez sur Modifier la configuration
- Cliquez sur Xfer
- Sélectionnez "smb" dans le menu déroulant
- nom du partage du client à sauvegarder
- administrateur ou domaine/user autorisé à accéder au partage
- "password"
Programmation horaire
[modifier]Cliquez sur Horaire
- FullPeriod : Temps minimum en jours entre deux sauvegardes complètes
- IncrPeriod : Temps minimum en jours entre deux sauvegardes incrémentielles
*-1 indique pas de sauvegarde régulière sur cette machine. Seuls les sauvegardes manuelles (via l'interface web) serons prises en compte.
*-2 toutes les demandes de sauvegarde seront ignorées, y compris les demandes de sauvegarde manuelles.
- FullKeepCnt: variable contenant le nombre de sauvegardes complètes à conserver
- IncrKeepCnt : variable contenant le nombre de sauvegarde incrémentales à conserver
- FullKeepCntMin : nombre minimal de sauvegardes complètes complètes à conserver
- IncrKeepCntMin : nombre minimal de sauvegardes incrémentales à conserver
- FullAgeMax et IncrAgeMax: Ces variables contiennent le nombre de jours après lesquels une sauvegarde est effacée (respectivement complète et incrémentale). Néanmoins le nombre de sauvegardes définies par 'FullKeepCntMin' et 'IncrKeepCntMin' sont conservées quelque soit leur ancienneté.
- BlackoutPeriods : Cette variable donne un intervalle de temps durant lequel seules les sauvegardes lancées manuellement seront prises en compte.
Exemple
[modifier]programmation d'une sauvegarde complète toutes les semaines et d'une incrémentielle toutes les trois heures en dehors des plages de blackout Dans l'image précédente, on observe les paramètres suivants
FullPeriod: 6.97
Une sauvegarde complète par semaine
Fullkeepcnt: 7
On garde 7 complètes
Fullkeepcntmin: 1
on en garde au moins une
Fullagemax : 90
La plus vielle aura 90 jours
Incrperiod: 0.122
L'unité est la journée, 0.122 (presque 1/8) permet d'obtenir une sauvegarde incrémentielle toutes les 3 heures.
Pour le bassin de Dijon, ne pas sauvegarder toutes les 3 heures mais une fois par jour (Incrperiod: 0.97)
| Ce paramétrage permet une complète le week end, et des incrémentielles toutes les 3 heures sauf la nuit (on interdit les incrémentales de 17h30 à 7h) |
Pour un rsync (serveur linux)
[modifier]Sur le poste à sauvegarder
sudo su ssh-keygen –t rsa
- Répondre "entrer" à toutes les questions
- Pour améliorer la résolution ssh, on ajoute le nom DNS de Backuppc dans le fichier de résolution de la machine ubu
sudo vi /etc/hosts ou nano /etc/hosts
- mettre IP du poste backuppc
10.X.Y.Z -> serveurbackuppc
Sur Backuppc
Dans une fenêtre de commande :
su BackupPC ssh-keygen –t rsa
Répondre "entrer" à toutes les questions
cp ~/.ssh/id_rsa.pub ~/.ssh/BackupPC_id_rsa.pub scp ~/.ssh/BackupPC_id_rsa.pub root@10.21.20.10:/root/.ssh/
Il faudra répondre yes a la 1ere question et taper le mot de passe du client
Sur le poste à sauvegarder
cat ~/.ssh/BackupPC_id_rsa.pub >> ~/.ssh/authorized_keys vi ~/.ssh/authorized_keys scp ~/.ssh/id_rsa.pub root@10.21.20.9:/var/lib/backuppc/.ssh/client_id_rsa.pub
Il faudra répondre yes a la 1ere question et taper le mot de passe du client
Sur Backuppc
cat ~/.ssh/client_id_rsa.pub >> ~/.ssh/known_hosts su rm –f /var/lib/backuppc/.ssh/client_id_rsa.pub su backuppc chmod –R go-rwx ~/.ssh
Sur le poste à sauvegarder
chmod –R go-rwx ~/.ssh
Test sur le serveur
ssh –l root 10.21.20.10 whoami
La réponse doit être root si la transaction ssh fonctionne
Paramétrage de la sauvegarde
[modifier]Allez dans Xfer
Choisir "rsync" dans le menu déroulant
Dans RsyncShareName : /Data