Necesito probar un host sftp para determinar su límite de carga de tamaño de archivo. Quería hacer una serie de archivos que fueran de tamaños cada vez más grandes, para intentar subirlos todos y ver dónde fallaban.
Lo estaba haciendo for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ;
, pero me estaba tomando demasiado tiempo y los archivos que estaba obteniendo comenzaban en 10K, llegaban a 11K, 12K, etc. Quiero que el tamaño aumente en incrementos más grandes.
¿Cómo se puede crear una serie de archivos que no tengan una diferencia de tamaño tan fina? Creo que el límite está entre 0 y 1 MB.
Respuesta1
De dd(1)
:
bs=BYTES
/.../
BLOQUES y BYTES pueden ir seguidos de los siguientes sufijos multiplicativos: c =1, w =2, b =512, kB =1000, K =1024, MB =1000*1000, M =1024*1024
Alternativamente, si tienes una versión reciente de bash, la {}
construcción también toma un parámetro de paso:
for i in {10000..100000..1000}; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done
Respuesta2
Para fines académicos, esto le daría a un comando 1k archivos de entrada en incrementos de 1024 bytes al agregarlos al mismo archivo.
while ((++n<=1024)); do
printf '\0%.s' {1..1024} >&3
xxd -g 1 /dev/stdin; echo # sftp command here
done <<<'' 3>/dev/stdin
Pero… ¿prueba y error? Encontraría una mejor manera.