Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/01/2024, à 19:37

Frankkunst

[Résolu] Script rsync pour sauvegarde en 3 clics

Bonjour à tous,
N'étant pas satisfait du programme de sauvegarde "Déjà-Dup" (trop lent et sauvegarde en paquets donc non disponible directement !), je me suis donc lancé dans l'écriture d'un script .
But , en utilisant "rsync", avoir la possibilité de synchroniser le Home et différents Dossiers de ce dernier séparément , avoir un retour du déroulement par mail, et ceci en trois clics
configuration :
/Home/moi                                >>   /media/moi/Sauvegarde/SauvHome
/Home/moi/Documents             >>  /media/moi/Sauvegarde/SauvDocuments
/Home/moi/Photo                      >>  /media/moi/Sauvegarde/SauvPhoto
......etc
Voici mon script (si vous avez des suggestions pour l'améliorer je suis preneur cool ) : Nouvelle version :

#!/bin/bash
##-------------------------------------------------------------*****sauvegarde.sh*****----------------------------------------------------------------
#-------------------------------------------------------Script de synchronisation/sauvegarde----------------------------------------------------------
#-------------------------------------------------------------avec utilisation de rsync---------------------------------------------------------------
#-------------------------------------------------------------Frankkunst - 31-01-2024-----------------------------------------------------------------
#
##								## contrôle dépendances ##
defautdependance () {																			
cat <<eof
			*** sauvegarde.sh ***		auteur : Frankkunst		version 02.2024
			
		Ce script nécessite l'installation des paquets "msmtp","msmtp-mta" et "s-nail" 
		
		Pour intaller ces paquets, taper la commande :
							"sudo apt install msmtp msmtp-mta s-nail"
							
		Et la création du fichier de configuration "msmtprc" dans dans le réperoire :
							"/home/$USER/"
							
		Pour créer le fichier "msmtprc" suivre la procédure sur cette page :
							"https://doc.ubuntu-fr.org/msmtp"
							
		Adapter les paramètres selon l'opérateur.

		N'oublier pas de cacher ce fichier (car il contient votre adresse mail et vatre mot de passe) en tapant la commande :
							"chmod 600"
							
		Appuyer sur "Entree" pour quitter	

eof
}
mkdir -p /home/$USER/temp
resultest=`dpkg -l | grep -i "msmtp " | cut -b 1-2`
resultest1=`dpkg -l | grep -i msmtp-mta | cut -b 1-2`
resultest2=`dpkg -l | grep -i s-nail | cut -b 1-2`
if [ -z $resultest ] || [ $resultest != "ii" ] || [ -z $resultest1 ] || [ $resultest1 != "ii" ] || [ -z $resultest2 ] || [ $resultest2 != "ii" ]
then
	zenity --title=INFORMATION --text-info --width="850" --height="500" --filename <(defautdependance) 2>/dev/null
	exit 121
fi
#-------------------------------------------------------------## Entrée ##----------------------------------------------------------------------------
declare -a tabldecis=( "Musique" "Home" "Documents" "DataDeces" "Photo" "dwhelper" )	# choix dossiers à sauvegarder
decision=$(zenity --list  --text="<b>Que voulez-vous sauvegarder ?</b>" --column="décision" ${tabldecis[*]} 2>/dev/null)
origi="/home/$USER/$decision/"								# localisation source
disque="/media/$USER/Sauvegarde"							# disque de sauvegarde
desti="$disque/Sauv$decision"								# localisation destination
adrmail="tartenpion@zero.nn"								# adresse mail du destinataire
fiche=$(date +%d-%m-%Y_%H:%M)								# date
#--------------------------------------------------------## Contrôle disque de Sauvegarde ##----------------------------------------------------------
if [ ! -d $disque ] ; then
echo -e "Impossible d'effectuer la sauvegarde, le dossier :\n\t\t\033[1;37m \"$disque\" \033[0;37mn'existe pas ou n'est pas monté !"
read -p "Appuyer sur \"Entree\" pour quitter"
exit 122 ; fi
#---------------------------------------------------------## barre d'avancement ##--------------------------------------------------------------------
n=0
barre() {
BOUCLE=$(cat /home/$USER/temp/finboucle.txt 2>/dev/null)
if [[ "$BOUCLE" == "ok" ]] ; then return 1 ; fi 2>/dev/null
while [ $n -lt 15 ]
	do
		echo -ne "\033[0;32m#"
		((n=n+1))
		sleep 0,1
		if [ $n -eq 15 ] ; then echo -ne "\033[2K\r" ; fi
done
n=0
barre
}
#-------------------------------------------------------## fonctions de sauvegardes ##----------------------------------------------------------------
envoimail() {						# fonction mail de confirmation
if [ $CodeSortie -eq 0 ]
then
	echo -e "\v\nLa sauvegarde a réussi !" >>/home/$USER/temp/tempSauv.log
else
	echo -e "\v\nLa sauvegarde a échoué !" >>/home/$USER/temp/tempSauv.log
	echo -e "\033[1;37m\v\n\tLa sauvegarde a échoué !...\n\n\tVoici les erreurs :\n\t"
	cat /home/$USER/temp/Err.log
	sleep 10
fi
echo -e "\033[1;37m\v\tEnvois de mail de confirmation !" & cat /home/$USER/temp/tempSauv.log | s-nail -s "Résultat de sauvegarde" -a /home/$USER/temp/Sauv.log $adrmail
rm /home/$USER/temp/Sauv.log
rm /home/$USER/temp/tempSauv.log
}
sauv() {						# fonction sauvegarde "dossier" du home/utilisateur
echo -e "Veuillez patienter, sauvegarde de \"$decision\" en cours"
echo -e "\vSauvegarde de : $decision\v\n\tle $fiche\v\n" >/home/$USER/temp/tempSauv.log
rsync -av --progress --delete $origi $desti >>/home/$USER/temp/Sauv.log 2>/home/$USER/temp/Err.log
CodeSortie=$?
echo ok >/home/$USER/temp/finboucle.txt
envoimail
}
sauvhome() {						# fonction sauvegarde de "home/utilisateur"
echo -e "Veuillez patienter, sauvegarde de \"$decision\" en cours"
echo -e "\vSauvegarde de : $decision\v\n\tle $fiche\v\n" >>/home/$USER/temp/tempSauv.log
rsync -av --progress --delete --exclude=DataDeces/* --exclude=Photo/* --exclude=dwhelper/* --exclude=Documents/* --exclude=Musique/* --exclude=Téléchargements/* --exclude=Ventoy/* /home/$USER/ $desti >>/home/$USER/temp/Sauv.log 2>/home/$USER/temp/Err.log
CodeSortie=$?
echo ok >/home/$USER/temp/finboucle.txt
envoimail
}
#--------------------------------------------------------## lancement tache ##---------------------------------------------------------------------------
case $decision in
Home ) barre & sauvhome ; wait ;;
Documents | DataDeces | Photo | Musique | dwhelper ) barre & sauv ; wait ;;
* ) echo -e "\033[0;31mAbandon !\033[1;37m" ; read -p "Appuyer sur \"Entree\" pour quitter" ; exit 123
esac
rm /home/$USER/temp/finboucle.txt 2>/dev/null
exit 0

Bien à vous
#!/bin/bash
##-------------------------------------------------------------*****sauvegarde.sh*****-----------------------------------------------------------------
#-------------------------------------------------------Script de synchronisation/sauvegarde------------------------------------------------------
#-------------------------------------------------------------avec utilisation de rsync------------------------------------------------------------------
#-------------------------------------------------------------Frankkunst - 20-01-2024------------------------------------------------------------------
#----------------------------------------------------------## contrõle dépendance ##------------------------------------------------------------------
resultest=`dpkg -l | grep -i msmtp | cut -b 1-2`
if [ $resultest != "ii" ]
then
	echo -e "Ce script nécessite l'installation du paquet \" msmtp \" ! Vous pouvez l'installer en tapant la commande :\n\t\t\t \"sudo apt install msmtp\""
	read -p "Appuyer sur \"Entree\" pour quitter"
exit 121 ; fi
#----------------------------------------------------------------## Entrée ##---------------------------------------------------------------------------
declare -a tabldecis=( "Home" "Musique" "Documents" "DataDeces" "Photo" "dwhelper" )	# choix dossier à sauvegarder
decision=$(zenity --list  --text="<b>Que voulez-vous sauvegarder ?</b>" --column="décision" ${tabldecis[*]} 2>/dev/null)
origi="/home/$USER/$decision/"						# localisation source
disque="/media/$USER/Sauvegarde"					# Disque de sauvegarde
desti="$disque/Sauv$decision"						# localisation destination
adrmail="monadresse@mail.--"
fiche=$(date +%d-%m-%Y_%H:%M)						# date
#--------------------------------------------------------## Contrôle et saisie action ##---------------------------------------------------------------
if [ ! -d $disque ] ; then
echo -e "Impossible d'effectuer la sauvegarde, le dossier :\n\t\t\033[1;37m \"$disque\" \033[0;37mn'existe pas ou n'est pas monté !"
read -p "Appuyer sur \"Entree\" pour quitter"
exit 122 ; fi
#----------------------------------------------------------## barre d'avancement ##--------------------------------------------------------------------
n=0
barre() {
BOUCLE=$(cat /home/$USER/temp/finboucle.txt 2>/dev/null)
if [[ "$BOUCLE" == "ok" ]] ; then return 1 ; fi 2>/dev/null
while [ $n -lt 15 ]
	do
		echo -ne "\033[0;32m#"
		((n=n+1))
		sleep 0,1
		if [ $n -eq 15 ] ; then echo -ne "\033[2K\r" ; fi
done
n=0
barre
}
#-------------------------------------------------------## fonctions de sauvegarde ##-------------------------------------------------------------------
envoimail() {						# fonction mail de confirmation
if [ $CodeSortie -eq 0 ]
then
	echo -e "\v\nLa sauvegarde a réussi !" >>/home/$USER/temp/tempMailSauv.log
else
	echo -e "\v\nLa sauvegarde a échoué !" >>/home/$USER/temp/tempMailSauv.log
	echo -e "\033[0;31m\v\n\tLa sauvegarde a échoué !..."
fi
echo -e "\033[1;37m\v\tEnvois de mail de confirmation !" & cat /home/$USER/temp/tempMailSauv.log | msmtp $adrmail
rm /home/$USER/temp/tempMailSauv.log
}
#-----------------------------------------------------# fonction sauvegarde des différents dossiers de home #---------------------------------
sauv() {
echo "Veuillez patienter, sauvegarde de : $decision en cours"
echo Subject:Résultat de sauvegarde >/home/$USER/temp/tempMailSauv.log
echo -e "Sauvegarde de : $decision\v\n\tle $fiche\v\n" >>/home/$USER/temp/tempMailSauv.log
rsync -aPv --delete $origi $desti >>/home/$USER/temp/tempMailSauv.log 2>/dev/null
CodeSortie=$?
echo ok >/home/$USER/temp/finboucle.txt
envoimail
}
#--------------------------------------------------------# fonction sauvegarde de home #------------------------------------------------------------
sauvhome() {
echo "Veuillez patienter, sauvegarde de : $decision en cours"
echo Subject:Résultat de sauvegarde >/home/$USER/temp/tempMailSauv.log
echo -e "Sauvegarde de : $decision\v\n\tle $fiche\v\n" >>/home/$USER/temp/tempMailSauv.log
rsync -aPv --delete --exclude=DataDeces/* --exclude=Photo/* --exclude=dwhelper/* --exclude=Documents/* --exclude=Musique/* --exclude=Téléchargements/* --exclude=Ventoy/* /home/$USER/ $desti >>/home/$USER/temp/tempMailSauv.log 2>/dev/null
CodeSortie=$?
echo ok >/home/$USER/temp/finboucle.txt
envoimail
}
#--------------------------------------------------------## lancement tache ##---------------------------------------------------------------------------
case $decision in
	Home ) barre & sauvhome ; wait ;;
	Documents | DataDeces | Photo | Musique | dwhelper ) barre & sauv ; wait ;;
	* ) echo -e "\033[0;31mAbandon !" ; exit 123
esac
rm /home/$USER/temp/finboucle.txt 2>/dev/null
exit 0

Bon j'ai réalisé pas mal d'essais sans rencontrer de problème, mais n'étant pas un pro du script je peux avoir fait quelques erreur de syntaxes ou de constructions
Je l'ai construit de façon qu'il soit facilement portable, il suffit de modifier les noms de dossiers dans le tableau "tabldecis" de la ligne 14 dans la section ## Entrée ## (et dans la section ## lancement tache ##), modifier le "disque"  et l'adresse mail dans la section ## Entrée ##
Donc n'hésiter pas à l'essayer et de m'apporter vos remarques smile
Ce script nécessite que rsync (installé par défaut sur Ubuntu) et msmtp (pour l'envois du mail)
Et aussi la création d'un dossier "temp" dans votre Home , j'ai aussi créer un lanceur dans le doc.
Merci d'avance

Dernière modification par Frankkunst (Le 25/02/2024, à 21:05)


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#2 Le 21/01/2024, à 21:35

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

j'ai peur que tu réinventes un peu la roue : https://doc.ubuntu-fr.org/rsnapshot

tu peux demander à cron de s'occuper de l'envoi de mail, je sais pas trop comme ça se passe avec rsnapshot (qui est basé sur rsync et cron)

En ligne

#3 Le 21/01/2024, à 21:57

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Non je ne crois pas ...J'ai fais ce script pour que ma fille n'est pas de question à se poser de question tongue
Car tout le monde n'est pas à l'aise avec la ligne de commande !...
Merci pour ton retour

Dernière modification par Frankkunst (Le 21/01/2024, à 21:58)


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#4 Le 21/01/2024, à 22:01

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

une fois que rsnapshot est configuré il n'y a pas de questions à se poser, ni de ligne de commande à entrer.

il s'occupe de faire des sauvegardes automatiquement en arrière plan, à intervalles réguliers déterminés lors de la configuration.

En ligne

#5 Le 22/01/2024, à 11:15

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonjour krodelabestiole,
Ne connaissant pas rsnapshot, j'y ai jeté un œil, je dirais que ce type d'approche n'est vraiment pas à la portée de tous, pour le configurer il faut un pré-requis "avoir de bonnes notions d'anglais" ce qui n'est déjà pas mon fort, d'autre part il faut être à l'aise avec la ligne de commande !
Alors non je n'ai pas la prétention de réinventer quoique ce soit, mais tout simplement essayer de rendre plus simple une tache qui est indispensable à tout utilisateur d'ordinateur .
Utilisateur d'Ubuntu depuis 2007, convaincu que le partage des idées est primordial pour avancer tous ensemble, sans oublier que l'individualité qui est notre richesse; notre système d'exploitation est modulable à souhait, donc chaqu'un l'adapte à sa sauce ...
Le script que j'ai réalisé là a donc pour but de me simplifier la vie, j'ai besoin de sauvegarder le dossier "Photo" sur lequel j'ai travaillé tout l'après-midi , je clic sur le bouton "Sauvegarde"  dans le "doc" puis choisi "Photo" dans la liste déroulante qui est proposé, et voilà j'ai sauvegardé mon travail et reçois un mail me détaillant toutes opérations effectuées !

Dernière modification par Frankkunst (Le 22/01/2024, à 11:19)


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#6 Le 22/01/2024, à 11:38

geole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonjour.
Sous ubuntu, il existe pas mal d'applications de sauvegardes de données..
Elles sont toutes basées les deux principes.
   Sauvegarde régulières avec RSYNC.
Mais lorsqu'il s'agit de restaurer, cela se passe quelquefois trés mal.
J'oublie de dire que certaines décident de faire des sorrties dans un format personnel ou se plantent au bout d'un certain temps.
Ce qui compte avant tout est la facilité de restauration.C'est uniquement sur ce critère qu'il  faut choisir son application. Je ne sais s'il existe un comparatif
Si on doit ouvrir une discussion pour demander comment restaurer, cela ne me semble pas sérieux.

Je vais publier le fichier  de configuration de rsnapshot lorsque je l'aurais installé version 24.04

Dernière modification par geole (Le 22/01/2024, à 11:44)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

En ligne

#7 Le 22/01/2024, à 12:35

geole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

No comments

a@a:~$ rsnapshot -t hourly
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot -t hourly 
----------------------------------------------------------------------------
ERROR: /etc/rsnapshot.conf on line 23:
ERROR: snapshot_root /var/cache/rsnapshot/ - snapshot_root exists but is \
         not readable 
ERROR: /etc/rsnapshot.conf on line 227:
ERROR: backup /home/ localhost/ - snapshot_root needs to be defined before \
         backup points 
ERROR: /etc/rsnapshot.conf on line 228:
ERROR: backup /etc/ localhost/ - snapshot_root needs to be defined before \
         backup points 
ERROR: /etc/rsnapshot.conf on line 229:
ERROR: backup /usr/local/ localhost/ - snapshot_root needs to be defined \
         before backup points 
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.
 
    21    # All snapshots will be stored under this root directory.
    22    #
    23    snapshot_root    /var/cache/rsnapshot/

   226    # LOCALHOST
   227    backup    /home/        localhost/
   228    backup    /etc/        localhost/
   229    backup    /usr/local/    localhost/
sudo rsnapshot -D -t hourly
require Lchown
Lchown module loaded successfully
Setting locale to POSIX "C"
echo 6617 > /var/run/rsnapshot.pid 
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot -D -t hourly 
----------------------------------------------------------------------------
ERROR: Interval "hourly" unknown, check /etc/rsnapshot.conf
No need to remove non-existent lock /var/run/rsnapshot.pid

rsnapshot -D -t alpha
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot -D -t alpha 
----------------------------------------------------------------------------
ERROR: /etc/rsnapshot.conf on line 23:
ERROR: snapshot_root /var/cache/rsnapshot/ - snapshot_root exists but is \
         not readable 
ERROR: /etc/rsnapshot.conf on line 227:
ERROR: backup /home/ localhost/ - snapshot_root needs to be defined before \
         backup points 
ERROR: /etc/rsnapshot.conf on line 228:
ERROR: backup /etc/ localhost/ - snapshot_root needs to be defined before \
         backup points 
ERROR: /etc/rsnapshot.conf on line 229:
ERROR: backup /usr/local/ localhost/ - snapshot_root needs to be defined \
         before backup points 
ERROR: ---------------------------------------------------------------------
ERROR: Errors were found in /etc/rsnapshot.conf,
ERROR: rsnapshot can not continue. If you think an entry looks right, make
ERROR: sure you don't have spaces where only tabs should be.
/usr/bin/logger -p user.err -t rsnapshot[6645] /usr/bin/rsnapshot -D -t \
    alpha: ERROR: Errors were found in /etc/rsnapshot.conf, rsnapshot can \
    not continue. 

sudo rsnapshot -D -t alpha
require Lchown
Lchown module loaded successfully
Setting locale to POSIX "C"
echo 6648 > /var/run/rsnapshot.pid 
mkdir -m 0755 -p /var/cache/rsnapshot/alpha.0/ 
/usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded \
    /home/ /var/cache/rsnapshot/alpha.0/localhost/ 
mkdir -m 0755 -p /var/cache/rsnapshot/alpha.0/ 
/usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded \
    /etc/ /var/cache/rsnapshot/alpha.0/localhost/ 
mkdir -m 0755 -p /var/cache/rsnapshot/alpha.0/ 
/usr/bin/rsync -av --delete --numeric-ids --relative --delete-excluded \
    /usr/local/ /var/cache/rsnapshot/alpha.0/localhost/ 
touch /var/cache/rsnapshot/alpha.0/ 
No need to remove non-existent lock /var/run/rsnapshot.pid
/usr/bin/logger -p user.info -t rsnapshot[6648] /usr/bin/rsnapshot -D -t \
    alpha: completed successfully 

Si par accident  l'ordinateur n'héberge qu'un seul utilisateur, on  peut éviter le  mot sudo en faisant

sudo chmod 770 /var/cache/rsnapshot
sudo chown :$USER /var/cache/rsnapshot

donc je suggère de dire que l'application se lance avec sudo.

Dernière modification par geole (Le 22/01/2024, à 13:02)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

En ligne

#8 Le 22/01/2024, à 13:26

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

ça montre qu'il faut savoir parler anglais effectivement, mais les messages d'erreurs sont assez explicites !
il faut évidemment configurer ses sauvegardes avant de les lancer !

geole a écrit :

Si par accident  l'ordinateur n'héberge qu'un seul utilisateur, on  peut éviter le  mot sudo en faisant

sudo chmod 770 /var/cache/rsnapshot
sudo chown :$USER /var/cache/rsnapshot

mauvaise idée on n'a pas à changer les permissions des fichiers systèmes.

geole a écrit :

donc je suggère de dire que l'application se lance avec sudo.

si tu veux, mais tu peux aussi et surtout simplement modifier snapshot_root pour un espace auquel tu as accès en écriture (ça me semble logique... c'est celui sur lequel tu fais tes sauvegardes).

et l'application se lance avec cron, la ligne de commande c'est pour tester.

et je pense qu'on est hors sujet ici : tu devrais ouvrir un nouveau sujet si tu veux apprendre à utiliser rsnapshot.

En ligne

#9 Le 22/01/2024, à 13:56

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

La facilité de restauration, c'est justement mon choix pour rsync qui fait une synchronisation des dossier à l'Identique !


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#10 Le 22/01/2024, à 14:09

geole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

krodelabestiole a écrit :

et l'application se lance avec cron, la ligne de commande c'est pour tester.

et je pense qu'on est hors sujet ici : tu devrais ouvrir un nouveau sujet si tu veux apprendre à utiliser rsnapshot.

Avant de commencer à modifier quelque chose, je commence à vérifier  comment fonctionne ce qui est livré.
Et un outil à base de crontab alors qu'il parait qu'il faut utiliser des timer systemd   semble un peu ancien.  Il  ira aux oubliettes comme timeshift , déja-dup  etc...
Je  viens aussi de publier mon besoin.


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

En ligne

#11 Le 22/01/2024, à 14:42

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

ça fera plaisir aux devs...

rsnapshot est activement maintenu : https://github.com/rsnapshot/rsnapshot (tout comme timeshift et déjà-dup), et dans la mesure où il s'agit d'un équivalent au time machine d'apple, mais en ligne de commande, léger, simple, et utilisable sur n'importe quel linux, serveur ou autre, je pense qu'il n'est pas près de disparaître (du moins tant qu'on utilise pas btrfs partout).

il existe une proposition pour fournir des exemples de timers systemd : https://github.com/rsnapshot/rsnapshot/issues/147
on trouve des exemples pour systemd sur github et dans la doc de arch et même ici en français.


sinon le meilleur système pour faire des backups objectivement c'est borg backup, parce que c'est ce qu'il y a de plus optimisé, et les sauvegardes devraient être faites sur des stockages distants, dans la mesure du possible (sinon elles peuvent ne pas résister à un incendie, une inondation, un cambriolage ou que sais-je). mais il ne rentre pas dans votre description du logiciel parfait parce qu'il faut aussi l'utiliser pour les restaurations.


PS concernant le wiki : (évite de coller des gros pavés de code dans la doc stp, le fichier de conf est dispo là : https://github.com/rsnapshot/rsnapshot/ … default.in
et sur les machines des utilisateurs pour peu qu'ils installent le paquet.
le code est amené à changer en fonction des évolutions des logiciels, la doc n'est pas le lieu pour le maintenir. et ça noie complètement les informations utiles.
mieux vaut indiquer l'endroit où on édite la configuration, les moyens de le faire, et seulement expliquer les éléments intéressants à modifier dans un usage standard, dans notre cas : snapshot_root et les backup points, éventuellement les include et exclude et c'est à peu près tout.

En ligne

#12 Le 22/01/2024, à 16:53

matrix-bx

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonjour Frankkunst,

quelques remarques concernant votre proposition.
Une préférence perso (que je trouve plus lisible et moins source d'oubli malheureux de " ) pour présenter les tableaux plutôt ainsi:

declare -a tabldecis=(
"Home"
"Musique"
"Documents"
...
)

Mettre l'adresse mail de destination en variable au début, plus facile à (re)trouver je pense.
Tester la présente de msmtp et quitter avec un message explicite si absent.

Bonne journée.


Utilisations des balises de mises en formes.

Hors ligne

#13 Le 22/01/2024, à 18:35

geole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Pas si mal. Mais.

a@a:/tmp/borg$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu Noble Numbat (development branch)
Release:	24.04
Codename:	noble
a@a:/tmp/borg$ borg mount /Borg::Lundi Lundi
borg mount not available: no FUSE support, BORG_FUSE_IMPL=pyfuse3,llfuse.

https://bugs.gentoo.org/841704
https://bugs.launchpad.net/ubuntu/+sour … ug/2050515

Dernière modification par geole (Le 22/01/2024, à 18:57)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

En ligne

#14 Le 23/01/2024, à 11:10

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonjour matrix-bx
Merci bien pour vos remarques constructives cool
Je viens de modifier pour l'adresse mail dans le poste #1, pour le tableau c'est vrai c'est plus clair .
Et bien vu pour le controle de la présence de msmtp, je vais concocter quelque chose ....
Sinon mon script parait clair ?
À plus tard et encore merci


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#15 Le 24/01/2024, à 20:09

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonsoir à tous,
Voilà j'ai fait la modification du script dans le poste #1, ajout du contrôle de la présence de "msmtp"

Une petite qestion que veut dire exactement l'option -D de rsync "préserver le disque" ?

À votre avis est-ce que ce script pourrait avoir sa la place dans les trucs et astuces ?
Bien à vous

Dernière modification par Frankkunst (Le 24/01/2024, à 20:29)


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#16 Le 24/01/2024, à 20:43

geole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

https://askubuntu.com/questions/460307/ … h-in-rsync
répond à spécial   reste à trouver device => https://en.wikipedia.org/wiki/Device_file

Dernière modification par geole (Le 24/01/2024, à 20:57)


Les grilles de l'installateur https://doc.ubuntu-fr.org/tutoriel/inst … _subiquity
"gedit admin:///etc/fstab" est proscrit,  utilisez "pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY xdg-open /etc/fstab" Voir  https://doc.ubuntu-fr.org/gedit
Les partitions EXT4 des disques externes => https://forum.ubuntu-fr.org/viewtopic.p … #p22697248

En ligne

#17 Le 24/01/2024, à 21:03

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

D'après ce que je comprends cette option est utile en cas de sauvegarde system, mais sur des fichiers tel que photo, doc.pdf, txt , etc et dossier courant utilisateur n'apporte aucun plus ! non neutral ?


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#18 Le 25/01/2024, à 15:26

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

l'option -D permet de copier tels quels les fichiers que le noyau linux créé pour correspondre à des appareils (devices) - puisque sous linux tout est fichier, ou autres fichiers spéciaux (sockets et fifos).
c'est ce qu'on trouve dans le répertoire /dev par ex., si on s'y prend bien on ne copie pas ça, même pour sauvegarder le système.

il y a d'ailleurs pas mal de choses à exclure, pour mon serveur j'utilise cette commande :

rsync -aPv --stats --delete-delay / $BACKUP_DIR\
  --exclude '/dev/*'\
  --exclude '/proc/*'\
  --exclude '/sys/*'\
  --exclude '/tmp/*'\
  --exclude '/run/*'\
  --exclude '/mnt/*'\
  --exclude '/media/*'\
  --exclude '/lost+found'\
  --exclude '/usr/*'\
  --exclude '.cache'\
  --exclude 'cache'\
  --exclude 'Cache'\
  --exclude 'transcoding-temp'\
  --exclude '/var/lib/docker/containers/*'\
  --exclude '/var/lib/docker/overlay2/*'\
  --exclude '/var/lib/emby-server'\
  --exclude '/var/lib/mysql/*'\
  --exclude '/srv/db/*'\
  --exclude '/var/lib/php/sessions/*'\
  --exclude '/var/log/*'\
  --exclude '/var/tmp/*'

pour la sauvegarde des fichiers des utilisateurs les paramètres à prendre en compte seraient peut-être plus les options -l, -L, -k et -K : il arrive qu'on utilise des liens symboliques dans son $HOME, éventuellement comme raccourcis.
ces options permettre de choisir entre suivre, et copier les liens symboliques tels quels, ce qui les rend souvent dysfonctionnels (vu que le contexte n'est plus le même après déplacement). mais de toute façon je pense que l'usage de symlinks est à éviter d'une manière générale (la configuration des logiciels permet souvent de paramétrer directement le bon chemin, voir le DocumentRoot d'apache par ex.), et ça évite de se lancer dans la sauvegarde d'immenses espaces de stockage sans le vouloir ou de rentrer dans des boucles infinies (il peut très bien exister des liens symboliques récursifs, qui créent des chemins infinis...).

ici apparemment tu utilises -l, donc tu les copies sans les suivre, je pense que c'est une bonne option, il faut donc faire attention aux symlinks qu'on utilise, pour s'assurer de tout sauvegarder.

je suis étonné que tu n'utilises pas -a (c'est ce qu'on utilise l'énorme majorité du temps, pour faire simple).
-a : -rlptgoD
ton script : -rltptgo  -lsv --progress --delete
donc tu utilises la même chose sans -D (ce qui ne change donc a priori rien)
peut-être -P plutôt que --progress (ça ajoute --partial, qui peut être utile pour les gros fichiers)
-s c'est --protect-args, pas sûr que ça ait un intérêt ici ? les * sont déjà interprétés par bash non ? (- je pige peut-être l'option de travers)

En ligne

#19 Le 25/01/2024, à 19:35

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonsoir,
Pour les option rsync j'ai juste repris la ligne de commande que me donnait grsync, mais il est vrai que dans la plupart des sources que par simplification on utilisait l'option -a donc je vais changer cela smile
Pour l'option -s, je me suis dis "tout ce qui protège est bon à prendre" , mais si c'est inutile ...pourquoi l'ajouter tongue


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#20 Le 25/01/2024, à 20:16

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Donc si je mets -av c'est OK d'après vous ?


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#21 Le 25/01/2024, à 20:30

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

oui, ou -aPv (à la place de --progress)


Frankkunst a écrit :

À votre avis est-ce que ce script pourrait avoir sa la place dans les trucs et astuces ?

disons que les trucs et astuces c'est plutôt les petits découvertes pratiques, les options utiles un peu cachées...

La section pour ce script serait plutôt Vos développements libres.

Mais surtout un forum n'est pas un endroit très approprié pour maintenir ou partager du code... maintenant on utilise plutôt des "forges" git.
le code du site ubuntu-fr est sur gitlab par ex. : https://gitlab.com/ubuntu-fr
github appartient à microsoft, mais il existe des solutions respectueuses, ou qu'on peut héberger soi-même : gitlab ce ou gitea

En ligne

#22 Le 25/01/2024, à 20:44

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

OK, merci beaucoup et bonne soirée cool


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne

#23 Le 26/01/2024, à 03:23

krodelabestiole

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

tu veux que je déplace le sujet dans Vos développements libres ?

En ligne

#24 Le 26/01/2024, à 08:50

bruno

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

krodelabestiole a écrit :

github appartient à microsoft, mais il existe des solutions respectueuses, ou qu'on peut héberger soi-même : gitlab ce ou gitea

Et si on ne veut pas héberger soi-même: https://framagit.org/

Hors ligne

#25 Le 26/01/2024, à 11:24

Frankkunst

Re : [Résolu] Script rsync pour sauvegarde en 3 clics

Bonjour

krodelabestiole a écrit :

tu veux que je déplace le sujet dans Vos développements libres ?

Avec plaisir,merci d'avance


C'est en forgeant que l'on devient forgerons ...
et
...petit à petit l'oiseau fait son nid !

Hors ligne