K7AAY와 0xSheepdog의 제안을 바탕으로 다시 설명하겠습니다.
grep
매일 특정 시간 범위 내에 파일이 전송될 때 로그 파일을 생성하는 bash 스크립트를 만들어야 합니다 .
파일 이름은 일반적으로 다음과 같습니다.YYYYMMDD_HHMMSS_SEND_FILENAME_TO_HOST.log
(이 로그 파일은 CFTutil
파일 전송 애플리케이션에서 생성됩니다.)
이 로그 파일에는 수행할 수 있는 다음 문자열을 찾는 스크립트가 필요합니다.
성공적인
이제 파일이 x회와 y회 사이에 성공적으로 전송되면 스크립트는 이메일을 보내야 합니다. x~y번 사이에 파일이 전송되지 않으면 이메일을 전송해야 합니다. y 이후에 파일을 보내면 파일이 보내지지 않으면 이메일을 보내야 합니다.
다음 스크립트를 실행할 수 있지만 막혔고 이것이 최선의 접근 방식이라고 생각하지 않습니다. 이 스크립트는 1개의 파일만 검색하므로 15개의 파일에 대해 이 작업을 수행해야 합니다.
각 파일에 대한 스크립트를 생성하고 cron 작업을 사용하여 예약하지만 언제든지 실행할 수 있고 그 안에 있는 각 파일에 대한 상태 보고서를 받을 수 있도록 모든 작업을 하나의 스크립트에서 수행하고 싶습니다.
현재 스크립트는 다음과 같습니다.
#!/bin/bash
dt=$(date +"%Y%m%d")
HHMM=$(date '+%H:%M')
if
find ./ -newermt "$dt 21:30:00" ! -newermt "$dt 23:50:00" -name "$dt_*SEND_FILE1_TO_HOST.log" -exec grep -i successful {} \;
then
# mail -s "File File1 Transmission Report" [email protected] <<< "File was generated and successfully sent at $HHMM";
echo "Sucess"
elif
find ./ -newermt "$dt 21:30:00" ! -newermt "$dt 23:50:00" -name "$dt_*SEND_FILE1_TO_HOST.log" -exec grep -i unsuccessful {} \;
then
# mail -s "File File1 Transmission Report" [email protected] <<< "File was generated but unsuccessfully sent at $HHMM";
echo "Error"
elif
find ./ -newermt "$dt 21:30:00" ! -newermt "$dt 23:50:00" -name "$dt_*SEND_FILE1_TO_HOST.log" -exec false {} \;
then
# mail -s "File File1 Transmission Report" [email protected] <<< "File not generated in due time Please verify ASAP";
echo "Not Found"
fi
newermt
작동하지 않습니다. 여전히 시간 범위 내에서 파일을 검색하는 방법을 알아내려고 노력 중입니다.
CFTUTIL은 호스트 간의 파일 수신 및 배포를 모니터링하는 도구입니다. 파일 디렉터리를 지속적으로 모니터링하고 파일이 수신되면 배포하고 보관합니다. 이렇게 하면 각 호스트에 대한 로그가 생성됩니다.
그러한 스크립트를 어떻게 만들 수 있습니까?