shell多进程脚本

bash 多进程

shell多进程并行访问

原理

利用将进程转移到后台运行的方式同时开启多个进程,并使用 wait 命令使主进程等待子进程都结束后才退出。

示例脚本

场景:没有配置NTP的环境下,需要查看各主机的当前时间时候接近一致,以及大概相差多少, 手工操作肯定是不行的。

没有其它工具的时候,简单用 shell 脚本进行并行检测; 用于粗略比较各主机时间的差异。

基础前提:有配置 ssh 可信或其它方式自动输入密码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/bin/bash
ip='192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4'
log_file=ck_date_logfile
ck_date='date "+%F %T"'
for i in $ip
do
{
    date_info=$(ssh user@$i $ck_date)
    echo -e "${i}\t${date_info}" >> $log_file
} &
done
wait

微信搜索IT运维小秋

Licensed under CC BY-NC-SA 4.0
转载或引用本文时请遵守许可协议,知会作者并注明出处
不得用于商业用途!
最后更新于 2020-05-21 00:00 UTC