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의 일치하는 출력을 찾아야 합니다.