Sauvegarder un serveur ou un dossier distant dans une image-disque

24 août 2008 – 17:09 par Richard

Pour sauvegarder mon serveur ALIX, j’ai écrit un script bash tout simple, mais efficace pour sauvegarder l’ensemble du contenu de la machine, depuis mon mac, le tout dans une image disque DMG.

la sauvegarde peut avoir lieu aussi souvent que désiré, elle est différencielle et fait de la sauvegarde l’exacte réplique du dossier sauvegardé, pour autant que l’utilisateur RSA en possède les entières permissions.

Pourquoi sauvegarder dans une image-disque ?

- Pour éviter d’avoir à gérer l’intégralité d’un système de fichier supplémentaire dans mon Mac.

- Pour simplifier le transport de ce système de fichier.

L’inconvénient, c’est de perdre la commodité de la sauvegarde Time Machine. Si mon script vous donne des idées, rien ne vous empêche de faire une copie dans un dossier local, et ainsi vous pourrez revenir dans les différentes sauvegardes et ainsi profiter de Time Machine pour toutes vos machines sauvegardées.

Personnellement, je place cette sauvegarde dans mon disque TimeMachine, pour éviter à filtrer cette image du moteur de sauvegarde d’Apple.

Prérequis

J’utilise par commodité et sécurité ssh comme protocole de transmission, avec une clef RSA partagée. Si vous ne savez pas ce que c’est, voilà une requête de moteur de recherche qui vous y aidera, mon article ne veut pas s’étendre là dessus.

La machine sauvegardée doit aussi avoir d’installé le binaire rsync.

Une image disque de même taille que le système de fichier à sauvegarder. Je suppose dans le script que son nom d’image est le même que le nom du disque qu’elle monte.

Le Script

Ce script est à utiliser depuis le Terminal du Mac. Faites bien attention à remplacer les variables par vos propres données.

N’hésitez pas à me faire partager vos idées et retours, en gardant à l’esprit que ce script n’est pas dédié à de la production, il  n’y a aucun contrôle d’erreur, je le place ici pour donner des idées, car la sauvegarde ne doit jamais être négligée.

#!/bin/bash
# But du script : sauvegarder le contenu du serveur ALIX par rsync en ssh sur dmg.
# Le nom de l'archive et du disque doivent être les mêmes, hormis l'extension .dmg

## VARIABLES
# chemin de dossier de l'archive terminé par /

sauvDMGpath=/Volumes/MactivisteTimed/

# nom de l'archive et disque, sans l'extension .dmg
sauvDMGname=nomArchiveDuServeur
# format de connexion user@ip_ou_nom_de_domaine
connexionID=utilisateurClefRSA@adresseIPduServeur
# chemin à sauvegarder, par défaut "/", le système de fichier entier
savingPath=/
## PROG PRINCIPAL

# monter l'image
hdiutil mount $sauvDMGpath$sauvDMGname.dmg

# attente un peu apres montage
sleep 1

# synchro ajouter un z aux premières option en cas de connexion
# à faible débit pour activer la compression de transfert
rsync -aq -e ssh --delete $connexionID:$savingPath /Volumes/$sauvDMGname/
# démonter l'image
hdiutil eject /Volumes/$sauvDMGname

Poster un Commentaire