测试脚本mytest.sh
#!/bin/bash
localtime=`date "+%Y-%m-%d_%H:%M:%S"`
logfile=logs/${
localtime}.txt
PID=$(ps aux| grep node_exporter | grep -v 'grep' | awk '{print $2}')
while [ "PID" != "" ]
do
cpuinfo=$(top -n 1 -b -d 1 | grep 'node_exporter'|grep -v grep| awk '{print $9,$10,$(NF-1)}')
echo "PID=$PID;localtime=$localtime;cpuinfo=$cpuinfo" >> $logfile
sleep 1
done
后台运行脚本的命令
setsid sh mytest.sh
查看日志
退出终端再次查看日志
可以看到日志还是在增加,脚本还是在运行的
最后添加全部打印发现重新登陆后进程名被截断
,导致grep匹配为空
最后修改为用PID匹配
#!/bin/bash
localtime=`date "+%Y-%m-%d_%H:%M:%S"`
logfile=logs/${
localtime}.txt
PID=$(ps aux| grep node_exporter | grep -v 'grep' | awk '{print $2}')
while [ "PID" != "" ]
do
cpuinfo=$(top -n 1 -b -d 1 -p $PID | grep $PID |grep -v grep| awk '{print $9,$10,$(NF-1)}')
echo "cpuinfo=$cpuinfo;$localtime" >> $logfile
sleep 1
done