Files

39 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
function h2b()
{
local val="$1"
local num unit
if [[ $val =~ ^([0-9.]+)([BKMGTP]?)$ ]]; then
num="${BASH_REMATCH[1]}"
unit="${BASH_REMATCH[2]}"
case "$unit" in
B|"") echo "${num%.*}" ;;
K) echo "$(awk "BEGIN{printf \"%d\", $num*1024}")" ;;
M) echo "$(awk "BEGIN{printf \"%d\", $num*1024*1024}")" ;;
G) echo "$(awk "BEGIN{printf \"%d\", $num*1024*1024*1024}")" ;;
T) echo "$(awk "BEGIN{printf \"%d\", $num*1024*1024*1024*1024}")" ;;
P) echo "$(awk "BEGIN{printf \"%d\", $num*1024*1024*1024*1024*1024}")" ;;
*) echo "$num" ;;
esac
else
echo 0
fi
}
curl localhost:8000/fs_top 2>/dev/null | while IFS= read -r line; do
if [[ "$line" =~ ^[[:space:]]*([a-zA-Z0-9_]+)[[:space:]]+([0-9]+)/s[[:space:]]+([0-9]+)[[:space:]]+([0-9]+)[[:space:]]*$ ]]; then
stat="${BASH_REMATCH[1]}"
rate="${BASH_REMATCH[2]}"
total="${BASH_REMATCH[3]}"
mount="${BASH_REMATCH[4]}"
printf "bcachefs_fs_top,stat=%s,fspath=/mnt,uuid=3d3a0763-4dfe-41e6-93c1-8c791ec98176 rate=%si,total=%si,mount=%si\n" \
"$stat" "$rate" "$total" "$mount"
#else
# echo DOES NOT MATCH "$line" >&2
fi
done