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
でも…試行錯誤?もっといい方法が見つかると思います。