Bash脚本,获取运行进程的计数,如果超过某个阈值,则发送电子邮件
我正在尝试创建一个脚本来获取当前正在运行的进程的数量,如果该数量超过1000,请向我发送电子邮件。我试图在bash脚本中实现这一点,我将使用cron作业来调用它。下面是我正在使用的代码,我确信我有一些不合适的地方,只是需要另一双眼睛Bash脚本,获取运行进程的计数,如果超过某个阈值,则发送电子邮件,bash,rhel,Bash,Rhel,我正在尝试创建一个脚本来获取当前正在运行的进程的数量,如果该数量超过1000,请向我发送电子邮件。我试图在bash脚本中实现这一点,我将使用cron作业来调用它。下面是我正在使用的代码,我确信我有一些不合适的地方,只是需要另一双眼睛 PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}') if [$PCOUNT > 100]; then mail -s "Process Count" email@examp
PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}')
if [$PCOUNT > 100]; then
mail -s "Process Count" email@example.com
fi
您的
if
语句中的上下文不正确。在上尝试(())
而不是[]
,如果如下所示:
PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}')
if (( $PCOUNT > 100 )); then
mail -s "Process Count" email@example.com
fi
注意:我的系统上没有mail
设置,因此无法验证mail
命令。您的if
语句中的上下文不正确。在上尝试(())
而不是[]
,如果如下所示:
PCOUNT=$(cat /proc/loadavg|awk '{print $4}'|awk -F/ '{print $2}')
if (( $PCOUNT > 100 )); then
mail -s "Process Count" email@example.com
fi
注意:我的系统上没有mail
设置,因此无法验证mail
命令。
- 你可以把工作时间缩短到
awk-F“|/”{print$5}'/proc/loadavg
- 如果条件
[$PCOUNT-ge 1000
- 邮寄,传递$PCOUNT
邮件-s“进程计数:$PCOUNT”
嗯,如果这是为了提醒你为什么不试试nagios插件
你可以把工作时间缩短到
awk-F“|/”{print$5}'/proc/loadavg
如果条件
[$PCOUNT-ge 1000
邮寄,传递$PCOUNT
邮件-s“进程计数:$PCOUNT”
嗯,如果这是为了提醒你为什么不试试nagios插件呢?经过大量的尝试和错误,我终于找到了解决方案。我最终得到了awk语句的输出,并将其写入了一个文件。然后我对该文件进行了cat,并将输出发送到mail
PCOUNT=$(awk -F" |/" '{print $5}' /proc/loadavg)
if ((PCOUNT>1000)); then
echo "Number of Running Processes is" $PCOUNT >>/tmp/mail.txt
cat /tmp/mail.txt | mail -s "Number of processes is rising" example@email.com
fi
经过大量的尝试和错误,我终于找到了一个解决方案。我最终获得了awk语句的输出并将其写入一个文件。然后我对该文件进行了cat,并将输出发送到mail
PCOUNT=$(awk -F" |/" '{print $5}' /proc/loadavg)
if ((PCOUNT>1000)); then
echo "Number of Running Processes is" $PCOUNT >>/tmp/mail.txt
cat /tmp/mail.txt | mail -s "Number of processes is rising" example@email.com
fi
?“您的问题必须包含已经正常工作的代码”awk
能够将输入文件作为参数,因此您可以删除该参数。此外,请使用if((pcount>100));然后…;fi
,并在中读取条件块?“您的问题必须包含已经正常工作的代码”awk
能够将输入文件作为参数,因此您可以删除它。此外,使用if((pcount>100));then…;fi
代替,并在中读取条件块