데비안 로그 파일에서 모든 IP 주소를 편집하는 방법은 무엇입니까?

데비안 로그 파일에서 모든 IP 주소를 편집하는 방법은 무엇입니까?

주기적으로 익명화하려는 순수 ftpd 로그 파일이 있습니다. 어떻게 해야 하나요? IPv4 및 IPv6 주소를 제거하고 싶습니다. 저는 sed/awk를 모릅니다.

로그 파일은 다음과 같습니다.

Oct  3 19:30:39 hostname pure-ftpd: ([email protected]) [INFO] New connection from 0.0.0.0

0.0.0.0해당 IP를 제거하고 다른 IP로 교체하고 싶습니다 . 주기적으로 실행하기 위해 스크립트를 cron에 넣을 것이라는 것을 알고 있습니다.

감사해요!

답변1

IPv4를 사용해 보세요:

sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/HELLO!/g' file

HELLO!필요한 것으로 교체하십시오 .

예:

echo "Oct  3 19:30:39 hostname pure-ftpd: ([email protected]) [INFO] New connection from 0.0.0.0" | sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/HELLO!/g'

출력은 다음과 같습니다:

Oct  3 19:30:39 hostname pure-ftpd: (username@HELLO!) [INFO] New connection from HELLO!

IPv6 사용모든 것이 보이는 것보다 더 복잡합니다. 올바른 정규식 패턴을 작성하려면 더 많은 로그 파일 예제가 필요합니다. 그러나 로그에서 IPv6 교체에 대한 가장 간단한 패턴은 다음과 같습니다.

sed 's/\([A-Za-z0-9]*:\)\{1,7\}[A-Za-z0-9]\{1,4\}/HELLO!/2g' file

이 모드는 대부분의 IPv6 주소를 대체하지만 전부는 아닙니다! 발생하는 모든 것을 대체하려면 더 복잡한 솔루션이 필요합니다.

예:

echo "Oct  3 19:30:39 hostname pure-ftpd: (username@2001:db8:85a3:8d3:1319:8a2e:370:7348) [INFO] New connection from 2001:db8::1" | sed 's/\([A-Za-z0-9]*:\)\{1,7\}[A-Za-z0-9]\{1,4\}/HELLO!/2g'

출력은 다음과 같습니다:

Oct  3 19:30:39 hostname pure-ftpd: (username@HELLO!) [INFO] New connection from HELLO!

IPv6 정규식에 대한 유사한 주제를 참조하십시오.

유효한 IPv6 주소와 일치하는 정규식

관련 정보