script bash sauvegarde acl serveur samba

Exemple d’un script simple de sauvegarde d’ACLs d’un serveur samba.


Ce script est a adapté.

Lien sur comment Ajouter/Modifier ACL sur répertoire

Le script, dans le cas suivant ce trouve dans /home/admin/scripts

Arborescence premier niveau du serveur samba:

/partage/dossiers/rh
/partage/dossiers/sg
/partage/dossiers/compta

Le but est de sauvegarder les ACLs de ces trois arborescences dans un répertoire de sauvegarde sur le serveur, qui sera lui même sauvegardé sur un robot de sauvegarde.

Création des répertoires de sauvegarde pour les ACLs.

mkdir /home/admin/sauvegarde/acl/rh
mkdir /home/admin/sauvegarde/acl/compta
mkdir /home/admin/sauvegarde/acl/sg

Le script de sauvegarde

nano backup_acl.sh
#!/bin/bash
#

#on initialise la variable de temps

timestamp=$(date +%d-%m-%Y_%Hh-%Mmn-%Ss);

#on initialise les variables des différents chemins

rep01=/partage/dossiers/rh;
rep02=/partage/dossiers/compta;
rep03=/partage/dossiers/sg;
acl01=/bureautique/systeme/acl/rh;
acl02=/bureautique/systeme/acl/compta;
acl03=/bureautique/systeme/acl/sg;

#Sauvegarde des acl du répertoire /partage/dossiers/rh
#direction la racine du serveur

cd /;

#récupération acl et compression avec gunzip

getfacl  -R $rep01 | gzip -f9 > $timestamp.acl_rh.gz;

#déplacement de l’acl dans le répertoire de sauvegarde

mv -f $timestamp.acl_rh.gz $acl01;

#création du log

echo "sauvegarde $timestamp.acl_rh.gz" > /var/log/sauv_acl.log;

#Sauvegarde des acl du répertoire /partage/dossiers/compta

getfacl  -R $rep02 | gzip -f9 > $timestamp.acl_compta.gz;
mv -f $timestamp.acl_compta.gz $acl02;
echo "sauvegarde $timestamp.acl_compta.gz" >> /var/log/sauv_acl.log;

#Sauvegarde des acl du répertoire /partage/dossiers/sg

getfacl  -R $rep03 | gzip -f9 > $timestamp.acl_sg.gz;
mv -f $timestamp.acl_sg.gz $acl03;
echo "sauvegarde $timestamp.acl_sg.gz" >> /var/log/sauv_acl.log;

#nettoyage ACL de +15jours

find /home/admin/sauvegarde/acl/ -nane *.gz -mtime +15 | xargs rm -vf; 

#envoie du mail à l’administrateur

mail -s [Serveur_Samba]Sauvegarde_ACL admin@domaine.tld </var/log/sauv_acl.log;

sauvegarde du script

ctrl+x

ce qui donne en entier:

#!/bin/bash
#
#on initialise  la variable de temps
timestamp=$(date +%d-%m-%Y_%Hh-%Mmn-%Ss);
#on initialise les variables des différents chemins
rep01=/partage/dossiers/rh;
rep02=/partage/dossiers/compta;
rep03=/partage/dossiers/sg;
acl01=/bureautique/systeme/acl/rh;
acl02=/bureautique/systeme/acl/compta;
acl03=/bureautique/systeme/acl/sg;
#Sauvegarde des acl du répertoire /partage/dossiers/rh
#direction la racine du serveur
cd /;
#récupération acl et compression avec gunzip
getfacl  -R $01 | gzip -f9 > $timestamp.acl_rh.gz;
#déplacement de l'acl dans le répertoire de sauvegarde
mv -f $timestamp.acl_rh.gz $acl01;
#création du log
echo "sauvegarde $timestamp.acl_rh.gz" > /var/log/sauv_acl.log;
#Sauvegarde des acl du répertoire /partage/dossiers/compta
getfacl  -R $rep02 | gzip -f9 > $timestamp.acl_compta.gz;
mv -f $timestamp.acl_compta.gz $acl02;
echo "sauvegarde $timestamp.acl_compta.gz" >> /var/log/sauv_acl.log;
#Sauvegarde des acl du répertoire /partage/dossiers/sg
getfacl  -R $rep03 | gzip -f9 > $timestamp.acl_sg.gz;
mv -f $timestamp.acl_sg.gz $acl03;
echo "sauvegarde $timestamp.acl_sg.gz" >> /var/log/sauv_acl.log;
#nettoyage  ACL de +15jours
find /home/admin/sauvegarde/acl/ -nane *.gz -mtime +15 | xargs rm -vf; 
#envoie du mail à l'administrateur
mail -s [Serveur_Samba]Sauvegarde_ACL admin@domaine.tld </var/log/sauv_acl.log;

rendre le script exécutable

chmod +x backup_acl.sh

Planification du script

crontab -e

exemple, tous les jours à 4h du matin

##sauvegarde des ACL
00 04 * * * /home/admin/scripts/backup_acl.sh > /dev/null

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.