Outils du site


Sauvegarder votre serveur

On peut utiliser un serveur à la maison pour sauvegarder ses documents. C'est une précaution qui ne fait jamais de mal.

Il faut penser aussi à sauvegarder le serveur en cas de défaillance du disque dur qui vieillit un peu, d'un orage virulent ou encore d'un dérapage incontrôlé du chat qui joue derrière les meubles…

openrsync

Avant toutes choses, sachez qu'OpenBSD est livré avec l'outil openrsync qui vous sera très utile pour synchroniser deux répertoires sur votre serveur, voire de votre serveur vers une autre machine à travers un tunnel ssh. Il est d'autant plus pratique qu'il ne copie que les fichiers qui ont changés.

Si la machine cible est une OpenBSD “pure” (sans le port rsync d'installé en plus), précisez l'option –rsync-path=openrsync. Par défaut, c'est l'exécutable “rsync” qui est utilisé sinon.

Quelques exemples :

Copie le contenu de repertoire1 vers repertoire2 ainsi que tous son contenu
openrsync -r repertoire1/ /home/repertoire2/
Pareil qu'au-dessus, mais supprime les fichiers absents dans repertoire1 et présents dans repertoire2
openrsync -r --delete repertoire1/ /home/repertoire2/
Pareil que le premier, mais conserve les permissions, les liens symboliques…
openrsync -a repertoire1/ /home/repertoire2/
Sauvegarde le contenu de repertoire1 sur un serveur accessible en ssh dans le dossier /backup via le compte toto
openrsync -e "ssh" -a repertoire1/ toto@chezmoi.tld:/backup

Sauvegarde de la racine du serveur

OpenBSD a déjà pensé à tout. En effet, il sauvegardera chaque jour le système si une partition /altroot est présente.

Nous allons donc ajouter la ligne suivante dans le fichier /etc/fstab :

782f1ddb783cdd13.a /altroot ffs xx 0 0

Vous remarquerez qu'on identifie la partition avec <numéro duid du disque>.a.

Afin que le serveur soit sauvegardé chaque nuit, ajoutez maintenant la ligne suivante dans le fichier /etc/daily.local :

ROOTBACKUP=1

Et c'est tout ! ^^

Si un jour le disque du serveur a une défaillance, vous pourrez quand même démarrer pour le dépanner. Il faudra alors booter sur la partition de sauvegarde. Tout cela se passera au tout début du démarrage de la machine, lorsque vous verrez le prompt boot >. Vous écrirez à ce moment là :

boot > set device hd1a
boot > boot -s

Ou tout en une seule fois :

boot > boot -s hd1a:/bsd

Si le moment venu vous ne savez plus sur quelle partition se trouve votre sauvegarde, entrez ceci :

boot > machine diskinfo

ATTENTION : seul le contenu de la partition racine / est sauvegardé. Si /usr/local, /var ou autres sont montées sur des partitions respectives, elles ne seront pas sauvegardées. Ce n'est pas grave pour dépanner un système puisqu'avec le partitionnement par défaut, vous disposerez quand même du système de base, mais en aucun cas des paquets tiers installés ou vos données de sites web, logs… Le paragraphe suivant est donc essentiel, ne passez pas à côté ;)

Autres sauvegardes

Nous allons utiliser la seconde partition du disque externe pour y sauvegarder les autres données qui nous semblent importantes. Tout d'abord, on crée un point de montage :

# mkdir -p /mnt/sauvegardes

Ensuite, on ajoute une ligne au fichier /etc/fstab pour monter ce disque :

782f1ddb783cdd13.d /mnt/sauvegardes ffs rw,nodev,nosuid,softdep,noatime 1 2

Afin de le monter, entrez mount -a.

Vous pouvez changer les droits en écriture sur ce disque avec chmod ou l'attribuer à un utilisateur.

Si la machine à sauvegarder n'est pas un système OpenBSD (cf openrsync), je vous conseille d'installer l'excellent outil rsync pour vos sauvegardes, qui ne copiera que les fichiers qui ont été modifiés. Voici un exemple d'utilisation sur votre serveur.

Ajoutez au fichier /etc/weekly.local les lignes suivantes afin de sauvegarder quotidiennement les dossiers /var et /usr/local :

/usr/local/bin/rsync -a --delete /var/ /mnt/sauvegardes/var.bak/
/usr/local/bin/rsync -a --delete /usr/local/ /mnt/sauvegardes/usrlocal.bak/

N'hésitez pas à consulter la FAQ officielle sur le sujet.

Notez que vous pouvez aussi envoyer des données à sauvegarder de votre ordinateur personnel si vous voulez utiliser votre serveur comme espace de stockage. À partir de cet ordinateur, lancez la commande :

$ rsync -e "ssh -p <port ssh>" -avz --progress --delete /dossier/a/sauvegarder \
	toto@chezmoi.tld:/mnt/sauvegarde/toto

On utilise une connexion SSH avec le compte toto pour envoyer tout un dossier sur le serveur.

Cette solution peut ne pas convenir, en particulier si vous souhaitez permettre à plusieurs utilisateurs de réaliser des sauvegardes. Préférez dans ce cas la mise en place d'un chroot SFTP.

Une autre solution consiste à utiliser syncthing détaillé plus loin.