我們?cè)趯憇hell腳本的時(shí)候,經(jīng)常啟動(dòng)一個(gè)服務(wù)以后,需要等到他的日志打印出某些信息的時(shí)候才能啟動(dòng)下一個(gè)服務(wù)或者進(jìn)行下一個(gè)操作??梢杂么四_本實(shí)現(xiàn)
#!/bin/bash
#檢測(cè)日志關(guān)鍵字 $1傳遞日志目錄 $2傳遞關(guān)鍵字
check_wait_log () {
tail -n +0 -vfn0 $1 | while read line;
do
echo $line
#關(guān)鍵字出現(xiàn)后退出日志打印
echo "$line" | grep "$2" >/dev/null 2>&1
if [ $? = 0 ];then
break
fi
#退出tail命令
ps -aux | grep "tail -n" | grep -v "grep" | awk '{print $2}' | while read line;
do
kill -9 $line
done
done
}
#當(dāng)啟動(dòng)mysql服務(wù)以后,當(dāng)mysql日志出現(xiàn)“ready for connections"關(guān)鍵字,則表示mysql可以進(jìn)行連接了
check_wait_log /home/mysql/mysqld.log "ready for connections"