scripts/update-motd.d/10-filesystem

68 lines
2.1 KiB
Bash
Executable File

#!/bin/sh
# .. vim: foldmarker=[[[,]]]:foldmethod=marker
# {{ ansible_managed | comment }}
# Colors definition [[[
BLACK='\033[49;30m'
BLACKB='\033[49;90m'
RED='\033[0;31m'
REDB='\033[1;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[94;49m'
MAGENTA='\033[0;35m'
CYAN='\033[36;49m'
WHITE='\033[0;37m'
BOLD='\033[1m'
RESET='\033[0m'
# ]]]
# Vars definition [[[
ROOT_PART_USAGE=$(df --local | grep -m1 "/$" | awk '{print $5}')
# ]]]
#+++++++++++++++++++: Disk Usage :+++++++++++++++++++
printf '%b' "${RESET}"
printf "${BLACKB}%33s${RESET}" | tr ' ' -
printf '%b' " ${CYAN}Disk Usage${RESET} "
printf "${BLACKB}%34s${RESET}\\n" | tr ' ' -
# Root partition
## Replaced by rootfs in few kernel version
PRINTF_ROOT_NAME=$(printf '%-22s' "/")
printf '%b' "${BLACKB}+ ${WHITE}${PRINTF_ROOT_NAME}${RESET}${BLACKB}= ${CYAN}${ROOT_PART_USAGE}${RESET}\\n"
# Other partition
for PART_NAME in /boot /home /opt /srv /tmp /tmp /usr /var /var/lib/docker /var/lib/vz; do
## "/...$" : $ to grep only the mount point and not sub-directories (/var: OK; /mnt/temp: nOK)
if (df --local | grep "${PART_NAME}$" > /dev/null); then
PART_USAGE=$(df --local | grep "${PART_NAME}$" | awk '{print $5}')
PRINTF_PART_NAME=$(printf '%-22s' "${PART_NAME}")
printf '%b' "${BLACKB}+ ${WHITE}${PRINTF_PART_NAME}${RESET}${BLACKB}= ${CYAN}${PART_USAGE}${RESET}\\n"
fi
done
## IF ZFS [[[
#+++++++++++++++++++: ZFS Usage :+++++++++++++++++++
if [ "$(command -v zpool)" ]; then
printf '%b' "${RESET}"
printf "${BLACKB}%32s${RESET}" | tr ' ' -
printf '%b' " ${CYAN}${BOLD}ZFS${RESET} ${CYAN}Partition${RESET} "
printf "${BLACKB}%33s${RESET}\\n" | tr ' ' -
NUMBER_PART=$(df --local --print-type | grep -c zfs)
LINE=1
while [ "${LINE}" -le "${NUMBER_PART}" ]; do
DISK_USAGE=$(df --local --print-type | grep zfs | sed -n "${LINE},${LINE}p" | awk '{print $6}')
PART_NAME=$(df --local --print-type | grep zfs | sed -n "${LINE},${LINE}p" | awk '{print $1}')
PRINTF_PART_NAME=$(printf '%-23s' "${PART_NAME}")
printf '%b' "${BLACKB}+ ${WHITE}${PRINTF_PART_NAME}${RESET} ${CYAN}${DISK_USAGE}${RESET}\\n"
LINE=$((LINE+1))
# Bash ONLY: (( LINE++ ))
done
fi
## FI ZFS ]]]
printf '%b' "${RESET}"