目的
一定のサイクルでアクセスを飛ばしたり、一定量のファイルに対して処理をする場合、コマンドを繰り返し実行するツール(shファイル/batファイル)があると作業の時短になり便利です。今回は、私が使用しているサンプルソースを公開します。
Windows編(コマンドプロンプト用batファイル)
batファイル
任意のコマンドを一定間隔繰り返し実行する。(疎通確認や負荷試験で使用する)
sample.bat
@echo off
echo ======================================
echo Tool Start
echo %date% %time%
echo parameter1(Loop): %1
echo parameter2(Wait): %2
echo ======================================
FOR /l %%n IN (1,1,%1) do (
rem 実行コマンド
echo Do Command
timeout /nobreak %2 > nul
)
echo ======================================
echo Tool Finish
echo %date% %time%
echo ======================================
実行方法
コマンドプロンプトを開き、batファイルに引数を渡して実行する。
parameter1(Loop): 10 ⇦ 繰り返し回数
parameter2(Wait): 2 ⇦ コマンド実行後に待つ秒数
上記の場合、2秒間隔で10回コマンド実行するとなる。
sample.bat 10 2
実行結果
======================================
Tool Start
2022/01/01 12:06:09.06
parameter1(Loop): 10
parameter2(Wait): 2
======================================
Do Command
Do Command
Do Command
Do Command
Do Command
Do Command
Do Command
Do Command
Do Command
Do Command
======================================
Tool Finish
2022/01/01 12:06:29.13
======================================
Linux編(.shファイル)
shファイル【準備中】
【準備中】
任意のコマンドを一定間隔繰り返し実行する。(疎通確認や負荷試験で使用する)
sample.sh
#!/bin/bash
echo ======================================
echo "Tool Start"
date
echo "parameter1(Loop): $1"
echo "parameter2(Wait): $2"
echo ======================================
for i in `seq 1 $1`
do
# コマンド実行
echo Do Command
sleep $2
done
echo ======================================
echo Tool Finish
date
echo ======================================
実行方法
shファイルに引数を渡して実行する。
parameter1(Loop): 10 ⇦ 繰り返し回数
parameter2(Wait): 2 ⇦ コマンド実行後に待つ秒数
上記の場合、2秒間隔で10回コマンド実行するとなる。
sample.sh 10 2
実行結果
【準備中】
【おまけ】バックグラウンド実行【準備中】
【準備中】