Createur de fichiers aleatoire
Si vous avez déjà eu besoin d’écrire une quantité précise de fichiers avec du contenu aléatoire et de taille aléatoire (mais dans une marge précise) le tout contenu dans un nombre précis de répertoires alors ce script pourra peut être vous aider.
Cela dit, si vous êtes du genre a prendre plaisir a résoudre de énigmes faciles sachez que ce truc est vraiment facile a faire, alors pourquoi pas essayer avant de regarder comment j'ai fait... Vous trouverez peut être un moyen plus sympa ou varié.
#!/bin/bash
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
# Version 2, December 2004
#
# Copyright (C) 2011 Emmanuel Revah <manu@manurevah.com>
#
# Everyone is permitted to copy and distribute verbatim or modified
# copies of this license document, and changing it is allowed as long
# as the name is changed.
#
# DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
# TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
#
# 0. You just DO WHAT THE FUCK YOU WANT TO.
##### Config (uration) #####
# QTY of files to create
QTY=1000000
# Where to create new files ?
OUTPUT="/home/herebefiles"
# Min and Max size per file in kB
MIN=1
MAX=10
# Max number of directories to create
MAXDIR=500
############## END CONFIG #############
# Correct MIN and MAX and check
MAX=`expr $MAX - $MIN + 1`
if [[ ${MAX} < 0 ]]; then
echo "ERROR: MAX is lower than MIN, and vice versa."
exit
fi
for i in $(seq 1 $QTY); do
echo "File number -> $i"
DDCOUNT=$[ ( $RANDOM % $MAX ) + $MIN ]
DIR=$[ ( $RANDOM % $MAXDIR ) + 1 ]
# uncomment and use "$OUTPUT/$DIR/${i}_$FILENAME" to avoid rewriting over previous random files
#FILENAME=`head -n1 /dev/urandom | md5sum| awk {'print $1'}`
if [ ! -d $OUTPUT/$DIR ]; then
mkdir -p $OUTPUT/$DIR
fi
dd bs=1024 count=$DDCOUNT skip=0 if=/dev/urandom of=$OUTPUT/$DIR/${i} 2> /dev/null
done