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

Script de sauvegarde avec rsync

74 réponses
Avatar
sebastienmarty
Bonjour tous,

Je souhaiterais que ma sauvegarde se déroule comme suit:

1 - Montage du volume de backup externe
2 - Sauvegarde
3 - Démontage du volume de backup externe

Je pensais pouvoir le faire avec Carbon Copy Cloner, en lui indiquant un
"preflight script", mais il se trouve qu'il vérifie /avant/ si le volume
de destination est disponible. Donc ça ne marche pas.

Du coup je m'oriente vers la ligne de commande, et à force de chercher
un peu partout, j'ai pondu un script de ce genre :

disktool -l | egrep -i "Mountpoint = '', fsType = 'hfs', volName =
'.*BACKUP" | cut -d\' -f2 | xargs -n1 disktool -m
sleep 10
sudo rsync -xrlptgoEv --progress --delete / /Volumes/BACKUP
disktool -l | egrep -i "Mountpoint = '/Volumes/.*BACKUP" | cut -d\' -f2
| xargs -n1 disktool -p


Mes questions:
a/ est-ce qu'on peut faire mieux ou plus simple (les lignes disktool
notamment restent assez absconces pour moi) ?
b/ est-ce qu'il est possible de faire en sorte que rsync ne nécessite
pas sudo, afin de rendre tout ça complètement automatique et transparent
?
c/ quelle est ensuite la meilleure méthode, sous Mac OS X 10.5, pour
programmer le lancement à intervalle régulier ? Cron ?

Merci pour vos lumières !
--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)

10 réponses

Avatar
sebastienmarty
Michel Nicolas Alex wrote:

SbM wrote:

> Jacques Foucry wrote:
>
> > SbM wrote:
> >
> > > Merci pour vos lumières !
> >
> > <http://www.foucry.net/blog/?p8>
> >
> > De rien, ça me fait plaisir !
>
> Pas sûr d'avoir tout compris, mais je relirai à tête reposée. Merci en
> tout cas ;)

Hello

3 questions :

- pourquoi utiliser sudo plutôt que root ?
(pas besoins de l'activer, il suffit de soit faire une crontab root soit
faire un launchd au niveau système)



J'en sais rien, je découvre ;) Si c'est mieux je peux faire comme ça, en
effet.

- pourquoi écrire un script plutôt que d'utiliser synchronize! qui gère
le mount et le unmount ?



C'est payant synchronize!, non ?

- si synchronize! ne convient pas, pourquoi ne pas utiliser CCC en
modifiant le lancement pour qu'il fasse le mount avant ?



Impossible, il faut que le disque soit déjà monté pour que CCC accepte
de se lancer. Hélas.

--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)
Avatar
Nicolas-Michel_REMOVE
SbM wrote:

Michel Nicolas Alex wrote:



> - pourquoi utiliser sudo plutôt que root ?
> (pas besoins de l'activer, il suffit de soit faire une crontab root soit
> faire un launchd au niveau système)

J'en sais rien, je découvre ;) Si c'est mieux je peux faire comme ça, en
effet.



En principe une fonction système est exécutée par le système, c'est à
dire un utilisateur tel que root, mysql, sshd, ...

Dans le cas d'un backup, en principe c'est root pour être sûr que tu as
accès à tous les fichiers.

Cest notament comme ça que CCC bosse.

> - pourquoi écrire un script plutôt que d'utiliser synchronize! qui gère
> le mount et le unmount ?

C'est payant synchronize!, non ?



Que vaux les heures que tu as passé à trouver une alternative ?
Bon, c'est instructif donc c'est pas du temps perdu :)

> - si synchronize! ne convient pas, pourquoi ne pas utiliser CCC en
> modifiant le lancement pour qu'il fasse le mount avant ?

Impossible, il faut que le disque soit déjà monté pour que CCC accepte
de se lancer. Hélas.



Je parlais de modifier le fichier
com.bombich.ccc.scheduledtask.xxx.plist.

par exemple tu fais en sorte qu'il ne soit pas lancé toutes les heures,
mais uniquement sur demande.
Ou alors tu le désactives.

Ensuite, tu crées un script qui fait le mont, qui lance ccc via le
plist, puis qui fait le unmount.

Ou alors, mais je ne sais pas si c'est possible, tu ajoutes au fichier
com.bombich.ccc.scheduledtask.xxx.plist une ou deux commandes shell.
( je ne maitrise pas les launchd parce que j'en suis resté à la crontab,
par habitude)

--
Nicolas Michel
Avatar
OdarR
On 21 avr, 13:02, (Michel
Nicolas Alex) wrote:
( je ne maitrise pas les launchd parce que j'en suis resté à la cront ab,
par habitude)



Tu marches déjà sur ta barbe ?

Olivier
Avatar
sebastienmarty
Michel Nicolas Alex wrote:

Je parlais de modifier le fichier
com.bombich.ccc.scheduledtask.xxx.plist. [...]



Rien compris :(

--
[SbM]
<http://sebastienmarty.free.fr> - <http://tradintosh.free.fr>
<http://sbm.ordinotheque.free.fr> - <http://palmiciel.free.fr>
"If the French were really intelligent, they'd speak English" (W. Sheed)
Avatar
jacques
Michel Nicolas Alex wrote:

- pourquoi utiliser sudo plutôt que root ?
(pas besoins de l'activer, il suffit de soit faire une crontab root soit
faire un launchd au niveau système)



Pour quelle mauvaise raison utilisez-vous root ? Personnellement je n'ai
pas le mot de passe root et je ne veux pas le connaître.

Il n'existe que deux catégories d'admin Unix. Celui qui a déjà fait une
connerie sous root et celui qui ne va pas tarder à en faire une !

- pourquoi écrire un script plutôt que d'utiliser synchronize! qui gère
le mount et le unmount ?



Parce qu'un script peut être lancer pendant que je dors, lorsque que
n'ai pas de session lancé.

- si synchronize! ne convient pas, pourquoi ne pas utiliser CCC en
modifiant le lancement pour qu'il fasse le mount avant ?
(CCC a l'avantage de gérer les exclusions, le bless et autre)



Pour la même raison. Et le bless n'a RIEN à voir avec les sauvegardes
des données.

Jacques
--
Visitez le blog de l'admin :<http://www.foucry.net/blog>
Avatar
Nicolas-Michel_REMOVE
OdarR wrote:

On 21 avr, 13:02, (Michel
Nicolas Alex) wrote:
> ( je ne maitrise pas les launchd parce que j'en suis resté à la crontab,
> par habitude)

Tu marches déjà sur ta barbe ?



MDR :)

On peut voir ça comme ça.

On peut aussi se dire qu'un cronjob est plus vite écrit,
qu'il est compatible avec toutes les versions de Mac OS X
et même avec plein d'autres systèmes,
que dans certaines versions de Mac OS X 10.4 launchd est buggy
que le man de launchd.plist est une perte de temps,
que après avoir écrit ton .plist il faudra encore le gérer alors que le
cronjob n'est que ce qui y est écrit.
qu'il est plus facile de faire une erreur dans un xml que dans une ligne
de texte.


Bref je suis flemard et cron me suffit.
Si une fois j'ai besoins d'écrire un job launchd, j'aviserai mais ça
n'est pas encore arrivé.

--
Nicolas Michel
Avatar
Nicolas-Michel_REMOVE
SbM wrote:

Michel Nicolas Alex wrote:

> Je parlais de modifier le fichier
> com.bombich.ccc.scheduledtask.xxx.plist. [...]

Rien compris :(



quand tu utilises CCC pour qu'il exécute automatiquement un backup,
il crée un fichier dans /Library/LaunchDeamon

Ce fichier contient les instructions pour lancer CCC.

Je parles de faire un script qui monte ton disque, puis qui utilises les
instructions CCC ou le fichier CCC, puis qui démonte le disque.

Je ne sais pas comment faire ça, mais ça me semble possible et
intéressant.


--
Nicolas Michel
Avatar
Nicolas-Michel_REMOVE
Jacques Foucry wrote:

Michel Nicolas Alex wrote:

> - pourquoi utiliser sudo plutôt que root ?
> (pas besoins de l'activer, il suffit de soit faire une crontab root soit
> faire un launchd au niveau système)

Pour quelle mauvaise raison utilisez-vous root ? Personnellement je n'ai
pas le mot de passe root et je ne veux pas le connaître.



Euh, c'est moi qui m'exprime mal ou toi qui ne lit pas les post avant
d'y répondre ? :)

J'ai pas dit qu'il faut activer root.
J'ai dit que
sudo crontab -u root -e
ou la création d'un launch.plist
permet de lancer un job sans restrictions de droits et sans avoir à
utiliser sudo à chaque commandes du script ni à configurer visudo

Il n'existe que deux catégories d'admin Unix. Celui qui a déjà fait une
connerie sous root et celui qui ne va pas tarder à en faire une !



Quelle est la différence entre faire une erreur en root et faire une
erreur avec sudo ?

> - pourquoi écrire un script plutôt que d'utiliser synchronize! qui gère
> le mount et le unmount ?

Parce qu'un script peut être lancer pendant que je dors, lorsque que
n'ai pas de session lancé.



Syncronize! a un scheduler.

> - si synchronize! ne convient pas, pourquoi ne pas utiliser CCC en
> modifiant le lancement pour qu'il fasse le mount avant ?
> (CCC a l'avantage de gérer les exclusions, le bless et autre)

Pour la même raison. Et le bless n'a RIEN à voir avec les sauvegardes
des données.



CCC a aussi un scheduler.
Pour le bless, quand tu fais un backup système (ce dont il est question
dans ce fil) c'est agréable qu'il soit bootable ...

--
Nicolas Michel
Avatar
OdarR
On 22 avr, 11:06, (Michel
Nicolas Alex) wrote:
On peut aussi se dire qu'un cronjob est plus vite écrit,
qu'il est compatible avec toutes les versions de Mac OS X
et même avec plein d'autres systèmes,
que dans certaines versions de Mac OS X 10.4 launchd est buggy
que le man de launchd.plist est une perte de temps,
que après avoir écrit ton .plist il faudra encore le gérer alors qu e le
cronjob n'est que ce qui y est écrit.
qu'il est plus facile de faire une erreur dans un xml que dans une ligne
de texte.



au feeling, c'est pour tout celà que j'ai proposé cron un peu plus
haut...

Bref je suis flemard et cron me suffit.
Si une fois j'ai besoins d'écrire un job launchd, j'aviserai mais ça
n'est pas encore arrivé.



un petit éditeur Apple du genre iLaunchd serait le bienvenu.

Olivier
Avatar
Nicolas-Michel_REMOVE
OdarR wrote:


un petit éditeur Apple du genre iLaunchd serait le bienvenu.



Tien, toi qui est un défenseur de launchd, sais-tu si on peut faire un
job qui se lance sur demande plutôt que automatiquement ?

Parce que ce que SmB a mit dans son post original :

sudo rsync -xrlptgoEv --progress --delete / /Volumes/BACKUP

et ça m'étonnerais que ça fonctionne.

--
Nicolas Michel