Pages : 1
#1 Le 04/09/2019, à 20:06
- Séb@stien31
[Résolu] Rsync et popup
Bonjour à tous,
Je travaille depuis quelques temps à un script de sauvegarde de /home/$USER et je n'arrive pas au résultat souhaité. Je déclenche mes sauvegardes toutes 48h de temps d'utilisation grâce à un compteur (10min x 288 = 48h).
Mon cron :
# m h dom mon dow command
*/10 * * * * ~/BackUpCron.sh
Puis mon BackUpCron.sh :
#!/bin/bash
export DISPLAY=:0
i=`cat CompteurHoraire`
i=$(($i + 1))
echo $i > CompteurHoraire
if [ $i = 288 ]
then
i=0
echo $i > CompteurHoraire
input=$(zenity --list --title="BackUp - Local vers NAS" --text="Selectioner le répertoire à sauvegarder" --radiolist --column " " --column "Dossier" \
TRUE "Home" \
FALSE "VirtualBoxVMs" \
--width 300 --height 250 --separator=" " 2>/dev/null);
if [ "$input" = "Home" ]
then
dt=$(date '+%d/%m/%Y %H:%M:%S');
echo "------------- Sauvegarde de" "$input" "du" "$dt" "-------------" |tee journal_backup
gnome-terminal -- /bin/bash -c 'rsync -av --progress --delete --stats --filter "- lost+found/" --filter "- .cache/" --filter "- *.part" /home/$USER/ \
/media/NAS/$USER/ | tee -a ~/journal_backup ; zenity --warning --text="Fin des sauvegardes" 2>/dev/null'
fi
fi
L'idée c'est de visualiser dans un pop-up le déroulé du rsync. Le dernier zenity permet de laisser le terminal ouvert jusqu'à ce qu'on clique sur "OK". Ca marche quand je lance le script depuis un terminal mais pas par le cron.
Si je mets un > result.log au bout de ma ligne gnome-terminal, j'ai ce message d'erreur :
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Impossible de se connecter : Connexion refusée
Je ne suis pas arrêté sur gnome-terminal mais c'est ce qui m'a semblé le plus simple.
Suite à des recherches sur le net, j'ai testé différents export DISPLAY:=0 ou export PATH= mais sans comprendre ce que je faisais et sans résultats
Qu'en pensez-vous?
Merci de vos réponses
Sébastien
Dernière modification par Séb@stien31 (Le 06/09/2019, à 11:48)
Hors ligne
#2 Le 06/09/2019, à 07:19
- DonutMan75
Re : [Résolu] Rsync et popup
Salut,
quelques idées générales :
1) pourquoi ne pas mettre directement "toutes les 48h" dans le cron plutôt que de passer par une boucle ?
# m h dom mon dow command
* */48 * * * ~/BackUpCron.sh
2) pourquoi passer par gnome-terminal et ne pas lancer directement le rsync ?
Là j'ai l'impression que bash appelle gnome-terminal qui appelle bash qui appelle rsync..
rsync -av --progress --delete --stats --filter "- lost+found/" --filter "- .cache/" --filter "- *.part" /home/$USER/ /media/NAS/$USER/
Sur le net, on peut trouver les retours d'erreur de gnome-terminal et leurs explications.
Bon courage pour la suite
D.
Hors ligne
#3 Le 06/09/2019, à 08:31
- Séb@stien31
Re : [Résolu] Rsync et popup
Salut D !
1) Passer par un compteur permet de lancer une sauvegarde que toutes les 48 h d'utilisation de la machine alors que (sauf erreur de ma part) faire un */48 déclenche juste une sauvegarde tous les deux jours.
2) C'est pas faux. Je cherche une astuce pour avoir une fenêtre qui s'affiche avec le retour du rsync. A priori c'est compliqué à faire pour un débutant.
3) Là je teste une solution avec backintime
Merci !
Séb
Hors ligne
#4 Le 06/09/2019, à 08:33
- Christophe C
Re : [Résolu] Rsync et popup
Cron c'est l'utilisateur root. Or tu lui passes comme commande ~/BackUpCron.sh. Du point de vue de root, ce chemin n'existe pas. Enfin, c'est mon interprétation, je ne suis pas un pro de cron . Mais je suis quasi sûr que c'est cela.
Tu peux essayer de passer le chemin complet, cela devrait mieux aller, mais tu aura le problème du display : ton script devrait marcher, mais je ne pense pas que tu auras l'affichage zenity : ton écran/display est affecté à l'utilisateur actif (toi), et l'utilisateur root n'a pas de display affecté. Cron ne fonctionne pas (à ma connaissance) avec des appli graphiques (sauf si tu démarres en root). Par contre si tu lances à la main, c'est l'utilisateur courant (et non root) qui lance le script, et là plus de problème de sortie écran / affectation du display.
Cron peut faire tourner rsync, mais sans sortie écran (à ma connaissance). Si tu veux un affichage du déroulé d'une synchro rsync, utilise grsync. L'aide me parait complète, et c'est à cela que sert ce logiciel. Pas besoin d'un script compliqué. Tu lances grsync au démarrage de ta session, ou via une boucle (c'est expliqué dans l'aide).
Dernière modification par Christophe C (Le 06/09/2019, à 08:35)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#5 Le 06/09/2019, à 08:40
- Séb@stien31
Re : [Résolu] Rsync et popup
Salut Christophe,
Non le cron n'est pas root. D'ailleurs pas besoin de su pour lancer un crontab -e. Cette partie là fonctionne parfaitement, le compteur marche ainsi que le zenity.
J'ai testé grsync mais c'est pareil, c'est exécuté en tache de fond et la fenêtre n'apparait pas.
Hors ligne
#6 Le 06/09/2019, à 11:14
- Christophe C
Re : [Résolu] Rsync et popup
Cron EST root par défaut. C'est d'ailleurs bien expliqué dans l'aide Ubuntu sur cron :
Pour exécuter des applications graphiques, il faut tout d'abord être sûr que l'usager root a accès au display si jamais le contrôle d'accès est actif (cf. xhost), par exemple en exécutant (soi-même, ou en rajoutant la ligne dans un script de démarrage comme rc.local) : xhost + local:root
Si tu fais un ps -aux|grep cron, tu devrais d'ailleurs avoir quelque chose comme cela :
root 7928 0.0 0.1 1808 856 ? Ss 11:30 0:00 /usr/sbin/cron
La 1er colonne, c'est le propriétaire, et c'est normalement root.
crontab -e marche en local, car si cron est root, le fichier crontab appartient lui à l'utilisateur actif. Et contrab -e est son éditeur. C'est LE cas particulier.
Pour avoir l'affichage tu peux donc filer le display à root dans ton script (jamais testé ça).
Il y a un article qui explique également qu'on peut lancer cron pour un autre utilisateur que root (ce qui règlerait également ton problème d'affichage), en allant créer / bidouiller le fichier /etc/cron.allow. Pas testé : https://www.lostsaloon.com/technology/h … ific-user/
Concernant grsync si tu le lances avec cron tu auras le même problème : pas d'affichage. Quand je te conseille de passer par grsync, c'est bien sur sans le lancer avec cron. Il faut le lancer par l'utilitaire de démarrage de session. Comme c'est ainsi que je l'utilise, je suis certain qu'il marche très bien.
Dernière modification par Christophe C (Le 06/09/2019, à 11:23)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#7 Le 06/09/2019, à 11:22
- Séb@stien31
Re : [Résolu] Rsync et popup
Ok, autant pour moi
C'est effectivement une option à tester. Je conserve mon cron qui incrémente un compteur et si au démarrage il est supérieur à une valeur je lance grsync.
Je teste ça de suite !
Merci
Hors ligne
#8 Le 06/09/2019, à 11:25
- Christophe C
Re : [Résolu] Rsync et popup
J'ai modifié ma réponse ci-dessus en ajoutant un lien vers une bidouille peut-être plus simple : ajouter des utilisateurs cron dans /etc/cron.allow
Suis le lien
En gros tu crées ce fichier, et ton ancien système devrait marcher sans modif.
Sinon pour ton idée, il ne faut pas que le script qui test ton compteur soit lancé par cron, sinon tu tournes en rond : pas d'affichage. Cela t'oblige à avoir un compteur cron, et un script lancé avec le démarrage session qui test le compteur. Ce qui me semble compliqué. T'ajouter comme utilisateur / lanceur cron est plus simple (je pense, car pas testé).
Dernière modification par Christophe C (Le 06/09/2019, à 11:28)
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#9 Le 06/09/2019, à 11:47
- Séb@stien31
Re : [Résolu] Rsync et popup
En fait le cron incrémente un compteur et au démarrage un autre script lance de grsync.
Ca marche nickel et avec une petite tempo ça permet au système de démarrer tranquille.
Top
Merci Christophe
Hors ligne
#10 Le 06/09/2019, à 11:51
- Séb@stien31
Re : [Résolu] Rsync et popup
Backintime a l'air de marcher aussi. La possibilité de revenir dans le temps c'est pas mal.
A voir à l'usage si je vais m'en servir. Mais j'aime bien rsync / grsync, on sait ce qu'on fait et y a aucun paquet de plus à installer.
Au moins ça me fait deux options, c'est parfait
Hors ligne
#11 Le 06/09/2019, à 11:55
- katian
Re : [Résolu] Rsync et popup
salut, au passage, un an d'utilisation de Backintime, en backup et en restauration de fichiers, très satisfait !
La gestion "intelligente" du logiciel est, je trouve, bien pensée
Hors ligne
#12 Le 06/09/2019, à 12:06
- Séb@stien31
Re : [Résolu] Rsync et popup
Oui effectivement ca à l'air chouette. Hier j'ai lancé à la maison un instantané qui devrait être fini ce soir. Après faudra que fasse un échange de disque dur pour tester une restauration... C'est plus "confortable" à tester quand tout va bien
Sinon il y a aussi freefilesync. Je l'utilise au boulot pour des synchros avec une clé USB. Ce qui est bien c'est qu'il a une option de comparaison du contenu du fichier. De temps en temps je le lance pour voir si la clé n'a pas perdu des morceaux...
C'est une option sympa (mais longue) qui manque aux deux autres...
Hors ligne
#13 Le 06/09/2019, à 12:27
- Christophe C
Re : [Résolu] Rsync et popup
Dans mon cas je lance grsync via le démarrage de session tous les jours (qui exécute un grsync -e ma-sychro). Il tourne 20-30 secondes, met à jours les quelques modifs de la veille, et se ferme. Tous les jours c'est plus sûr, et cela évite de passer par cron + un script.
Donc pas de cron, pas de script, juste grsync. Simple et rapide. Mais bien sur, ce ne sont pas les outils de sauvegardes qui manquent, donc il y a plein d'autres solutions.
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne
#14 Le 06/09/2019, à 13:00
- Séb@stien31
Re : [Résolu] Rsync et popup
C'est pas faux !
Je me demandais pourquoi je faisais ainsi... en fait c'est car je ne l'éteins que rarement, j'utilise plutôt la mise en veille.
Je vais devoir tester le cron avec un autre USER !
Hors ligne
#15 Le 06/09/2019, à 15:35
- Christophe C
Re : [Résolu] Rsync et popup
Si tu aimes GRSYNC, il y a aussi la très simple solution de la boucle sans fin. C'est expliqué ici : https://doc.ubuntu-fr.org/grsync#synchr … n_continue
BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».
Hors ligne