我们想知道Linux机器上是否安装了点对点文件共享。这些应用程序的一些示例包括 -
- 纳普斯特
- 卡扎阿
- 阿瑞斯
- 石灰线
- IRC 聊天中继
- BT
无论上述应用程序的 RPM 是否已安装,甚至是否使用查找搜索,我们如何编写脚本?基本上我需要上述点对点应用程序的搜索词才能找到它们。
更新
这是我用来搜索它们的命令。我错过了什么吗?
rpm -qa |grep -i bittorrent
rpm -qa |grep -i limewire
rpm -qa |grep -i kazaa
rpm -qa |grep -i ares
rpm -qa |grep -i napster
rpm -qa |grep -i irc
rpm -qa |grep -i irssi
rpm -qa |grep -i xchat
find / -name bittorrent
find / -name limewire
find / -name kazaa
find / -name ares
find / -name napster
find / -name irc
答案1
但是程序/包的名称在文件中各占一行,例如packages.txt
,并使用rpm -qa |grep -iFf packages.txt
现在...第二部分,使用find
命令似乎相当愚蠢。这在某种程度上是 Linux 特有的:更好地运行(以 root 身份)ps
和/或netstat -nap
监听端口的任何守护进程和进程。其中一些只是udp
,所以它们不会在LISTEN
状态中。
netstat -tap |grep -E "(LISTEN|ESTABLISHED)" | grep -iFf packages.txt
netstat -uap |grep -iFf packages.txt
ps -axo pid,user,args | grep -iFf packages.txt
您可以将以上所有内容浓缩为:
{
rpm -qa
netstat -tap |grep -E "(LISTEN|ESTABLISHED)"
netstat -uap
ps -axo pid,user,args
} | grep -iFf packages.txt
但随后您必须找出 grep 匹配的输出。