X-Git-Url: https://git.xandkar.net/?p=khatus.git;a=blobdiff_plain;f=README.md;h=7ab320b548852abb03751496baef3b746ebce74a;hp=72512e9ab2997c117e61c909d9bff53403f8a5e3;hb=ec80b4403b0d2ea418a281225f7f2719a609f0d3;hpb=55407653a1b516622c330af3d47963ecbba0fb61 diff --git a/README.md b/README.md index 72512e9..7ab320b 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,43 @@ Design ~ OS ~ ~~~~~~ ``` + +### Actuator +By default, actuator is left disconnected from the controller's output, so if +desired - it needs to be manually attached when starting `khatus`. For example, +in my `.xinitrc` I have: + +```sh +$BIN/khatus \ +2> >($BIN/twrap.sh >> $HOME/var/log/khatus.log) \ +| $BIN/khatus_actuator \ + -v pid="$$" \ + -v display=":0" \ +2> >($BIN/twrap.sh >> $HOME/var/log/khatus-actuator.log) \ +& +``` + +(`twrap.sh` is a simple script which prefixes a timestamp to each line) + +The idea is to later have multiple, (some more-general and some more-specific) +actuators which can be selected as needed, say for example: + +```sh +$BIN/khatus \ +| tee \ +>(awk '/^STATUS_BAR/ {sub("^" $1 " *", ""); system("xsetroot -name \" " $0 " \"")}') \ +>(grep '^REPORT' | actuate_report_to_email) \ +>(grep '^ALERT' | grep mpd | actuate_alert_to_email) \ +>(grep '^ALERT' | grep IntrusionAttempt | actuate_intruder_to_iptables_drop) \ +>(grep '^ALERT' | grep NewDevice | actuate_alert_to_notify_send) +>(grep '^ALERT' | grep DiskError | actuate_call_mom) +``` + +... and/or any other such fun you might imagine. + +### Errors +Any errors encountered by any sensor are propagated as alerts by the +controller, which are in turn actualized as desktop notifications by the +actuator: + +![screenshot-self-error-propagation](screenshot-self-error-propagation.jpg)