나는 작은 회사에서 기술 운영을 맡았습니다. 그러나 이전 리드는 우리 웹사이트가 해당 이미지 중 약 5GB만 사용함에도 불구하고 100GB의 이미지를 저장하는 잘못된 결정을 내렸습니다. 기본적으로 정리 스크립트는 없습니다. 나는 지금 이 혼란을 최적화하는 임무를 맡고 있는데 어디서부터 시작해야 할지 잘 모르겠습니다. 웹을 통해 각 이미지 파일에 마지막으로 액세스한 시간 목록을 얻을 수 있는 방법이 있습니까? "지난 365일 동안 열지 않은 경우 백업 드라이브로 이동하고 기본 서버에서 제거"와 같은 작업을 수행할 수 있습니까?
답변1
현재 환경(OS, 웹 서버 등)을 사용하는 방법을 알려주지 않았으므로 Linux로 가정합니다.
를 사용하여 서버에 데이터 디렉토리를 마운트하지 않은 경우 를 사용하여 365일 동안 액세스되지 않은 파일을 검색 noatime
할 수 있습니다 .find
find /var/www/images -iname "*.jpg" -atime +365 -type f
을 사용한 경우 noatime
이는 불가능합니다(및 을 사용한 경우 relatime
24 atime
시간 동안 꺼질 수 있음).
그러나 HTML 파일에 죽은 링크가 있을 수 있고 지금부터 5일 후에 누군가 이 리소스가 필요할 수 있으므로 이는 좋은 접근 방식이 아닙니다.
더 나은 접근 방식: 웹 트리를 구문 분석하고 거기에서 참조되는 모든 파일을 나열하고(웹 서버 자동 인덱싱을 끄십시오...) 다른 모든 것을 보관합니다. 이렇게 하면 HTML 파일에 나열된 모든 항목을 계속 사용할 수 있는지 확인할 수 있습니다.
사람들이 직접 링크를 통해 액세스하는 일반 트리에 연결되지 않은 고립된 HMTL 파일 섬이 있을 가능성이 있으므로 주의하십시오. 목록을 작성할 때 이에 대해 생각해 보십시오. 물론 이미지 파일의 경우에도 마찬가지일 수 있지만 실제로는 로그 파일 구문 분석이나 방법을 통해서만 해당 파일을 포착할 수 있습니다 find
.
답변2
웹 로그가 얼마나 오래되었는지에 따라 문제의 디렉터리에서 파일에 대한 모든 항목을 구문 분석한 다음 발견되지 않은 모든 항목을 삭제할 수 있습니다.