때로는 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)'
로그에 대해 유사한 grep 작업을 수행할 수 있습니다. 경고: 일부 wget 컴파일은 지원되지 않습니다.--debug