#!/bin/bash declare awkmatch="$2" declare pidname="$1" if [ ! -d /var/run/vyatta/monitor ]; then sudo mkdir -p /var/run/vyatta/monitor sudo chmod -R 777 /var/run/vyatta/monitor fi for i in "${@:3}"; do awkmatch+="|$i" done pidfile="/var/run/vyatta/monitor/$pidname-`tty| sed -e s-/--g -e s/dev//g`.pid" if [ -f $pidfile ]; then pid=$(cat $pidfile) processname=$(cat /proc/$pid/cmdline 2>/dev/null) if [[ $processname =~ "tail" ]];then echo -ne "\n You are already monitoring this service\n\n" exit 0 fi fi { ( tail -f -n0 /var/log/messages & echo $! >&3) 3> \ $pidfile \ | awk "/$awkmatch/{ \$5=\" $1:\"; for (f=5; f<=NF; ++f) {printf(\"%s \", \$f);}; printf(\"\n\") }" 2>&3 & \ } 3>&2 2>/dev/null; disown