提高脚本效率和可靠性

时间:2017-06-29 04:29:02

标签: bash performance shell curl gnu-parallel

我有这个示例代码,它基本上重复了~20k次。唯一改变的是地址和echo命令行中的id =。地址中的id =和echo线中的id =始终对应。我在MAC上运行这个脚本,如果它有任何重要性。

如果可能的话,我想改进这个脚本以使其更可靠。有时我要么失去连接,要么关闭服务器的会话,我需要再次登录,但脚本仍然无视这种情况。如果出于某种原因,我希望脚本暂停。

在调用open命令之后,有时服务器需要更长时间才能响应,但osascript命令会在sleep 2命令结束后强制关闭选项卡。这使我处于一个我不确定服务器是否真正考虑了网址的位置。增加睡眠时间并不十分可靠。在那方面可以做些什么?

[...]
open 'https://domaineName.com/admin/?adsess=dhnchf6ghd5shak4Dghtfffvw&app=core&module=members&controller=members&do=spam&id=1&status=1' -g
sleep 2
osascript -e 'tell window 1 of application "Safari"
close (tabs where index < (get index of current tab))
end'
echo "done id=1"

open 'https://domaineName.com/admin/?adsess=dhnchf6ghd5shak4Dghtfffvw&app=core&module=members&controller=members&do=spam&id=5&status=1' -g
sleep 2
osascript -e 'tell window 1 of application "Safari"
close (tabs where index < (get index of current tab))
end'
echo "done id=5"
[...]

任何帮助都将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:0)

您必须编写一个脚本来检查主脚本(让我们说main.sh )当前是否正在服务器上运行(like ps -ef|grep main.sh|grep -v grep)

检查上面的输出,然后在这个脚本中执行main.sh。

这样就不需要使用延迟/睡眠命令。