Backup & Retaurer Samba4 AD

Hello,

Pour ceux qui ont suivi la doc officielle de samba4 :
https://wiki.samba.org/index.php/User_Documentation

Tout d’abord (merci la doc de samba :wink:)

## Mise en place du backup de samba4 cp /usr/local/samba/samba-4.3.3/source4/scripting/bin/samba_backup /usr/sbin chown root:root /usr/sbin/samba_backup chmod 750 /usr/sbin/samba_backup mkdir /usr/local/backups chmod 750 /usr/local/backups echo "mkdir /usr/local/backups/backup_samba_\$(date +'%d_%m_%G')" >> /usr/sbin/samba_backup echo "mv /usr/local/backups/*.tar.bz2 /usr/local/backups/backup_samba_\$(date +'%d_%m_%G')" >> /usr/sbin/samba_backup echo "0 2 * * * /usr/sbin/samba_backup" >> /etc/crontab

Ensuite un petit script maison (pas très beau mais efficace) :

[code]##lister les dossiers contenus dans un dossier et insérer les valeurs trouvées dans un radiolist whiptail pour restaurer le backup de samba4

mkdir /tmp/RADIO

Nb de dossiers

Dnum=$(ls -l /usr/local/backups | grep -c ^d)

Nb de fichiers

Lnum=$(ls -l /usr/local/backups | grep -c ^-)

créer liste de dossiers à insérer dans le menu whiptail

ls -l /usr/local/backups | grep ^d | awk ‘{print $9}’ > /tmp/RADIO/NbDir.txt
cp /tmp/RADIO/NbDir.txt /tmp/RADIO/NbDir.origin

Ajout d’un " en fin de ligne

sed -i ‘s/$/"/’ /tmp/RADIO/NbDir.txt

Ajout d’un " en début de ligne (pas moyen de le faire sans le concaténer dans un fichier texte !!)

sed ‘s/^/ "/’ /tmp/RADIO/NbDir.txt > /tmp/RADIO/NbDir2.txt

On remet tout ensemble…

cat /tmp/RADIO/NbDir2.txt > /tmp/RADIO/NbDir.txt

On ajoute un \ en fin de ligne ==> opur le radiolist !

sed -i ‘s/$/ \/’ /tmp/RADIO/NbDir.txt

On prépare la dernière ligne

tail -n 1 /tmp/RADIO/NbDir.txt > /tmp/RADIO/Last.txt

On prépare la syntaxe pour la dernière ligne

sed -i ‘s/ \/ 3>&1 1>&2 2>&3)/’ /tmp/RADIO/Last.txt

On supprime la dernière ligne qui finit par un \

echo “sed ‘${Dnum}d’ /tmp/RADIO/NbDir.txt > /tmp/RADIO/radio.txt” > /tmp/RADIO/sed
bash /tmp/RADIO/sed

On ajoute la dernière ligne avec la syntaxe qui va bien

cat /tmp/RADIO/Last.txt >> /tmp/RADIO/radio.txt

On numérote les lignes

cat -n /tmp/RADIO/radio.txt > /tmp/RADIO/radiolist

On créé un fichier à part sans esapce en début de ligne

sed ‘s/^[ \t]*//’ /tmp/RADIO/radiolist > /tmp/RADIO/radiolistnospace

Ce fichier est enfermé dans une variable

FolderList=$(cat /tmp/RADIO/radiolistnospace)

insertion des variables dans le radiolist dans un fichier texte

echo “Folder_choice=$(whiptail --menu “Choisissez la sauvegarde à restaurer :” --nocancel 20 80 ${Dnum} \
${FolderList}
echo $Folder_choice > /tmp/RADIO/Folder_choice” > /tmp/RADIO/RadioQuest

Exécution du fichier : prompt de la question

bash /tmp/RADIO/RadioQuest

On récupère le résultat de la question dans une variable

Folder_choice=$(cat /tmp/RADIO/Folder_choice)

On croise les infos…

backDir=$(head -n ${Folder_choice} /tmp/RADIO/NbDir.origin | tail -n 1)

Demande de confirmation

FinalQuest=$(whiptail --title “Confirmation” --yes-button “Oui” --no-button “Quitter” --yesno “Souhaitez-vous restaurer le backup ${backDir} ?” --nocancel 20 80 3>&1 1>&2 2>&3)

if [ "$?" = "1" ]
	then
		exit 0
fi

On restaure le backup de samba

cd /usr/local/backups/${backDir}
rm -rf /usr/local/samba/etc
rm -rf /usr/local/samba/private
rm -rf /usr/local/samba/var/locks/sysvol
tar jxvf etc* -C /usr/local/samba/
tar jxvf samba4* -C /usr/local/samba/
tar jxvf sysvol* -C /usr/local/samba/var/locks/

On restaure les permissions du sysvol

samba-tool ntacl sysvolreset

On teste l’install de bind9, le cas échéant, on rétablit le lien avec la base de donnée DNS.

Pas testé avec bind flat file (base de donnée en fichier à plat)

test -d /etc/bind
if [ “$?” = 0 ]
then
samba_upgradedns --dns-backend=BIND9_DLZ
fi

On applique les modifications

/etc/init.d/samba4 restart

On supprime les fichiers temporels

rm -rf /tmp/RADIO

[/code]

Il y aura dans le répertoire /usr/local/backups un dossier créé chaque jour à 02h00 du matin. Le script permet de choisir le dossier dans une liste et de restaurer Samba4 à une version antérieure.

Je ne saurais que trop vous recommander de faire un double des backups sur une autre machine que celle où samba4 est installé.

Si ça sert à quelqu’un d’autre que moi tant mieux !

A+

VincentSan