![检查连接环路,如果掉落则重新启动第二个环路](https://linux22.com/image/176739/%E6%A3%80%E6%9F%A5%E8%BF%9E%E6%8E%A5%E7%8E%AF%E8%B7%AF%EF%BC%8C%E5%A6%82%E6%9E%9C%E6%8E%89%E8%90%BD%E5%88%99%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E7%AC%AC%E4%BA%8C%E4%B8%AA%E7%8E%AF%E8%B7%AF.png)
我有 bash 脚本,它正在循环并从网上获取信息,我昨天晚上运行了测试,一切都很顺利,直到我的连接断开了 2 分钟并且脚本卡住了。
因此,为了克服这个问题,我需要您帮助构建循环,该循环将检查连接是否失败,然后再次重新启动 bash 脚本。
我现在正在使用的脚本示例:
while true; do
xargs -d '\n' -I LINE -P2 go run main.go -d LINE -o file < domain &&
xargs -d '\n' -I LINE -P3 ./script -d LINE < domain &&
xargs -d '\n' -I LINE -P2 python3 script4.py -d LINE --output file < domain &&
xargs -d '\n' -I LINE -P2 python3 script3.py -u LINE -o file.txt < domain &&
xargs -d '\n' -I LINE -P3 script2 -t LINE -o recon < domain &&
xargs -d '\n' -I LINE python3 script.py -t 020f3fe83162e016114b32ad9542 -d LINE < domain &&
mv *.txt savehere && dos2unix savehere/*.txt && sort savehere/*.txt | uniq | tr -d '<>,' > results-$(date +%d-%m-%Y_%H_%p).txt
done
答案1
例如,如果您的连接是基于 http / https 的,您可以使用curl。
你的循环中是这样的:
curl http://domain.example.com || $(echo "I am unable to connect to http://domain.example.com and will sleep for 60 seconds; sleep 60;continue)
它将尝试从中获取http内容http://domain.example.com如果失败 - 它将回显文本并休眠 60 秒;然后从顶部重新启动 while,因此最好将其添加到 while 循环的顶部:)