现象
远程主机监控脚本运行速度感人,想要提速。通过分析脚本各语句,主要耗时在ssh操作上,有多条ssh自动登录并执行操作的语句块在依次执行0.0……
通过分析,初步考虑有两种方案:
- 将这多个需要ssh登录并执行的语句块合为一个ssh函数进行处理
- 将这多个语句块进行并发
对于方案1:由于使用的ssh自动登录函数为前期已经封装好的,如果要将多个语句块逻辑放在一个ssh自动登录函数中,需要对ssh自动登录函数再次进行封装。分析当前语句块的逻辑,再次封装需要的逻辑处理与文件控制比较复杂,只当做备选方案,暂不使用。
讲知识
一、如何进行并发
shell的并发,可以通过将程序挂在后台执行来实现,使用&,对于代码块,需要使用
{
代码块1
}&
其他代码2
shell脚本会先将代码块1放到后台执行,并不等待代码块1结束,直接执行其他代码2
二、如何判断后台代码块1是否完成
可以通过<code>&!</code>来获取刚挂后台进程id,通过wait来等待代码块1完成
{
代码块1
}&1
codeOneP=&!
其他代码2
wait codeOneP
完成后操作