我正在尝试确定哪些应用程序在运行,其中包含一个未知进程名称可能存在的已知字符串,作为所执行命令的参数的一部分。
例如:weird-process.sh XXX YYY ZZZ
我知道ZZZ是什么,仅此而已。一个简单的if语句将字符串转储到txt文件中以进行检查。
一个名为process-check.sh的脚本有效
#!/bin/bash
while true
do
CMD=$(ps -efwww | grep "$1" |grep -v "grep\|process-check.sh")
if [[ ! -z $CMD ]];
then
echo $CMD >> process-check.txt
else
continue
fi
done
在不知道哪个进程限制的情况下,是否存在可以更好地监视,监视或记录进程执行的linux内置命令或现有命令?
没有内置 linux命令来监视带有特定参数的进程,您的脚本非常好!
为了更全面地实现脚本的目标,该脚本可以“确定哪些应用程序运行时包含未知字符串名称的已知字符串,该字符串可以作为执行的命令参数的一部分,这是一些脚本,您可以觉得有用。
ps -efwww
ps -efwww | tr -s ' ' | cut -d' ' -f8-
awk 'NF>=1+3'
的打印行grep "${1}"
的打印行ps -efwww | tr -s ' ' | cut -d' ' -f8- | awk 'NF>=1+3' | grep "${1}"
ps -efwww | tr -s ' ' | cut -d' ' -f9- | awk 'NF>=3' | grep "${1}"
ps -efwww | tr -s ' ' | cut -d' ' -f11- | awk 'NF>=1' | cut -d' ' -f1 | grep "${1}"
简单地在您的process-check.sh
脚本中保存这些单行代码之一,并在watch process-check.sh
或tee -a logfile.log
中进行>>
折腾以创建记录。