如何在unix中捕获cat的结果,用于服务器监控

如何在unix中捕获cat的结果,用于服务器监控,unix,monitoring,Unix,Monitoring,嗨,我需要创建一个服务器监控,在这里我需要存储正在使用的内存、进程的cpu利用率和总体cpu利用率。 我使用top命令编写了下面的脚本 #!/bin/ksh echo " " > top.txt top -b -d 1 > top.txt var =20 MEM = "$(cat top.txt |grep Memory | cut -c 8-12)" JAV = $(cat top.txt |grep java | cut -c 55-60) SSH = $(cat to

嗨,我需要创建一个服务器监控,在这里我需要存储正在使用的内存、进程的cpu利用率和总体cpu利用率。 我使用top命令编写了下面的脚本

#!/bin/ksh
echo " " > top.txt

top -b -d 1 > top.txt

var =20

MEM = "$(cat top.txt |grep Memory | cut -c 8-12)"

JAV = $(cat top.txt |grep java | cut -c 55-60)

SSH = $(cat top.txt |grep ssh | cut -c 55-60)

mailing_list="xxxxxx@yyyy.co.in"

subject_line="monitring"

if [ $mem -gt $var || $ jav -gt "10" || $ssh -gt "10"] ;then
echo $mem
echo $jav
echo $ssh

echo "there is some problem"| mailx -b "${mailing_list}" -s "${subject_line}" " "
   fi


exit 0
当我执行这个脚本时,我收到了一个警告,mem jav没有找到

请帮我做这个

我的任务是创建一个监视脚本

提前谢谢

在变量赋值中,在=周围有空格。把那些拿走。这就是导致MEM:command未找到错误的原因

你说:

如果[$mem-gt$var | |$jav-gt 10 | |$ssh-gt 10];然后

这有多个问题。说:

if [[ $mem -gt $var || $jav -gt "10" || $ssh -gt "10" ]]; then
你似乎也在混淆视听。变量名区分大小写。
-cat top.txt | grep java | cut-c 55-60的输出是什么?我还需要一个帮助:您能帮我吗?我能在unix中捕获sar命令输出的最后一行吗。@user3045919 Try value=$sar…|tail-1手帕,伙计。。它对我有用。在你的帮助下,我写了我人生的第一个剧本,