===== Sauvegarde et restauration d'un AD DC =====
{{:systeme:samba:samba_logo.png?nolink&200 |}}Cette article est ajusté à samba 4.x.\\
J'ai déjà traité [[systeme:samba:1.installation|l'installation]] et [[systeme:samba:config-dc|rôle active directory domain controller]].\\
Je vais vous parler de la sauvegarde et la restauration de samba dans l'espoir qu'il sera utile.\\
~~READMORE~~
Si vous avez plus d'un DC: NE JAMAIS restaurer un DC à partir de sauvegarde, si au moins un autre DC est encore en cours!\\
Il suffit de joindre la nouvelle machine comme un nouveau DC.\\
Tout sera synchronisé avec l'autre DC en cours d'exécution.\\
* Vous ne devez jamais copier une base de données en cours d'exécution, vous pouvez sauvegarder les fichiers .ldb et les fichiers .mdb en ligne de commande avec 'tdbbackup'
* Les fichiers créés par tdbbackup, sont des fichiers TDB complètes et normales.\\ tdbbackup fait l'extraction en toute sécurité.
* Les sauvegardes de fichiers .pdb peuvent être simplement renommés (enlever le .bak) à leur ancien nom à restaurer.
==== Sauvegarde ====
Le script de sauvegarde de samba n'est pas installé, lorsque vous exécutez «make install».\\
Il est recommandé que vous copiez à partir du répertoire des sources (source4/scripts/bin/samba_backup) à votre système, comme /usr/sbin, et de définir des autorisations sécurisés:
cp ..../source4/scripting/bin/samba_backup /usr/sbin
chown root:root /usr/sbin/samba_backup
chmod 750 /usr/sbin/samba_backup
Réglez les variables suivantes dans le script à vos besoins:
FROMWHERE=/usr/local/samba
WHERE=/usr/local/backups
DAYS=90
Créer le dossier de destination, celui que vous avez configuré dans le $WHERE et fixer les autorisation :
mkdir /usr/local/backups
chmod 750 /usr/local/backups
Lancer le script de sauvegarde pour un premier test:
/usr/sbin/samba_backup
Si le script se termine sans erreur, vous devriez trouver trois fichiers dans le dossier de destination:
* etc.{Timestamp}.tar.bz2
* samba4_private.{Timestamp}.tar.bz2
* sysvol.{Timestamp}.tar.bz2
Si votre test de sauvegarde a réussi, vous devriez ajouter un cron pour la sauvegarde quotidienne :
crontab -e
0 2 * * * /usr/sbin/samba_backup
Dans l'exemple la sauvegarde s’exécutera à 2h du matin tous les jours.
==== Restauration ====
* Ne jamais faire une restauration et un changement de version à la fois! Restaurez toujours sur un système qui utilise la même version de Samba que celui que vous avez créé la sauvegarde.
* Restaurer sur un système avec la même adresse IP et le nom d'hôte.\\ Sinon, vous allez rencontrer des problèmes Kerberos et DNS.
* Il est recommandé que la restauration soit faite sur le même système d'exploitation que celui sur lequel vous avez créé la sauvegarde.
Si l'ensemble de votre système est cassé, vous devez d'abord configurer l'ensemble de la machine, comme je l'ai déjà aborder [[systeme:samba:config_dc|ici]]
Supprimez les dossiers, que nous allons restaurer (samba ne doit pas être en cours d'exécution!):
rm -rf /usr/local/samba/etc
rm -rf /usr/local/samba/private
rm -rf /usr/local/samba/var/locks/sysvo
Maintenant décompresser vos fichiers de sauvegarde à leur ancien emplacement:
cd /usr/local/backups
tar -jxf etc.{Timestamp}.tar.bz2 -C /usr/local/samba/
tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /usr/local/samba/
tar -jxf sysvol.{Timestamp}.tar.bz2 -C /usr/local/samba/
Renommer les fichiers .ldb.bak dans le répertoire «private» en .ldb. :
find /usr/local/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done
Si votre sauvegarde ne contient pas LCA étendues
samba-tool ntacl sysvolreset
Si vous utilisez Bind comme backend de DNS, vous devez fixer les bases de données hardlinks pour les DNS:
samba_upgradedns --dns-backend=BIND9_DLZ
Maintenant, vous pouvez démarrer samba et tester si votre restauration a été couronnée de succès.
Source: [[https://wiki.samba.org/index.php/Backup_and_restore_an_Samba_AD_DC|wiki.samba.org]]