wget --spider: 깨진 링크가 어디서 오는지 확인하는 방법

wget --spider: 깨진 링크가 어디서 오는지 확인하는 방법

나는 때때로 로컬 사이트에서 끊어진 링크를 신속하게 확인하기 위해 wget의 내장 스파이더 모드를 편리하게 사용합니다. 오늘 아침에 우리가 주요 변경 사항을 적용한 프로덕션 사이트에 주의를 돌렸는데 3개의 깨진 링크가 표시되었지만 링크가 어디에 있는지 알 수 없는 것 같습니다! (링크된 내용만 나와 있으며 이를 페이지에 다시 연결하는 간단한 방법은 없습니다.)

현재 제가 사용하고 있는 옵션은 입니다 wget -r -nv --spider http://www.domain.com/ -o /path/to/log.txt. 내가 간과하고 있는 옵션, 출력을 읽는 방법 또는 링크가 어떤 파일에 나타나는지(이상적으로는 # 라인) 알려주는 이 명령의 간단한 대체 방법을 아는 사람이 있습니까?

답변1

wget 실행과 함께 웹 서버 로그를 볼 수 있어야 합니다. 404로그 파일에서 '를 찾아 referrer필드를 가져옵니다. 그러면 깨진 링크가 포함된 페이지가 표시됩니다.

그러면 문제가 되는 링크가 있는지 해당 페이지를 조사하면 됩니다.

답변2

웹서버 로그를 포함하지 않는 좋은 방법은 플래그 --debug와 grep을 사용하는 것입니다.^Referer:

명령줄에서:

wget -r -nv --spider http://www.domain.com/ 2>&1 | egrep -A 1 '(^---response end---$|^--[0-9]{4}-[0-9]{2}-[0-9]{2}|^[0-9]{4}-[0-9]{2}-[0-9]{2} ERROR|^Referer:|^Remote file does not)'

로그에서도 비슷한 grepping을 수행할 수 있습니다. 주의 사항: 일부 wget은 다음을 지원하도록 컴파일되지 않습니다.--debug

관련 정보