Bash 脚本在运行 x 次后冻结

Bash 脚本在运行 x 次后冻结

我编写了一个脚本,用于使用 siege 测试 Web 服务器。每次运行之前,我都想将 VM 重置为快照,以便每次测试都有相同的起点。问题是脚本在运行 X 次后就会停止工作,有时可以运行 2 次,有时可以运行 7 次。这是脚本:

#!/bin/bash
for i in {0..30}
do
        ssh [email protected] vim-cmd vmsvc/snapshot.revert 1 9 0
        sleep 2m
        siege -c 1000 -t 60S http://10.204.15.165:80/ &> /root/512/test$i
done

看起来上次运行了围攻测试,但脚本下次无法执行 ssh 命令。10.204.15.168 处的主机是一台 ESXi 机器,它拥有来自运行脚本的主机的公共 ssh 密钥。

答案1

此问题与循环内的 ssh 有关。如果您想在循环内使用 ssh,请添加“-n',以便它可以在每次迭代中发挥作用。

#!/bin/bash
for i in {0..30}
do
    ssh -n [email protected] vim-cmd vmsvc/snapshot.revert 1 9 0
    sleep 2m
    siege -c 1000 -t 60S http://10.204.15.165:80/ &> /root/512/test$i
done

相关内容