Рубрики
Uncategorized

Управляемый событиями Bash

Bash очень полезен, когда дело доходит до автоматизации задач системного администрирования. Иногда вам нужно … Теги с Bash, Devops.

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

Чтобы осуществлять скрипт, попробуйте запустить его, а затем вытягивая свой системный журнал в пейджер. Когда вы выходите из пейджера, ваш сценарий также должен выйти. Это и другие примеры доступны на Гадость . Я буду рад попытаться ответить на любые вопросы.

Оригинал: «https://dev.to/jrbrtsn/event-driven-bash-5a6b»