Yannick Boetzel 7 rokov pred
commit
b6fb216d6b
6 zmenil súbory, kde vykonal 74 pridanie a 0 odobranie
  1. 3 0
      10-display-name
  2. 3 0
      10-display-name-color
  3. 4 0
      20-uptime
  4. 39 0
      30-zpool-bar
  5. 7 0
      30-zpool-simple
  6. 18 0
      40-fail2ban

+ 3 - 0
10-display-name

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+/usr/bin/figlet "$(hostname)"

+ 3 - 0
10-display-name-color

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+/usr/bin/figlet "$(hostname)" | /usr/games/lolcat -f

+ 4 - 0
20-uptime

@@ -0,0 +1,4 @@
+#!/bin/bash
+
+printf "\n"
+/usr/bin/uptime -p

+ 39 - 0
30-zpool-bar

@@ -0,0 +1,39 @@
+#!/bin/bash
+
+# config
+max_usage=90
+bar_width=50
+clear="\e[39m\e[0m"
+dim="\e[2m"
+
+zpools=($(zpool list -Ho name | awk '{print $0}'))
+
+printf "\nzpool usage:\n"
+
+for zpool in "${zpools[@]}"
+do
+    # get zpool usage
+    line=$(zpool list -Ho name,cap,size "${zpool}")
+    usage=$(echo "$line" | awk '{print $2}' | sed 's/%//')
+    used_width=$((($usage*$bar_width)/100))
+    # color is green if usage < max_usage, else red
+    if [ "${usage}" -ge "${max_usage}" ]; then
+        color="\e[31m"
+    else
+        color="\e[32m"
+    fi
+    # print green/red bar until used_width
+    bar="${color}"
+    for sep in $(seq 1 $used_width); do
+        bar+="="
+    done
+    # print dimmmed bar until end
+    bar+="${clear}${dim}"
+    for sep in $(seq 1 $(($bar_width-$used_width))); do
+        bar+="="
+    done
+    bar="[${bar}${clear}]"
+    # print usage line & bar
+    echo "${line}" | awk '{ printf("%-10s%+3s used out of %+5s\n", $1, $2, $3); }' | sed -e 's/^/  /'
+    echo -e "${bar}" | sed -e 's/^/  /'
+done

+ 7 - 0
30-zpool-simple

@@ -0,0 +1,7 @@
+#!/bin/bash
+
+printf "\nzpool status:\n"
+zpool status -x | sed -e 's/^/  /'
+
+printf "\nzpool usage:\n"
+zpool list -Ho name,cap,size | awk '{ printf("%-10s%+3s used out of %+5s\n", $1, $2, $3); }' | sed -e 's/^/  /'

+ 18 - 0
40-fail2ban

@@ -0,0 +1,18 @@
+#!/bin/bash
+
+jails=($(fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) print a[i]}'))
+
+out="jail,failed,total,banned,total\n"
+
+for jail in ${jails[@]}; do
+  status=$(fail2ban-client status ${jail})
+  failed=$(echo "$status" | grep -ioP '(?<=Currently failed:\t)[[:digit:]]+')
+  totalfailed=$(echo "$status" | grep -ioP '(?<=Total failed:\t)[[:digit:]]+')
+  banned=$(echo "$status" | grep -ioP '(?<=Currently banned:\t)[[:digit:]]+')
+  totalbanned=$(echo "$status" | grep -ioP '(?<=Total banned:\t)[[:digit:]]+')
+
+  out+="$jail,$failed,$totalfailed,$banned,$totalbanned\n"
+done
+
+printf "\nfail2ban status:\n"
+printf $out | column -ts $',' | sed -e 's/^/  /'