안녕하세요
쉘스크립트 파일에서 리눅스 명령 등으로 특정 포트를 사용하는 프로세스의 정보를 가져오고 싶습니다.
정보는 대략 해당 프로세스가 사용하는 CPU, Memory 가 될 것 같습니다.
일단 먼저 포트의 사용여부를 확인하고(netstat, nmap..) 프로세스명을 찾아 정보를 가져와야 할 것 같은데
조금 막막하네요..
도움 부탁드립니다.
감사합니다.
$ while read -r line; do set -a $line; until [ -z "$1" ]; do ps -h -p $1 -o pid,cmd,%cpu,%mem; shift; done; done <<< $(sudo fuser 80/tcp) 80/tcp: 44599 /usr/sbin/apache2 -k start 0.0 0.0 44601 /usr/sbin/apache2 -k start 0.0 0.1 102112 /usr/sbin/apache2 -k start 0.0 0.1
$ ps -C $(sudo netstat -lntp | grep ':22\s' | cut -d'/' -f2 | head -1) -opid,cmd,%cpu,%mem PID CMD %CPU %MEM 1398 /usr/sbin/sshd -D 0.0 0.0 122256 sshd: ymir [priv] 0.0 0.0 122305 sshd: ymir@pts/7 0.0 0.0
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
주신 내용을 아주 약간 편집하여 아래와 같이 작성하였습니다..^^ ====================================================== FTPPORT=`ps -C $(sudo netstat -lntp | grep ':21\s' | cut -d'/' -f2 | head -1) -o%cpu,%mem` SSHPORT=`ps -C $(sudo netstat -lntp | grep ':22\s' | cut -d'/' -f2 | head -1) -o%cpu,%mem` TELNETPORT=`ps -C $(sudo netstat -lntp | grep ':23\s' | cut -d'/' -f2 | head -1) -o%cpu,%mem` echo $FTPPORT echo $SSHPORT echo $TELNETPORT ====================================================== 결과 ====================================================== PID TTY TIME CMD %CPU %MEM 0.0 0.0 0.0 0.2 0.0 0.2 0.6 0.2 0.0 0.0 0.0 0.2 0.0 0.2 0.0 0.2 0.0 0.2 PID TTY TIME CMD ====================================================== 결과에서 값이 있을 때 CPU, MEM값을 각각 합하여 CPUTOTAL, MEMTOTAL 로 만들고 싶습니다. 반복문으로 CPU MEM의 숫자값..을 세번쨰 값부터 끝까지 차례대로 CPUTOTAL =CPUTOTAL+ CPU, MEMTOTAL =MEMTOTAL+ MEM 이런식으로 하고 싶은데.. 쉘 프로그래밍은 어렵네요... 혹시 도움 주실분 부탁드립니다.
$ ps -C $(sudo netstat -lntp | grep ':22\s' | cut -d'/' -f2 | head -1) -o%cpu | sed 1d | paste -sd+ - | bc 0 $ ps -C $(sudo netstat -lntp | grep ':22\s' | cut -d'/' -f2 | head -1) -o%mem | sed 1d | paste -sd+ - | bc 0
덕분에 해당 부분은 해결했습니다. 감사합니다!!^^
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
음 ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다. 많은 도움이 되었습니다!!
주신 내용을 아주 약간 편집하여 아래와 같이 작성하였습니다..^^
======================================================
FTPPORT=`ps -C $(sudo netstat -lntp | grep ':21\s' | cut -d'/' -f2 | head -1) -o%cpu,%mem`
SSHPORT=`ps -C $(sudo netstat -lntp | grep ':22\s' | cut -d'/' -f2 | head -1) -o%cpu,%mem`
TELNETPORT=`ps -C $(sudo netstat -lntp | grep ':23\s' | cut -d'/' -f2 | head -1) -o%cpu,%mem`
echo $FTPPORT
echo $SSHPORT
echo $TELNETPORT
======================================================
결과
======================================================
PID TTY TIME CMD
%CPU %MEM 0.0 0.0 0.0 0.2 0.0 0.2 0.6 0.2 0.0 0.0 0.0 0.2 0.0 0.2 0.0 0.2 0.0 0.2
PID TTY TIME CMD
======================================================
결과에서 값이 있을 때 CPU, MEM값을 각각 합하여 CPUTOTAL, MEMTOTAL 로 만들고 싶습니다.
반복문으로 CPU MEM의 숫자값..을 세번쨰 값부터 끝까지 차례대로 CPUTOTAL =CPUTOTAL+ CPU, MEMTOTAL =MEMTOTAL+ MEM
이런식으로 하고 싶은데.. 쉘 프로그래밍은 어렵네요... 혹시 도움 주실분 부탁드립니다.
음 ..
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
감사합니다. 많은 도움이 되었습니다!!
덕분에 해당 부분은 해결했습니다. 감사합니다!!^^
댓글 달기