netstat 데이터를 터미널에서 csv 파일로 내보내기

netstat 데이터를 터미널에서 csv 파일로 내보내기

약간의 문제가 있습니다. 60초마다 다음 명령을 실행하는 스크립트를 만들고 싶습니다.

netstat - tn

그러면 다음과 유사한 출력이 제공됩니다.

root@guest:~# netstat -tn
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0    111 111.111.141.36:22         111.11.11.223:54327      ESTABLISHED

외부 주소를 저장하는 데에만 관심이 있습니다. 어떻게 해야 합니까?

나는 다음 명령을 시도했습니다

root@guest:~# watch -n 300 netstat -tn > results_mon_27.txt

모든 데이터를 텍스트 파일에 기록하면 아래와 같이 서식 문제가 발생하므로 외국 주소만 수집하는 것이 좋습니다.

^[[?1049h^[[1;40r^[(B^[[m^[[4l^[[?7h^[[H^[[2JEvery 300.0s: netstat -tn^[[1;138Hguest: Mon Aug 21 16:45:31 2017^[[3;1HActive Internet connections (w/o servers)
^[[4dProto Recv-Q Send-Q Local Address^[[4;45HForeign Address^[[4;69HState
^[[5dtcp^[[5;12H0^[[19G0 45.76.141.36:38708^[[45G192.42.115.102:9004     TIME_WAIT
^[[6dtcp^[[6;12H0     40 45.76.141.36:22^[[6;45H193.36.8.223:54327^[[69GESTABLISHED^[[40;168H^[[1;159H50^[[5;34H22   ^[[5;47H3.36.8.223:54327      ESTABLISHED^[[6;18H6$
^[[5d^[[M^[[1;160H5
^[[6dtcp^[[6;12H0^[[19G0 45.76.141.36:22^[[6;45H58.242.83.32:25719^[[69GESTABLISHED^[[40;168H
^[[6d^[[J^[[1;159H10^[[40;168H
^[[5d^[[L^[[1;160H5
^[[5dtcp^[[5;12H0^[[19G0 45.76.141.36:22^[[5;45H196.200.176.80:37384    ESTABLISHED
^[[7dtcp^[[7;12H0^[[19G0 45.76.141.36:22^[[7;45H58.242.83.32:61038^[[69GESTABLISHED^[[40;168H
^[[5d^[[M^[[1;159H20^[[6;58H49490^[[40;168H^[[1;160H5^[[6;34H38722^[[45G192.42.115.102:9004
^[[7dtcp^[[7;12H0     68 45.76.141.36:22^[[7;45H58.242.83.32:42510^[[69GESTABLISHED^[[40;168H^[[1;159H30^[[7;18H 0^[[7;58H38678^[[40;168H
^[[7d^[[J^[[1;160H5^[[5;45H58.242.83.32:15804^[[6;34H22   ^[[6;47H3.36.8.223:54327 ^[[40;168H
^[[5d^[[M^[[1;159H40
^[[6dtcp^[[6;12H0^[[19G0 45.76.141.36:22^[[6;45H58.242.83.32:14118^[[69GESTABLISHED^[[40;168H^[[1;160H5^[[6;60H003

답변1

외부 주소는 5번째 열이므로 각 열에 대한 데이터를 쉽게 수집/조작할 수 netstat있는 출력을 사용해 보세요.awk

netstat -tn|awk '{print $5}' 

출력에는 외부 주소인 다섯 번째 열만 제공됩니다.

#!/bin/bash

while true
do
    netstat -tn|awk '{print $5}' >> output.netstat
    sleep 60
done

관련 정보