OVH Cloud OVH Cloud

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

4 5 6 7 8
Avatar
Patrick Stadelmann
In article <1iyl6bo.zjqbbb1ep0lnwN%,
(SbM) wrote:

Patrick Stadelmann wrote:

> In article <1iyl2mr.52ks551dke7brN%,
> (SbM) wrote:
>
> > Le .plist que j'ai regardé contient à première vue uniquement les
> > paramètres de la sauvegarde programmée, et le chemin vers la commande
> > "ccc". Mais c'est tout. Après pour savoir ce que ccc, une fois lancé,
> > transmet à rsync ou asr...
>
> Et c'est pas possible de remplacer l'appel à ccc par un appel vers un
> script perso qui commence par monter le disque, puis appelle ccc comme
> launchd l'aurait fait ?

Comment ferais-je pour transmettre les paramètres de la sauvegarde à
ccc, si je peux plus utiliser son .plist ?



Si tu remplace juste le chemin vers ccc par celui vers ton script,
celui-ci va recevoir ce que launchd destine à ccc. Après avoir monté le
disque, il suffit d'appeler ccc en lui transmettant ce qui a été reçu de
launchd.

Patrick
--
Patrick Stadelmann
Avatar
OdarR
On 22 avr, 11:38, (Michel
Nicolas Alex) wrote:
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 ?



je ne suis pas défenseur (j'ai proposé cron plus haut).

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.




si c'est pour la demande du mot de passe, on a déjà proposé une
solution...voir plus haut.

Olivier
Avatar
OdarR
On 22 avr, 16:51, (SbM) wrote:
Le .plist que j'ai regardé contient à première vue uniquement les
paramètres de la sauvegarde programmée, et le chemin vers la commande
"ccc". Mais c'est tout. Après pour savoir ce que ccc, une fois lancé,
transmet à rsync ou asr...



y a pas un 'man ccc' ?

histoire d'arrêter de se faire ierch avec des interfaces alakon avec
une souris et des plist non pilotables ;-)

vive le prompt et les nœud au cerveau ;-)

je sors,

Olivier
Avatar
laurent.pertois
SbM wrote:

Le .plist que j'ai regardé contient à première vue uniquement les
paramètres de la sauvegarde programmée, et le chemin vers la commande
"ccc". Mais c'est tout. Après pour savoir ce que ccc, une fois lancé,
transmet à rsync ou asr...



Ben, ça peut être dans la commande qui pourrait être un script construit
à la demande en fonction de tes options dans CCC.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.
Avatar
Nicolas-Michel_REMOVE
OdarR wrote:

On 22 avr, 11:38, (Michel
Nicolas Alex) wrote:



> sudo rsync -xrlptgoEv --progress --delete / /Volumes/BACKUP
> ça m'étonnerais que ça fonctionne.


si c'est pour la demande du mot de passe, on a déjà proposé une
solution...voir plus haut.



Il y a des excludes à faire.
Par exemple voici ce que je trouve dans le launchd.plist de CCC :

<key>ignoredItems</key>
<array>
<string>.Spotlight-V100</string>
<string>/.fseventsd</string>
<string>/.hotfiles.btree</string>
<string>/.vol/*</string>
<string>/Auth.bak</string>
<string>/Backups.backupdb</string>
<string>/Cleanup At Startup</string>
<string>/TheVolumeSettingsFolder</string>
<string>.Trash</string>
<string>.Trashes</string>
<string>/TheFindByContentFolder</string>
<string>/Shutdown Check</string>
<string>Temporary Items</string>
<string>/VM Storage</string>
<string>/OpenFolderListDF</string>
<string>/Desktop (Mac OS 9)</string>
<string>/.com.apple.NetBootX</string>
<string>/Volumes/*</string>
<string>.VolumeIcon.icns</string>
<string>/dev/*</string>
<string>/automount</string>
<string>/Network</string>
<string>/private/var/vm/*</string>
<string>/private/tmp/*</string>
<string>/home</string>
<string>/net</string>
</array>

Il y avait psync qui permettait de faire un backup bootable dans prise
de tête. Il marche peut-être encore ?
--
Nicolas Michel
Avatar
Nicolas-Michel_REMOVE
Laurent Pertois wrote:

Oh il doit lancer un truc mais il m'étonnerait qu'il pilote tout. De
plus, de mémoire CCC utilise des commandes de l'OS (ou certaines
embarquées). Il faudrait regarder la gueule du plist. Cependant, n'ayant
absolument pas besoin de CCC, je ne vais pas l'installer juste pour ça,
il faudra me dire où trouver ce genre de trucs.



SmB a déjà posté la chose
Evidement le script change suivant le backup qu'on fait.

Tiens, ça faisait longtemps que tu ne t'étais pas fait des noeuds au
cerveau :-)



Même pas mal. ;->

Tu as de quoi faire tout ce que fait launchd depuis si longtemps que ça
? eh bé...



Il y a un quatrin d'omar kayam à ce sujet ...
un truc genre

Il ne manquait rien au monde avant que launchd ne soit là
quand il ne sera plus, ce sera bien pareil

--
Nicolas Michel
Avatar
Nicolas-Michel_REMOVE
Laurent Pertois wrote:

Michel Nicolas Alex wrote:

> Je crois qu'on vient de démontrer que launchd c'est de la merde ;->

Non, on vient de démontrer que CCC c'est de la merde, launchd n'y est
pour rien si le développeur stocke n'importe quoi dans des fichiers. Si
on va par là on va démonter pas mal des trucs que tu défends en prenant
tout à l'envers.



L'expression "c'est de la merde" est mon expression favorite à chaque
fois que je trouve un défaut quelque part, en l'occurence je trouve que
c'est une faiblesse de launchd que de contenir non pas des instructions
cli, mais des arguments en xml : c'est difficilement utilisable hors
launchd.

Ce que SmB n'est pas parvenu à faire malgré les conseils avisés de
Patrick et de toi même, selon mon idée dordue, se serait fait très
simplement avec un script /etc/init.d simplement en ajoutant le mont en
début de script.

--
Nicolas Michel
Avatar
Patrick Stadelmann
In article
<1iymbcw.9b6o3rfw38tqN%,
(Michel Nicolas Alex) wrote:

L'expression "c'est de la merde" est mon expression favorite à chaque
fois que je trouve un défaut quelque part, en l'occurence je trouve que
c'est une faiblesse de launchd que de contenir non pas des instructions
cli, mais des arguments en xml : c'est difficilement utilisable hors
launchd.



La commande que launchd exécute effectivement, c'est un champ "commande"
et un série de champs "arguments". La "commande" peut très bien être un
script, qui peut donc être modifié à volonté.

Le reste des champs dans la .plist, c'est utilisé par launchd pour
configurer l'environnement avant de lancer la commande. CCC y ajoute en
plus des champs à l'usage de son helper, champs qui sont simplement
ignorés par launchd.

Ce que SmB n'est pas parvenu à faire malgré les conseils avisés de
Patrick et de toi même, selon mon idée dordue, se serait fait très
simplement avec un script /etc/init.d simplement en ajoutant le mont en
début de script.



Si ton script /etc/init.d lance ccc_helper au boot et que c'est ce
dernier qui attend l'heure voulue pour démarrer le backup, il y aurait
exactement le même problème. Le problème, c'est que CCC utilise launchd
comme un lanceur de démon, et pas comme un substitut de cron.

Patrick
--
Patrick Stadelmann
Avatar
laurent.pertois
Michel Nicolas Alex wrote:

Laurent Pertois wrote:

> Michel Nicolas Alex wrote:
>
> > Je crois qu'on vient de démontrer que launchd c'est de la merde ;->
>
> Non, on vient de démontrer que CCC c'est de la merde, launchd n'y est
> pour rien si le développeur stocke n'importe quoi dans des fichiers. Si
> on va par là on va démonter pas mal des trucs que tu défends en prenant
> tout à l'envers.

L'expression "c'est de la merde" est mon expression favorite à chaque
fois que je trouve un défaut quelque part, en l'occurence je trouve que
c'est une faiblesse de launchd que de contenir non pas des instructions
cli, mais des arguments en xml : c'est difficilement utilisable hors
launchd.



Le XML n'est qu'un moyent de stoker l'info et permet de parser cette
dernière aisément. Mac OS X utilise énormément le XML (et ce n'est pas
le seul, cf Solaris 10...) et intègre donc un parser qui est éprouvé,
ils se sont donc contentés de le réutiliser. Après, si tu regardes bien
un plist, tu verras, pour lancer une commande, qu'on y trouve la
commande et ses options.

Ce que SmB n'est pas parvenu à faire malgré les conseils avisés de
Patrick et de toi même, selon mon idée dordue, se serait fait très
simplement avec un script /etc/init.d simplement en ajoutant le mont en
début de script.



Patrick a bien expliqué.

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.
Avatar
laurent.pertois
Michel Nicolas Alex wrote:

Laurent Pertois wrote:

> Oh il doit lancer un truc mais il m'étonnerait qu'il pilote tout. De
> plus, de mémoire CCC utilise des commandes de l'OS (ou certaines
> embarquées). Il faudrait regarder la gueule du plist. Cependant, n'ayant
> absolument pas besoin de CCC, je ne vais pas l'installer juste pour ça,
> il faudra me dire où trouver ce genre de trucs.

SmB a déjà posté la chose
Evidement le script change suivant le backup qu'on fait.



Voui, j'ai vu.

> Tiens, ça faisait longtemps que tu ne t'étais pas fait des noeuds au
> cerveau :-)

Même pas mal. ;->



;-)

> Tu as de quoi faire tout ce que fait launchd depuis si longtemps que ça
> ? eh bé...

Il y a un quatrin d'omar kayam à ce sujet ...
un truc genre

Il ne manquait rien au monde avant que launchd ne soit là
quand il ne sera plus, ce sera bien pareil



Oh mais on pourrait généraliser à l'informatique ;-)

--
Politically Correct Unix - UTILITIES
The "touch" command has been removed from the standard distribution due
to its inappropriate use by high-level managers.
4 5 6 7 8