# Backup & Retaurer Samba4 AD

**URL:** <https://www.debian-fr.org/t/backup-retaurer-samba4-ad/67979>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 10:13 UTC](https://www.debian-fr.org/t/backup-retaurer-samba4-ad/67979 "2016-02-21T22:13:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vincentsan](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/b38774/32.png) [@vincentsan](https://www.debian-fr.org/u/vincentsan)\
**Post date:** [Février 21, 2016, 10:13 UTC](https://www.debian-fr.org/t/backup-retaurer-samba4-ad/67979/1 "2016-02-21T22:13:37Z")

</div>

Hello,

Pour ceux qui ont suivi la doc officielle de samba4 :  
[https://wiki.samba.org/index.php/User\_Documentation](https://wiki.samba.org/index.php/User_Documentation)

Tout d’abord (merci la doc de samba 😉)

`## 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
