J'ai testé les solutions alternatives que tu m'as proposé, mais je n'ai pas aimé (pour résumer en une ligne^^).
J'ai pondu un petit script (ci-après) pour sauvegarder les propriétaires et les groupes des fichiers, et les restaurer facilement (après une sauvegarde/restauration avec rsync).
Le script fabrique un autre script, droits.sh (une série d'instructions chown), qu'il n'y a plus qu'à exécuter pour restaurer les propriétaires et groupes des fichiers.
#!/bin/bash
# création d'un script de restauration automatique des propriétaires et groupes sur une arborescence
# répertoire racine de l'arborescence à sauvegarder
RACINE=/home/santos/rsync/test/root
# emplacement du script à créer
DROITS=/home/santos/rsync/test/droits.sh
# date de création du script
DATE=`date`
# vérification de l'utilisateur qui exécute le programme
if [ `whoami` != 'root' ]
then
echo 'Vous devez être root pour exécuter ce programme.'
exit 1
fi
# vérification de l'existence de la racine
test -d $RACINE
if [ $? != 0 ]
then
echo $RACINE' : répertoire introuvable.'
exit 1
fi
[^] # Solutions alternatives
Posté par santos . En réponse au message Rsync : restaurer une sauvegarde. Évalué à 1.
J'ai pondu un petit script (ci-après) pour sauvegarder les propriétaires et les groupes des fichiers, et les restaurer facilement (après une sauvegarde/restauration avec rsync).
La ligne principale du script :
ls -ldQ `du -a $RACINE | cut -f2` | awk -F' ' '{print "chown "3ドル":"4,ドル8ドル}' | grep -e '^[a-z]' >> $DROITS
Le script fabrique un autre script, droits.sh (une série d'instructions chown), qu'il n'y a plus qu'à exécuter pour restaurer les propriétaires et groupes des fichiers.
#!/bin/bash
# création d'un script de restauration automatique des propriétaires et groupes sur une arborescence
# répertoire racine de l'arborescence à sauvegarder
RACINE=/home/santos/rsync/test/root
# emplacement du script à créer
DROITS=/home/santos/rsync/test/droits.sh
# date de création du script
DATE=`date`
# vérification de l'utilisateur qui exécute le programme
if [ `whoami` != 'root' ]
then
echo 'Vous devez être root pour exécuter ce programme.'
exit 1
fi
# vérification de l'existence de la racine
test -d $RACINE
if [ $? != 0 ]
then
echo $RACINE' : répertoire introuvable.'
exit 1
fi
# initialisation du script
cat /dev/null > $DROITS
echo "#!/bin/bash" >> $DROITS
echo "#" >> $DROITS
echo "# Créé le : $DATE" >> $DROITS
echo "#" >> $DROITS
echo "# Racine : $RACINE" >> $DROITS
echo "#" >> $DROITS
echo "" >> $DROITS
echo "##### Vérifications préliminaires #####" >> $DROITS
echo "" >> $DROITS
echo "# vérification de l'utilisateur qui exécute le programme" >> $DROITS
echo 'if [ `whoami` != "root" ]' >> $DROITS
echo "then" >> $DROITS
echo " echo 'Vous devez être root pour exécuter ce programme.'" >> $DROITS
echo " exit 1" >> $DROITS
echo "fi" >> $DROITS
echo "" >> $DROITS
echo "# vérification de l'existence de la racine" >> $DROITS
echo 'test -d '$RACINE >> $DROITS
echo 'if [ $? != 0 ]' >> $DROITS
echo "then" >> $DROITS
echo " echo $RACINE' : répertoire introuvable.'" >> $DROITS
echo " exit 1" >> $DROITS
echo "fi" >> $DROITS
echo 'echo "Restauration des droits sur le répertoire et son contenu :"' >> $DROITS
echo 'echo " '$RACINE'"' >> $DROITS
# écriture des instruction de restauration des droits
echo "##### DEBUT #####" >> $DROITS
ls -ldQ `du -a $RACINE | cut -f2` | awk -F' ' '{print "chown "3ドル":"4,ドル8ドル}' | grep -e '^[a-z]' >> $DROITS
echo "##### FIN #####" >> $DROITS
# finalisation du script
echo 'echo "Droits restaurés aevc succès."' >> $DROITS
# configuration des droits sur le script créé
chmod 740 $DROITS
chown root:root $DROITS
echo "Script de restauration des droits créé avec succès."
echo " Racine : $RACINE"
echo " Emplacement du script : $DROITS"
exit 0