64 GB de archivos, de 30 a 50 MB cada uno
Primero, hay un par de maneras de crear archivos grandes. Este comando crea un archivo de ceros de 30 MB muy rápidamente.
dd if=/dev/zero of=file.dat count=30 bs=1048576
Este comando crea un archivo de 50 MB de bytes aleatorios. No es tan rápido como un archivo de ceros.
dd if=/dev/urandom of=file.dat count=50 bs=1048576
Aquí hay otros comandos útiles para este proyecto.
jot -r 1 30 50 # makes a random number between 30 and 50
du -sm . | awk {'print $1'} # finds the size in MB for the current folder
Shell script
Elegir archivos de ceros (es más rápido) y juntar todo en un script de shell:
#!/bin/sh
min=1 # minimum file size
max=1 # maximum file size
limit=1 # limit of total files size
filetype="dat" # filetype
folder="." # folder to put files in
zeros=1 # fill with zeros or random bytes?
while getopts ":h:n:m:l:f:t:z:" opt; do
case $opt in
h) echo "-n {min. file size in MB} -m {max. file size in MB} -l {limit of total size of all files in GB} -t {string filetype without dot ex.: 'jpg'}-z {1 = fill with zeros | 0 = fill with random bytes (slower) }"
;;
n) min="$OPTARG"
;;
m) max="$OPTARG"
;;
l) limit="$OPTARG"
;;
f) folder="$OPTARG"
;;
t) filetype="$OPTARG"
;;
z) zeros="$OPTARG"
;;
\?) echo "Invalid option -$OPTARG" >&2
;;
esac
done
if [ $zeros -eq 1 ]
then
source=/dev/zero
else
source=/dev/urandom
fi
n=1 # count files
lm=$((($limit*1000)-($max-1))) # real total file size limit
sz='du -sm "$folder" | awk {'print $1'}' # size of folder in MB
while [ $sz -lt $lm ];
do
cnt='jot -rn 1 $min $max';
dd if=$source of=$folder/file$n.$filetype count=$cnt bs=1048576 2> /dev/null;
status=$?;
if [ $status -eq 0 ]; then
echo file$n.$filetype $cnt MB;
else
echo write file$n.$filetype failed;
exit $status;
fi
let n=n+1;
sz='du -sm "$folder" | awk {'print $1'}';
done
exit;
-
n
cuenta los archivos para que cada archivo tenga un nombre diferente
-
cnt
es un número aleatorio de $ min a $ max que utiliza el comando dd
para crear un archivo entre $ min MB y $ max MB
Copie el script y péguelo en una nueva ventana de TextEdit. Seleccione Format->Make Plain Text
en la barra de menú. Guarde el archivo en el escritorio y asígnele el nombre random_data_files.sh
.
Creando los archivos
Abra una ventana Terminal
y ejecute estos comandos:
cd ~/Desktop
chmod a+x random_data_files.sh
Haz una carpeta o monta una tarjeta SDXC. cd
a la carpeta o tarjeta. Ejecute el script de shell.
~/Desktop/random_data_files.sh -n 30 -m 50 -l 64 -t jpg -f {your_folder}
El script creará aproximadamente 1,600 archivos (a veces más, a veces menos) para 64 GB de archivos de 30 a 50 MB. Abra otra ventana de Terminal en la misma carpeta o la misma tarjeta, y use:
du -h
para ver el progreso de la secuencia de comandos. Por favor, comente si algo no está claro o si tiene un problema.