![데비안 로그 파일에서 모든 IP 주소를 편집하는 방법은 무엇입니까?](https://linux55.com/image/118973/%EB%8D%B0%EB%B9%84%EC%95%88%20%EB%A1%9C%EA%B7%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%20%EB%AA%A8%EB%93%A0%20IP%20%EC%A3%BC%EC%86%8C%EB%A5%BC%20%ED%8E%B8%EC%A7%91%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
주기적으로 익명화하려는 순수 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 정규식에 대한 유사한 주제를 참조하십시오.