指定した時間の間、サーバへリクエストを送信する

#!/bin/sh

#sends a http request for specific seconds

url=http://www.example.com
seconds=10 #10秒と指定
timer=$((`date +%s` + $seconds)) #10秒後の時間を取得

echo "Sending request to $url for $seconds seconds"

while [ $timer -ne `date +%s` ]; do #10秒後の時間と現在の時間を比較し、一致しない間は処理を続行

curl $url >/dev/null 2>&1

if [ $? -ne 0 ]; then 
#サーバへの接続に失敗した場合はエラーメッセージを表示して終了
echo "Failed to send request!"
exit 1
fi

done

echo "Request has been sent!"

特定の時間、指定したサーバへリクエストを送信するスクリプトです。

※くれぐれも本スクリプトを自分の管理下にないサーバに対して使用しないでください。最悪の場合、サーバをDOS状態に陥らせてしまいます。

2015年1月28日 追記
宛先と秒数を標準入力から受け付けるように変更

#!/bin/sh

#sends a http request for specific seconds

if [ $# -ne 2 ]; then
echo "Usage: $0 [URL] [seconds]"
exit 1
fi

url=$1
seconds=$2
timer=$((`date +%s` + $seconds))

echo "Sending request to $url for $seconds seconds"

while [ $timer -ne `date +%s` ]; do

curl $url >/dev/null 2>&1

if [ $? -ne 0 ]; then

echo "Failed to send request!"
exit 2

fi

done

echo "Request has been sent!"

Leave a Reply

Your email address will not be published. Required fields are marked *