
저는 VM1과 VM2라는 두 개의 가상 머신을 실행하고 있습니다. 둘 다 Ubuntu 16.04를 실행하고 있으며 VM2에는 apache2 웹 서버가 설치되어 있습니다. 이제 VM2 서버에서 작은 웹사이트용 코드를 복사했습니다.
문제:
VM1에서 다음을 사용하여 웹사이트의 콘텐츠를 다운로드할 수 있기를 원합니다.wget
정해진 간격으로 계속 반복합니다. 이제 처음에는 모든 웹 사이트 콘텐츠를 완벽하게 다운로드하지만 새 파일( .jpg
이전 이미지 파일이 포함된 웹 사이트 폴더에 있는 파일)을 폴더(VM2 시스템의 웹 사이트)에 추가한 다음 wget 명령을 실행합니다. VM1 시스템에서는 새 파일이~ 아니다다운로드 받으세요.
내 WGET 명령:
wget --recursive --convert-links --no-check-certificate --no-cache --no-cookies http://192.168.1.44/
내가 시도한 것:
그래서 나는 그것이캐싱문제. 하지만 이미 --no-cache
wget 명령이 있었기 때문에 인터넷을 검색하고 서버 측에서 다음 명령을 실행하여 apache2 캐시를 지웠습니다.그러나 여전히 운이 없습니다.
답변1
JPEG 이미지 파일을 추가했지만 이에 대한 참조(또는 동적 색인 페이지에 대한 링크)를 포함하도록 HTML 파일을 업데이트하지 않은 경우 Wget은 JPEG를 찾을 수 없습니다.
컴퓨터 간에 두 세트의 폴더 동기화는 일반적으로 이 문제가 없고 변경되지 않은 파일을 복사하지 않으므로 훨씬 더 효율적인 rsync, robocopy 등과 같은 도구를 사용하여 수행됩니다.
업데이트:
관리 액세스 권한이 없는 서버의 콘텐츠 변경 사항을 찾으려면 때때로 요청을 사용 하고 헤더가 있는 경우 HTTP HEAD
검사 할 수 있습니다.Last-Modified
C:\> curl --head https://www.gnu.org/graphics/heckert_gnu.transp.small.png
HTTP/1.1 200 OK
Date: Thu, 28 Nov 2019 23:15:33 GMT
Server: Apache/2.4.7
Strict-Transport-Security: max-age=63072000
Access-Control-Allow-Origin: (null)
Last-Modified: Sat, 19 Nov 2016 18:01:39 GMT
ETag: "1dfd-541ab36d9a6c0"
Accept-Ranges: bytes
Content-Length: 7677
Cache-Control: max-age=2592000
Expires: Sat, 28 Dec 2019 23:15:33 GMT
Content-Type: image/png
Content-Language: non-html
Wget에는 HTTP HEAD 요청을 사용하기 위한 몇 가지 옵션이 있습니다.
Javascript가 없는 완전히 정적인 웹사이트의 경우 Wget 등을 사용하여 간단한 접근 방식을 사용할 수 있습니다. 이러한 사이트는 드물다고 생각합니다.
동적으로 생성된 페이지에는 항상 문제가 있습니다. 확인해야 할 URL을 결정하려면 사이트에서 HTML을 다운로드하고 구문 분석해야 합니다. Javascript를 실행해야 할 수도 있습니다.
소스 파일이 아닌 생성된 콘텐츠의 변경 사항만 확인할 수 있습니다. 다른 사람들이 언급했듯이 생성된 콘텐츠에는 타임스탬프, 처리 시간 등 관심 없는 변경 사항이 포함되는 경우가 많습니다.