我需要测试 sftp 主机的文件大小上传限制。我想制作一系列越来越大的文件,尝试将它们全部上传并看看哪里失败了。
我正在这样做for i in {10000..100000} ; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done ;
,但这花了太长时间,而且我得到的文件从 10K 开始,到 11K、12K 等。我希望大小以更大的增量跳跃。
如何制作一系列文件不会有如此细粒度的大小差异?我认为限制在 0 到 1 MB 之间。
答案1
从dd(1)
:
bs=字节
/.../
BLOCKS 和 BYTES 后面可以跟以下乘法后缀:c =1、w =2、b =512、kB =1000、K =1024、MB =1000*1000、M =1024*1024
或者,如果您有最新版本的 bash,该{}
构造还采用一个步骤参数:
for i in {10000..100000..1000}; do dd if=/dev/zero of=testfile$i bs=$i count=1 ; done
答案2
出于学术目的,这将通过附加到同一文件来以 1024 字节为增量为命令提供 1k 个输入文件。
while ((++n<=1024)); do
printf '\0%.s' {1..1024} >&3
xxd -g 1 /dev/stdin; echo # sftp command here
done <<<'' 3>/dev/stdin
但是……反复试验?我会找到更好的方法。