Shell多进程并发编程
在shell中使用多进程并发处理是非常方便的,如果有一个定时任务是同时ping主机ip列表,检测目标机器是否down掉,就可以用shell的多进程来实现,同时ping多个主机,不影响定时任务的执行。shell的实现方式是通过 & 符号来使要执行的进程后台执行,然后主调shell通过wait来等待所有后台执行完毕,然后退出主调shell。以下是一个心跳检测脚本,通过ping来批量检测机器是否可达,如果不可达则启用备用机器的服务,并发送微信报警。
#!/bin/bash
cd ~/scripts
# $1:host $2:server_type $3:port $4=start_server
# 将要执行的过程封装成函数
function heartbeat_detection() {
ping_loss=`ping -c 6 $1 | grep "100% packet loss"`
Date=`date +"%Y-%m-%d %H:%M:%S"