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 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 sad

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 smile

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 smile. 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 big_smile

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 smile

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 big_smile

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 big_smile

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

big_smile

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 big_smile

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... big_smile 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