Linux SSH 보안 로그에서 PID를 필터링하는 방법은 무엇입니까?

Linux SSH 보안 로그에서 PID를 필터링하는 방법은 무엇입니까?
  Aug 12 01:30:26 server.example.com sshd[19486]: Failed password for root from X.X.X.X port 50528 ssh2
  Aug 12 01:30:26 server.example.com sshd[19486]: Received disconnect from X.X.X.X port 50528:11: Bye Bye [preauth]
  Aug 12 01:30:26 server.example.com sshd[19486]: Disconnected from X.X.X.X port 50528 [preauth]
  Aug 12 01:30:28 server.example.com sshd[19491]: Failed password for root from X.X.X.X port 59628 ssh2

"/var/log/secure"에서 추출된 샘플 Linux SSH 로그 파일이 있습니다. PID(이 경우 19491 및 19486)를 필터링하고 싶습니다. Bash를 사용하여 어떻게 이를 달성할 수 있나요?

답변1

awk를 사용하세요:

awk -F '[][]' '{print $2}'  /var/log/secure
  • -F '[][]'열기 및 닫기 중괄호로 사용되는 파일 구분 기호
  • $2 두 번째 필드의 유효성을 검사합니다.

답변2

이것은 약간 투박하지만 누군가가 더 짧은 버전을 게시할 수 있기를 바랐습니다. sed 명령을 사용하여 "[" 및 "]" 문자를 공백으로 바꾼 다음 awk 명령을 사용하여 6번째 필드를 인쇄했습니다.

# cat /var/log/secure | sed 's/\[/ /g' | sed 's/\]/ /g' | awk ' {print $6}'
19486
19486
19486
19491

관련 정보