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 18/01/2013, à 20:17

Math

Script automatique de sauvegarde CD multisupport

Bonjour,

Je recherche à faire une sauvegarde sur CD/DVD d'un répertoire volumineux (>30Gio).
J'ai donc besoin de faire un multi-support ; mais je ne veux pas de tar/zip multivolume. (sinon, ce serait très facile).
En effet, j'ai besoin de graver ces fichiers sans compression.

J'ai donc pensé à un script qui me ferai une copie (lien symbolique/dur) de mon répertoire en gérant la taille pour ne pas dépasser la limite.

En gros, mon répertoire actuelle est :

~/medias
     /2012
              /01
              /02
              /06
              /07
     /2013
              /01
              /02
              /06
              /07

Donc, l'idée serait peut être d'avoir un script qui reprioduirait :

~/medias
     /CD1
          /2012
                   /01
                   /02
     /CD2
          /2012
                   /06
                   /07
     /CD3
          /2012
                   /07 <== parce qu'il n'avais plus la place sur le CD2
          /2013
                   /01
                   /02
                   /06
                   /07

Est-ce que vous connaissez un script qui me permettrai de faire ceci de manière automatique ?
Ou alors connaissez vous une aurte solution ?

Merci

Hors ligne

#2 Le 20/01/2013, à 07:34

pingouinux

Re : Script automatique de sauvegarde CD multisupport

Bonjour,
La seconde arborescence est-elle censée remplacer la première, et contenir réellement les fichiers ? L'autre possibilité est qu'elle soit créée en plus, éventuellement dans un autre répertoire de base, et contienne des liens symboliques vers les fichiers d'origine.

Hors ligne

#3 Le 20/01/2013, à 09:27

Math

Re : Script automatique de sauvegarde CD multisupport

Oui, je pense que le plus simple est effectivement d'avoir une "copie" sous forme de symlinks ; c'est ce que j'imaginais déjà..

Hors ligne

#4 Le 20/01/2013, à 09:48

pingouinux

Re : Script automatique de sauvegarde CD multisupport

Dans ce cas, voici un script qui peut éventuellement convenir.

#!/bin/bash

ORIG=~/medias
A_SAUVER=.
DEST=/tmp/tst
LON_MAX=700000000;

cd "$ORIG"
n=0;
while read fic
do
   lon=$(stat -c "%s" "$fic")
   n_=0
   for k in $(seq 1 $n)
   do
      LON=$((${N[$k]}+lon))
      ((LON <= LON_MAX)) && { n_=$k; break; }
   done
   ((n_==0)) && { ((n++)); LON=$lon; n_=$n; }
   orig="$ORIG/$fic"
   dest="$DEST/CD$n/$fic"
   printf "%3d %8d %8d %s\n" $n_ $lon $LON "$dest"
   mkdir -p "$(dirname "$dest")"
   ln -s "$orig" "$dest"
   N[$n_]=$LON
done < <(find "$A_SAUVER" -type f)
for k in ${!N[@]}; do printf "%3d %8d\n" $k ${N[$k]}; done

ORIG           : Répertoire de départ
A_SAUVER  : Répertoire à sauvegarder (situé dans $ORIG)
DEST           : Répertoire de destination
LON_MAX   : Longueur max en octets de chaque CDn

Remarque :
Ce script ne s'occupe que des fichiers de l'arborescence (à l'exclusion des liens), et ne tient pas compte de la place prise par les répertoires.

Hors ligne

#5 Le 20/01/2013, à 14:24

Math

Re : Script automatique de sauvegarde CD multisupport

Hello,

Merci beaucoup ; l'effet désiré me semble très bien..
Il faut juste bien faire attention au "/bin/bash" ;

Ensuite, je fais un

mkisofs -J -r -f -o ./CD1.iso ./CD1/

pour préparer mes iso.


LON_MAX=680000000; #680Mo avec un peut de marge
LON_MAX=4294967296; #4Go avec pas mal de marge :-)
LON_MAX=4504682496; #4,2Go avec un peut de marge

Hors ligne