안녕하세요.
모자란 디스크 용량 덕분에 매일 생성되는 웹로그를 압축하고 기존 로그파일은 삭제하는 스크립트나 배치 명령어를 만들려고 합니다.
여기저기 검색해본 결과로는 마지막 수정 시간을 기준으로 해서 d-1 변수를 이용하는 사례가 거의 대부분 이었습니다.
다만 운영중인 서버의 경우는 시간 단위로 로그 파일이 생성되고 있고,
시간텀이 존재하여 5월 9일 01시 웹로그가 disk 상에 쓰여지는 시간은 5월 9일 11:00 입니다.
이런 형편이라 마지막 수정 시간을 기준으로 하여 솔팅하면 5월 9일 전체의 24개 파일이 아닌
일부의 로그 파일만 선택되는 문제가 있습니다.
이런경우에 파일명에 들어있는 연월일 부분을 추출하고 그 값을 변수로 하는 스크립트나 배치 명령어가 가능한지요?
고수님들의 도움을 기다리겠습니다. ( _ _ )
Comment 5
-
항해자™
2016.05.11 19:36
-
minsouk
2016.05.12 01:15
어머.........^^;; 멋져~
-
김철갑수
2016.05.18 09:54
답변 감사합니다.
그런데 운영중인 서버의 경우..한시간 단위로 로그 파일이 생기구요..
예를 들면 ex16051700.log 파일이 17일 am 10:00 에 생성 되며 ex16051715.log 의 경우는 18일 am 01:00 에 생성 됩니다.
이런 상황에서 d-1 옵션으로는 수정일자와 실제로그 타임이 맞지 않아 00~13 까지 14개의 로그 파일만 선택이 됩니다 ㅠㅠ
yymmddhh (16051701) 형식의 파일명인데 여기서 오늘 date 와 파일명에 있는 숫자 부분을 비교해
하루 전 로그만 솔팅해서 압축 삭제하는 스크립트를 만들고 싶은데 어렵군요 ㅠㅠ
-
김철갑수
2016.05.18 09:53
1
-
항해자™
2016.05.18 14:00
그런 문제라면 마지막 파일만 제외하고 파일별 압축으로 명령어를 쓰면 되겠군요,,
forfiles /p d:\log\ /m *.log /d -1 /c "cmd /c 7z a @file"
forfiles /p d:\log\ /m *.log /d -1 /c "cmd /c del @file"