Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Réservez vos DVD et clé USB Ubuntu-fr (premières livraisons mi-mai)

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

M.A.J. en cours du forum possibilité de bug, nous faisons le maximum pour les résoudre au plus vite

#1 Le 18/01/2013, à 21: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, à 08: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, à 10: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, à 10: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, à 15: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