P2P 파일 공유 응용 프로그램이 스크립트를 통해 Linux에 설치되어 있는지 확인하는 방법은 무엇입니까?

P2P 파일 공유 응용 프로그램이 스크립트를 통해 Linux에 설치되어 있는지 확인하는 방법은 무엇입니까?

Linux 시스템에 P2P 파일 공유가 설치되어 있는지 알고 싶습니다. 이러한 응용 프로그램의 몇 가지 예는 다음과 같습니다.

  • 냅스터
  • 카자
  • 아레스
  • 라임 라인
  • IRC 채팅 릴레이
  • 비티

위 응용 프로그램의 RPM이 설치되어 있는지 또는 찾기 검색을 사용하는지 여부에 관계없이 어떻게 스크립트를 작성할 수 있습니까? 기본적으로 위의 P2P 애플리케이션을 찾으려면 해당 애플리케이션에 대한 검색어가 필요합니다.

고쳐 쓰다

이것이 내가 검색하는 데 사용하는 명령입니다. 내가 뭐 놓친 거 없니?

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에만 해당됩니다. 루트로 실행 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의 일치하는 출력을 찾아야 합니다.

관련 정보