이벤트 기반 Bash
Bash는 자동화된 시스템 관리 작업과 관련될 때 유용합니다.때때로 당신은 외부 사건에 따라 행동을 취해야 하는데, 이를 어떻게 하는지에 대한 예는 많지 않다.간단합니다.
#!/bin/bash -eu
# Launch inotifywait monitoring the syslog in a subprocess.
# Redirect stdout of subshell to pipe #3
exec 3< <(exec inotifywait -m /var/log/syslog)
# Read each line of output from inotifywait
while read -u 3 FILE OPS; do
# stdin, stdout, stderr all available in loop
echo "FILE= '$FILE', OPS= '$OPS'"
# OPS are comma separated. Swap comma for space, deal with each individually.
for op in ${OPS//,/ }; do
# Branch on $op
case $op in
MODIFY)
echo "$FILE was modified.";;
ACCESS)
echo "$FILE was accessed.";;
CLOSE_NOWRITE)
echo "$FILE was closed without changes."
break 2;;
# Other actions go here
esac
done
done
# Close pipe
exec 3<&-
# Only get here on loop exit, or if inotifywait quits.
exit 0
스크립트를 연습하려면 실행하고 호출기에서 시스템 로그를 내보내십시오.호출기를 종료할 때 스크립트도 종료해야 합니다.이 예제와 기타 예는 Github 에서 찾을 수 있습니다.
나는 어떤 질문에도 기꺼이 대답할 것이다.
Reference
이 문제에 관하여(이벤트 기반 Bash), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jrbrtsn/event-driven-bash-5a6b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)