파일 변경 이메일 알림을 위한 Linux 스크립트(inotify 또는 기타 유틸리티 아님)

파일 변경 이메일 알림을 위한 Linux 스크립트(inotify 또는 기타 유틸리티 아님)

나는 파일 내용이 변경될 때마다 이메일을 통해 알려주는 Linux 스크립트(inotify 도구나 기타 유틸리티가 아님)를 찾고 있습니다. Google을 통해 샘플 스크립트를 관리했지만 수동으로 실행해야 하고 이메일이 실행되지 않습니다.

[[ -z `find /path/to/file -mmin -60` ]]

if [ $? -eq 0 ]
then
  echo -e " /path/to/file nothing has changed"
else
  mail -s "/path/to/file has been changed" mailid
fi

답변1

원하는 작업을 수행하는 스크립트가 있으면 cron 테이블(또는 cron crontab)에 스크립트를 추가하면 원하는 빈도로 작업이 실행됩니다. 그래서:

#!/bin/bash
if ! [[ -z $(find /path/to/file -mmin 60) ]]; then
    # The file was changed, so:
    echo -e "The hash is:\n$(md5sum /path/to/file)" | mail -s "/file has changed on $(hostname -s) [email protected]"
else
    # If this is in the crontab, remove this else stanza; cron
    # jobs should not write to standard output, lest that output
    # be sent to the local mailer daemon to drop it into the owner's
    # mailbox.
    echo "No changes to /path/to/file detected."
fi

답변2

하지만 수동으로 실행해야 해요

정말 중요한 것은 이메일 알림을 얼마나 자주 받고 싶은지입니다. 매우 빠를 필요가 없다면 cron 작업으로 충분합니다. 다른 곳에서 파일 수정 시간을 캡처하여 해당 값을 비교하거나 -mtime/-mmin과 함께 "find"를 사용하십시오. 또는 로고 파일을 터치하세요. 대상 파일이 플래그 파일보다 최신인 경우 이메일을 보내고 플래그 파일의 타임스탬프를 새로 고칩니다.

(거의) 즉각적인 알림을 원할 경우 다음을 확인하세요.잉크론

이메일이 실행되지 않습니다.

……말도 안 돼요. 로그를 확인하세요. 이메일이 전달되지 않는 이유는 여기에서 자주 묻는 질문입니다.

관련 정보