#1 Le 05/10/2011, à 14:20
- obibann
[Résolu] Générer rapidement un très grand nombre de fichiers
Bonjour,
Pour tester la robustesse d'un script qui met à jour les droits sur un répertoire et son contenu (chmod -R) je souhaiterais me retrouver en situation, c'est à dire générer entre 500 000 et 1 000 000 de fichiers dans ce répertoire.
J'ai essayer de copier en boucle un fichier mais cette méthode s'avère trop longue :
yes | while true ; do key=`cat /dev/urandom| tr -dc 'a-zA-Z0-9' | fold -w 10| head -n 1` ; cp -f file_test.bin "file_$key.bin" ; done
(avec file_test.bin ne pesant que quelques Ko pour évier de saturer)
Auriez-vous une astuce pour réaliser ceci ?
Merci.
Dernière modification par obibann (Le 05/10/2011, à 14:48)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#2 Le 05/10/2011, à 14:26
- redo_fr
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Salut,
une idée comme ça (pas testé, en fait ^_^)
for i in `seq 1 1000`
do
for j in `seq 1 1000`
do
for k in `seq 1 1000`
do
touch $i_$j_$k
done
done
done
ça donne quoi en vitesse?
Dernière modification par redo_fr (Le 05/10/2011, à 14:30)
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#3 Le 05/10/2011, à 14:35
- obibann
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
C'est très rapide !! Mais les fichiers sont vides (c'est important pour tester du chmod ?).
Ça reste encore très long pour atteindre les 500 000
Edit : ah oui et si j’interromps pour tester, ba il reprend depuis le début, en "retouchant" les fichiers ><
Dernière modification par obibann (Le 05/10/2011, à 14:38)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#4 Le 05/10/2011, à 14:43
- redo_fr
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Une autre méthode, plus "classe"
dd if=/dev/zero of=grosFichier bs=1k count=10000
split -a 6 -b 10 grosFichier
Tu peux modifier le "count=10000" par plus gros ou "-b 10" par plus petit pour avoir plus de fichiers découpés
Dernière modification par redo_fr (Le 05/10/2011, à 14:56)
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#5 Le 05/10/2011, à 14:48
- obibann
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Pas con du tout !!! C'est ultra rapide, mais le truc de fou quoi !!
Pourquoi j'y ai pas pensé ^^
Bon ba résolu Merci beaucoup redo_fr
Edit : boarf, 500 000 fichier en 3 minutes, facile
Dernière modification par obibann (Le 05/10/2011, à 14:50)
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#6 Le 05/10/2011, à 14:59
- redo_fr
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Un peu lente ta machine
Ici, au boulot (chut...), j'ai généré 100 000 fichiers en ... 7 secondes (soit un peu plus de 1 min pour 1 million de fichiers )
Fais attention à ne pas "pêter" tes inodes...
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#7 Le 05/10/2011, à 16:18
- obibann
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Pas mal !!
Mais là j'ai testé sur une machine virtuelle mono cpu en ext3.
Sur le serveur je pense que je te bas
Ubuntu 16.04
Avec Windows, on fait ce qu'on peut... Avec Linux, on fait ce qu'on veut !! :p
Hors ligne
#8 Le 06/10/2011, à 13:48
- ehmicky
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Wow, vous vous cassez la tête
touch {1..100000}
Dernière modification par ehmicky (Le 06/10/2011, à 13:48)
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#9 Le 06/10/2011, à 13:58
- redo_fr
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Sauf que...
touch {1..500000}
-bash: /usr/bin/touch: Liste d'arguments trop longue
Dernière modification par redo_fr (Le 06/10/2011, à 13:58)
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#10 Le 06/10/2011, à 14:08
- ehmicky
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Bien vu , on peut alors aussi faire :
for i in {1..500000} ; do touch $i ; done
ou (peut-être plus performant, pas testé) :
for i in {a..z} ; do touch {1..300000}$i ; done
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne
#11 Le 06/10/2011, à 14:13
- redo_fr
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
pas assez rapide, petit scarabé ^_^
Regardes mon premier post et le suivant.d'obibann
Il n'y a pas de mauvais outils, il n'y a que de mauvais ouvriers
- papy -
Personnellement, je crois que faire des procès est un signe que les affaires vont mal. Je ne dis pas que Microsoft va mal, ce n'est qu'un signe, pas un indicateur...
- Linus Torvalds -
Hors ligne
#12 Le 06/10/2011, à 14:31
- ehmicky
Re : [Résolu] Générer rapidement un très grand nombre de fichiers
Peut-être pas plus rapide que le split (pas testé), mais en tout cas sûrement plus que seq
Stego++, bibliothèque libre de stéganographie (avec cryptographie), à venir !
Besoin de votre aide :
Stats sur les compilateurs C++ les plus utilisés
Comment utiliser les archetypes C++ ?
Hors ligne