2010-12-06 5 views
3

Voici le script que je prévois d'utiliser pour générer 500 fichiers de test remplis de données aléatoires.Génération aléatoire de fichiers de test de taille variable

for((counter=1;counter<=500;counter++)); 
      do 
      echo Creating file$counter; 
      dd bs=1M count=10 if=/dev/urandom of=file$counter; 

       done 

Mais ce que je dois le script à faire est de faire ces 500 fichiers à être de taille variable à laisser dire entre 1M et 10M; à savoir, fichier1 = 1M, fichier2 = 10M, fichier3 = 9M etc ...

toute aide?

Répondre

3

Cela va générer 500 fichiers contenant chacun entre 1 et 10 méga-octets d'octets aléatoires.

#!/bin/bash 
max=10 # number of megabytes 
for ((counter=1; counter<=500; counter++)) 
do 
    echo Creating file$counter 
    dd bs=1M count=$(($RANDOM%max + 1)) if=/dev/urandom of=file$counter 
done 

La deuxième ligne pourrait plutôt être:

for counter in {1..500} 
+0

le nombre aléatoire nombre = $ (($ RANDOM% max + 1)), peut être atteint sans le "+1", quelle est la condition de celui-ci. – OpenFile

+0

@OpenFile: Sans ajouter 1, la plage des tailles de fichier va de 0 à 9 mégaoctets au lieu de 1 à 10 (ce qui était l'une des exigences de l'OP). Les trois réponses ajoutent 1, d'ailleurs, pour cette raison. –

3
set MAX=10 
for((counter=1;counter<=500;counter++)); 
do 
    echo "Creating file$counter" 
    dd bs=$((($RANDOM%$MAX)+1 ))M count=10 if=/dev/urandom of=file$counter 
done 
+0

Un grand merci semble que je ne devrais pas avoir « set » plus ne sais pas pourquoi il est pas stable je reçois des erreurs comme « Création fichier4 dd : numéro invalide '0M '" parfois ...? – deepseefan

+0

Cela se situe entre 0 et 90 Mo par pas de 10 Mo au lieu de 1 à 10 Mo par pas de 1 Mo. –

+0

fixé en ajoutant +1 dans l'exemple – mpapis

Questions connexes