有效监视或监视ps -ef的已知字符串未知进程的方法

问题描述 投票:0回答:1

我正在尝试确定哪些应用程序在运行,其中包含一个未知进程名称可能存在的已知字符串,作为所执行命令的参数的一部分。

例如: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内置命令或现有命令?

bash security monitoring watch ps
1个回答
0
投票

没有内置 linux命令来监视带有特定参数的进程,您的脚本非常好!

为了更全面地实现脚本的目标,该脚本可以“确定哪些应用程序运行时包含未知字符串名称的已知字符串,该字符串可以作为执行的命令参数的一部分,这是一些脚本,您可以觉得有用。

使用技巧

  • 列出所有系统进程ps -efwww
  • 删除前8个无关字段ps -efwww | tr -s ' ' | cut -d' ' -f8-
  • 仅包含至少4个字(命令+ 3args)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.shtee -a logfile.log中进行>>折腾以创建记录。

© www.soinside.com 2019 - 2024. All rights reserved.