내 사용자는 때때로 타임스탬프는 있지만 호스트 이름은 없는 경고(다른 시스템에서 이메일을 통해)를 받습니다. 다음과 같이 설계된 내 시스템의 타임스탬프를 비교할 수 있는 기능을 그들에게 제공하고 싶습니다.
/home/admin/assets/sagLogs/
이 디렉토리에는 각 호스트에 대해 명명된 705개의 디렉토리가 포함되어 있습니다. 그래서 그들은 다음과 같습니다:
bes-t1sg0120, art-t1sg8479, mmo-t1sg0132, ..., ...
각 디렉터리에는 생성 시 명명된 로그 파일이 포함되어 있습니다.
06-10-19-13-57-46 05-29-19-08-25-50 05-24-19-16-52-02 05-22-19-16-42-52 05-22-19-10-33-06
월-일-년-시-분-초로 이름을 지정합니다. 호스트 이름에 상관없이 입력 시간 5분 이내의 타임스탬프가 있는 모든 로그를 검색하고 싶습니다.
다음 형식을 처리했습니다.
#Times[0] = DAY
#Times[1] = MONTH
#Times[2] = YEAR
#Times[3] = HOUR
#Times[4] = MINUTE
IFS=':' read -r -a Times <<< $1
stamp="${Times[1]}-${Times[0]}-${Times[2]}-${Times[3]}-${Times[4]}"
따라서 입력은 Day:Month:Year:Hour:Minute
; 즉, $1이 06:05:19:12:30
(2019년 5월 6일 오후 12시 30분)이면 $stamp = 05-06-19-12-30
.
05-06-19-12-25
그래서 나는 : 사이의 모든 것을 찾고 싶습니다 . 그것은 이 디렉토리 중 하나에 05-06-19-12-30
있습니다 .~/assets/sagLogs/*
스탬프 찍힌 후 5분 안에 효율적으로 파일을 캡처하는 방법은 무엇인가요? 마지막 부분을 awk'ing하면서 각 파일 이름을 배열로 로드하려고 시도했지만 이는 완전히 잘못되었으며 속도가 느립니다. 당신이 무슨 생각을하는지 제게 알려주세요. 절대 파일 경로를 얻는 방법을 알려주시면 보너스 포인트를 얻을 수 있습니다!