我有一个 shell 脚本来运行 JMeter 测试。脚本生成 Jmeter 日志输出并创建 sar(假设创建 sar 文件,但实际上没有)。外壳脚本是 -
runtest()
{
export JMETER_HOME=/home/software/apache-jmeter-2.6
host=$1
port=$2
loopcount=$3
logfile=jmeter$(date -d "today" +"%Y%m%d%H%M%S").jtl
sarfile=sar$(date -d "today" +"%Y%m%d%H%M%S").dat
sar -o $sar_file 3 100000 >/dev/null 2>&1 &
sar_pid=$!;
echo 'sar started with pid' $sar_pid;
for ((start=1; start <= $loopcount; start++ ))
do
echo 'Iteration' $start;
$JMETER_HOME/bin/jmeter.sh -n -t ReportWebService.jmx -Jhost=$host -Jport=$port -l $logfile
done
sleep 2
echo 'killing sar process id' $sar_pid
kill -9 $sar_pid;
}
runtest localhost 8087 1
当我执行shell脚本时,我最终遇到错误 -
sar started with pid 13191
Iteration 1
Created the tree successfully using ReportWebService.jmx
Starting the test @ Tue Apr 17 11:16:24 IST 2012 (1334641584914)
Waiting for possible shutdown message on port 4445
Tidying up ... @ Tue Apr 17 11:16:25 IST 2012 (1334641585129)
... end of run
killing sar process id 13191
./temp.sh: line 22: kill: (13191) - No such process
我没有看到任何为 sar 数据生成的“.dat”文件。这个 shell 脚本有什么问题?
答案1
您的问题中有一个拼写错误:您设置了sarfile
but use sar_file
,这可能会导致您的sar
命令因错误而退出。