Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

rsnapshot n'exécute pas son script preexec

21 réponses
Avatar
geo cherchetout
Bonjour,

Je tente d'instaurer des sauvegardes de mes fichiers locaux à l'aide de
rsnapshot, le répertoire d'accueil étant dans une partition d'un disque
externe USB. Quand cette partition est montée, tout se passe bien mais,
justement, elle ne l'est pas toujours et j'ai pensé la faire monter par un
script que rsnapshot serait censé exécuter avant tout autre action. Dans
/etc/rsnapshot.conf j'ai donc placé à l'endroit prévu cette ligne :
cmd_preexec /root/scripts/presnap.sh (avec une tabulation et sans espace) et
j'ai écrit ce script rudimentaire :
# cat /root/scripts/presnap.sh
#!/bin/bash
mount /dev/sdf1 /media/sauvegardes
sleep 3
et j'ai vérifié que l'exécution de ce script a bien pour effet de monter la
partition :
# mount | grep sdf1
/dev/sdf1 on /media/sauvegardes type ext3 (rw)
Maintenant, je la démonte et je lance rsnapshot :
# rsnapshot -v daily
31924: priorité précédente 0, nouvelle priorité 19
----------------------------------------------------------------------------
rsnapshot encountered an error! The program was invoked with these options:
/usr/bin/rsnapshot -v daily
----------------------------------------------------------------------------
ERROR: /media/sauvegardes/sauv does not exist.
ERROR: rsnapshot refuses to create snapshot_root when no_create_root is enabled

Quelle est mon erreur ?

10 réponses

1 2 3
Avatar
geo cherchetout
Le 12/03/2012 17:26, j'ai écrit :

j'ai écrit ce script rudimentaire :
# cat /root/scripts/presnap.sh
#!/bin/bash
mount /dev/sdf1 /media/sauvegardes
sleep 3



J'ai même précisé sans plus d'effet : /bin/mount et il est clair que mon
script n'est l'objet d'aucune tentative d'exécution. Le message d'erreur
survient immédiatement, sans attendre les 3 secondes.
Rsnapshot est un script Perl, guère plus lisible pour moi que de l'hébreu...
Avatar
gerbier
Le 12/03/2012 17:26, geo cherchetout a écrit :
Bonjour,

Je tente d'instaurer des sauvegardes de mes fichiers locaux à l'aide de rsnapshot, le répertoire
d'accueil étant dans une partition d'un disque externe USB. Quand cette partition est montée, tout
se passe bien mais, justement, elle ne l'est pas toujours et j'ai pensé la faire monter par un
script que rsnapshot serait censé exécuter avant tout autre action. Dans /etc/rsnapshot.conf j'ai
donc placé à l'endroit prévu cette ligne :



j'ai eu le même problème : en fait rsnapshot vérifie si les répertoires déclarés dans les
instructions "backup" existent AVANT d’exécuter le "cmd_preexec".

dans ton cas, je suppose que tu as une ligne de configuration :

backup /media/sauvegardes/sauv

une solution est de faire un créer ce répertoire sur le disque dur :

umount /media/sauvegardes
mkdir /media/sauvegardes/sauv
/usr/bin/rsnapshot -v daily
Avatar
geo cherchetout
Le 13/03/2012 08:55, *gerbier* a écrit fort à propos :

j'ai eu le même problème : en fait rsnapshot vérifie si les répertoires déclarés dans les
instructions "backup" existent AVANT d’exécuter le "cmd_preexec".



Merci pour l'explication.

dans ton cas, je suppose que tu as une ligne de configuration :

backup /media/sauvegardes/sauv

une solution est de faire un créer ce répertoire sur le disque dur :

umount /media/sauvegardes
mkdir /media/sauvegardes/sauv



N'est-ce pas dangereux ? Je crains que mes sauvegardes n'atterrissent dans
ce répertoire quand le disque externe n'est pas branché ? Et oui, un essai
le confirme. :-( Je ferais donc mieux de prévoir un script de montage qui
s'exécute *avant* rsnapshot.

Une autre idée ?
Avatar
gerbier
Le 13/03/2012 11:30, geo cherchetout a écrit :
Le 13/03/2012 08:55, *gerbier* a écrit fort à propos :

j'ai eu le même problème : en fait rsnapshot vérifie si les répertoires déclarés dans les
instructions "backup" existent AVANT d’exécuter le "cmd_preexec".



Merci pour l'explication.

dans ton cas, je suppose que tu as une ligne de configuration :

backup /media/sauvegardes/sauv

une solution est de faire un créer ce répertoire sur le disque dur :

umount /media/sauvegardes
mkdir /media/sauvegardes/sauv



N'est-ce pas dangereux ? Je crains que mes sauvegardes n'atterrissent dans ce répertoire quand le
disque externe n'est pas branché ? Et oui, un essai le confirme. :-( Je ferais donc mieux de prévoir
un script de montage qui s'exécute *avant* rsnapshot.

Une autre idée ?



on peut tester si le disque est monté avec un code comme ci-dessous

tst=$( mount | grep '/media/sauvegardes' )
if [ -n "$tst" ]
then
echo "media monte"
else
echo "media pas monte"
fi

d’après le code de rsnapshot, une erreur dans le script de preexec provoque un affichage mais
n'interromps pas l'enchainement.
il faut donc bien faire un script qui enrobe l'appel a rsnapshot
Avatar
Nicolas George
gerbier , dans le message <jjnd51$ubi$, a écrit :
on peut tester si le disque est monté avec un code comme ci-dessous

tst=$( mount | grep '/media/sauvegardes' )



La commande mountpoint est plus adaptée. Sans compter que ton grep est
largement sujet à erreur.
Avatar
geo cherchetout
Le 13/03/2012 14:19, *Nicolas George* a écrit fort à propos :

La commande mountpoint est plus adaptée.



Un exemple d'utilisation, stp ?

Sans compter que ton grep est largement sujet à erreur.



Pas grave, je peux aussi regarder dans /etc/mtab.
Avatar
Nicolas George
geo cherchetout , dans le message
<4f5f4f3d$0$12499$, a écrit :
Un exemple d'utilisation, stp ?



RTFM

Pas grave, je peux aussi regarder dans /etc/mtab.



C'est encore moins fiable, puisque tu cumules les bugs de ta commande mount
avec le manque de fiabilité de ce fichier idiot.
Avatar
gerbier
Le 13/03/2012 14:19, Nicolas George a écrit :
gerbier , dans le message <jjnd51$ubi$, a écrit :
on peut tester si le disque est monté avec un code comme ci-dessous

tst=$( mount | grep '/media/sauvegardes' )



La commande mountpoint est plus adaptée. Sans compter que ton grep est
largement sujet à erreur.



je ne connaissais pas cette comande.

le code shell devient quelque chose comme :

mountpoint /media/sauvegardes
if [ $? -eq 0 ]
then
echo "monte"
else
echo "pas monte"
fi
Avatar
Francois Lafont
Le 13/03/2012 14:44, geo cherchetout a écrit :

La commande mountpoint est plus adaptée.



Un exemple d'utilisation, stp ?



Sans doute un truc dans le genre ça :

------------------------------------------------
if mountpoint -q "/media/sauvegardes"; then
echo "Monté."
else
echo "Pas monté."
fi
------------------------------------------------


--
François Lafont
Avatar
geo cherchetout
Le 13/03/2012 15:51, *Francois Lafont* a écrit fort à propos :

Sans doute un truc dans le genre ça :

------------------------------------------------
if mountpoint -q "/media/sauvegardes"; then
echo "Monté."
else
echo "Pas monté."
fi
------------------------------------------------



Je viens juste de trouver la même chose ! Merci quand-même. :-)
1 2 3