저는 IP 주소와 포트 목록이 포함된 파일을 구문 분석한 다음 netcat을 사용하여 포트에 대해 일련의 테스트를 실행하는 스크립트를 작성하고 있습니다. port 매개변수는 단일 포트, 포트 목록 또는 포트 범위(netcat 기능별)일 수 있습니다.
netcat에 대한 인수가 목록 또는 포트 범위인 경우 stderr에서 포트당 한 줄을 얻습니다(netcat은 모든 것을 stderr로 보냅니다). 그래서 내 생각은 결과를 변수에 저장하고 루프(라인당)로 구문 분석하여 각 포트의 테스트 상태(성공, 거부, 시간 초과)를 가져오는 것입니다.
결과를 저장하기 위해 stderr를 stdout으로 리디렉션하고 변수에 저장합니다.
test=$(netcat -w 1 -zv 10.141.32.117 443-445 2>&1)
그러나 이것은 개행 문자를 제거합니다.
echo $test
netcat: connect to 10.141.32.117 port 443 (tcp) failed: Connection timed out netcat: connect to 10.141.32.117 port 444 (tcp) failed: Connection timed out netcat: connect to 10.141.32.117 port 445 (tcp) failed: Connection timed out
stderr를 파일로 리디렉션하면 결과에 다음 줄이 포함됩니다. stderr를 stdout으로 리디렉션하면 줄 끝이 제거됩니까?
현재 파일로 리디렉션 중입니다.
설명해 주셔서 감사합니다.