Pi66

pino-rs
Rust notification daemon.
git clone https://git.pi66.xyz/pino-rs

scripts/memory-monitor.sh

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash

MEM_HIGH=85    
MEM_LOW=65     
CHECK_INTERVAL=0.5

alert_triggered=false

while true; do
    mem_used=<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow><mo stretchy="false">&#x00028;</mo><mi>f</mi><mi>r</mi><mi>e</mi><mi>e</mi><mo stretchy="false">&#x0007C;</mo><mi>a</mi><mi>w</mi><msup><mi>k</mi><mi>&#x02032;</mi></msup><mo>&#x0002F;</mo><mi>M</mi><mi>e</mi><mi>m</mi><mo>&#x0002F;</mo><mrow><mi>u</mi><mi>s</mi><mi>a</mi><mi>g</mi><mi>e</mi><mo>&#x0003D;</mo></mrow></mrow></math>3/$2*100; printf("%.0f", usage)}')
    if [ "<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow><mi>m</mi><mi>e</mi><msub><mi>m</mi><mi>u</mi></msub><mi>s</mi><mi>e</mi><mi>d</mi><mi>"</mi><mo>&#x02212;</mo><mi>g</mi><mi>e</mi><mi>"</mi></mrow></math>MEM_HIGH" ] && [ "$alert_triggered" = false ]; then
        pino -t "Memory Alert" -m "High RAM usage: ${mem_used}%" -d 5
        alert_triggered=true
    elif [ "<math xmlns="http://www.w3.org/1998/Math/MathML" display="inline"><mrow><mi>m</mi><mi>e</mi><msub><mi>m</mi><mi>u</mi></msub><mi>s</mi><mi>e</mi><mi>d</mi><mi>"</mi><mo>&#x02212;</mo><mi>l</mi><mi>t</mi><mi>"</mi></mrow></math>MEM_LOW" ] && [ "$alert_triggered" = true ]; then
        alert_triggered=false
    fi

    sleep "$CHECK_INTERVAL"
done