Bonjour,
Dans un contexte d'archivage, je voudrais regrouper des blobs par paquet de 100000 et les tarer ?
Avez-vous une idée sur comment faire?
Bonjour,
Dans un contexte d'archivage, je voudrais regrouper des blobs par paquet de 100000 et les tarer ?
Avez-vous une idée sur comment faire?
les blobs attaques la plage !!!!!!!!!!!!!!!*
heu c'est quoi un blob ? un bloc de données ?
=========
mais sur le principe si un blob = 1 fichier ou 1 fichier = n blobs (n constant)
il suffit de faire un script qui boucle sur l'analyse des fichiers qui les archives en tar avec horodatage et compression par exemple...
===========
*référence culturelle pas si obscur que ça...
Effectivement, dans mon cas, les blobs sont des fichiers d'extraction de la base.
1 fichier=1Blob.
En gros, j'ai des milliers de fichiers et je veux les "tarer" par paquet de 100 000.
Voilà mon besoin.
tu peux aussi si ça t'arrange faire par taille de fichier plustot que par lot de n fichiers....
ça fera des fichiers tar de 700m maximum chacuns només db_backup.taraa, db_backup.tarab, db_backup.tarac etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part tar -cf dbbackup.db | split -b 700m db_backup.tar
====================
sinon par lots de fichiers,
faut compter les boucles sur un principe du style : à adapter/tester/améliorer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 count=0 numfichier=0 while [ $numfichier -lt 100000 ] ; do ls | while read do tar upf truc.$count.$(date +%Y%m%d).tar $REPLY numfichier=$((numfichier + 1)) done count=$(($count + 1)) # pour numeroter les fichiers tar numfichier=0 # pour compter les fichiers dans chaque tar done # essayer de finir proprement rm /tmp/liste & for i in *.tar ; do gzip $i ; done & unset ..... # un par variables
Merci beaucoup.
Dans mon cas, je dois passer par le 2eme exemple, je testerai.
Merci encore une fois.
par contre pour le 1er exemple, ça restera toujours valable si j'ai un ensemble de fichier à "tarer" (en gros mon entrée c'est un dossier qui les contient)et pas un fichier de type ".db" ?
oui ça marche aussi avec des répértoires "entiers"
Voici une solution beaucoup plus simple pour les interessés:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 #positionnement dans le répertoire cd $DIR #Nb de fichiers par archive N=100000 #à remplacer par le nombre que vous voulez s="" i=0 j=0 for f in `ls *.txt` #à remplacer par le filtre qui va bien do i=$((i+1)) s=$s" "$f if [ $i -eq $N ] then j=$((j+1)) tar -c -f archive_$j.tar $s i=0 s="" fi done # Ce petit bout de code c'est à rajouter pour finir les fichiers restants (si N=5 et on 12 fichiers, 2 fichiers vont rester=> ce petit bout de code rajoute les 2 fichiers restants) i=$((i+1)) s=$s" "$f if [ $i -ne $N ] then j=$((j+1)) tar -c -f archive_$j.tar $s else echo $RED_COLOR"La compression des fichiers d'archive a échoué!"$INITIAL_COLOR fi fi
Bonjour,
Dans mon algo, quand j'arrive à:
J'ai un problème de "The parametre List is to long" vu que je fais regroupement de 100 000 fichiers.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tar -c -f archive_$j.tar $s
Avez vous une idée sur comment résoudre ce problème ?
Merci d'avance
Partager