1

基本的に、サーバーのストレステストを行い、コマンドが実行されていることを確認するスクリプトを作成しようとしています。スクリプトが意図したとおりに機能していません。以下はスクリプトです。基本的に、スクリプトが実行しているコマンドは非同期で実行されておらず、その出力は結果ファイルに書き込まれていません。助言がありますか?

#Script to load test the swift command on a linux box

numOfTests=100
echo "Starting Swift Load Tester ($numOfTests iterations)"

mkdir /srv/www/htdocs/audiotest/stress_test
mkdir /srv/www/htdocs/audiotest/half_sec_test
mkdir /srv/www/htdocs/audiotest/sec_test

echo "This is the prompt text" > /srv/www/htdocs/audiotest/prompt.txt

echo "Beginning Stress Test..."

#Clear results text file
echo "" > results.txt

for((i=0; i < numOfTests; i++))
do
    (time /opt/swift/bin/swift -n Allison-8kHz -o /srv/www/htdocs/audiotest/stress_test/$i.wav -f /srv/www/htdocs/audiotest/prompt.txt &) >> results.txt 2>&1
done

echo "Done"
echo "Beginning 1/2 second interval test..."

for((i=0; i< numOfTests; i++))
do
    (time /opt/swift/bin/swift -n Allison-8kHz -o /srv/www/htdocs/audiotest/half_sec_test/$i.wav -f /srv/www/htdocs/audiotest/prompt.txt &) >> results.txt 2>&1
    sleep .5
done

echo "Done"
echo "Beginning 1 second interval test..."

for((i=0; i< numOfTests; i++))
do
    (time /opt/swift/bin/swift -n Allison-8kHz -o /srv/www/htdocs/audiotest/sec_test/$i.wav -f /srv/www/htdocs/audiotest/prompt.txt &) >> results.txt 2>&1
    sleep 1
done

echo "Done"

echo "Load Testing Completed"
4

2 に答える 2

2

>リダイレクト演算子として使用すると、ファイルが上書きされます。その結果、最後に実行されたテストのみが表示されます。>>代わりに使用してください。出力を stderr に書き込むため、timeこれらの結果を確認したい場合は、stderr もリダイレクトする必要があります。

于 2012-06-14T18:51:12.610 に答える
1

サブシェルを使用し、stderrもリダイレクトして、機能するかどうかを確認します。

(time myCommand [args]&)> results.txt 2>&1

于 2012-06-14T18:44:52.657 に答える