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