그래서 저는 잘 작동하는 파일 감시자 스크립트를 성공적으로 개발했습니다. 스크립트는 입력 파일 목록(파일의 전체 경로), 구분 기호 |
및 기타 정보가 포함된 파일을 읽습니다. 이 같은:
/path/to/file/1.txt|600|900|Team1|[email protected]
/path/to/file/2.txt|630|930|Team2|[email protected]
/path/to/file/3.txt|2300|2359|Team3|[email protected]
첫 번째는 파일, 두 번째와 세 번째는 파일이 일반적으로 나타나는 시간, 네 번째는 파일을 담당하는 팀, 다섯 번째는 이메일입니다.
스크립트는 10분마다 24시간 백그라운드에서 실행되어 현재 시간을 두 번째 및 세 번째 열과 비교하고, 현재 시간이 이 시간 사이에 있으면 파일이 존재하는지 확인합니다. 종료 시간(3열)이 10분 미만이고 파일이 도착하지 않은 경우 파일이 누락되었음을 알리는 이메일이 팀에 전송됩니다.
정의된 시간 이후에 파일이 도착하는지 확인하기 위해 종료 시간, 즉 현재 시간 값을 확인하는 또 다른 조건을 설정했습니다. 결과가 부정적이면 파일이 늦어서 SLA를 놓쳤는지 확인합니다. 파일이 늦게 도착하면 스크립트는 파일에 SLA가 누락되었음을 알리는 이메일을 보냅니다. 현재 시간 종료 시간(3열)을 사용하여 "SLA" 놓친 시간을 계산합니다. 예를 들어 첫 번째 파일이 930에 도착하면 (930-900)은 30분 늦습니다. 이 모든 것이 잘 작동합니다.
질문이 하나 있습니다. 내 예의 마지막 줄을 보면 시간이 끝납니다.2359파일이 2359년 이후에 도착하는지 계산할 수 없습니다(그 시간이 하루 중 가장 높은 시간이기 때문에 아무것도 빼도 음수 값이 생성되지 않습니다). 분명히 그보다 늦으면 정확한 SLA 누락 시간을 계산할 수 없습니다. 예를 들어, 파일이 100시간에 도착하면 스크립트는 파일이 SLA 시간 이전에 도착했다고 간주하고 경고가 전송되지 않습니다(100-2359는 음수임).
이 문제를 어떻게 극복할 수 있습니까?
답변1
스크립트를 다시 디자인해야 할 수도 있지만 이러한 종류의 일을 추적하는 더 간단한 방법은 "에포크" 시간 간의 전환을 활용하고 "창 시작 시간" 대신 "창 기간"을 사용한 다음 현재 시간을 변환하는 것입니다. 에포크 시간으로 변환하고, 윈도우에서 지정한 초수를 더한 후 에포크 변환된 배달 시간과 비교하면 보다 쉽게 비교할 수 있습니다.