diff --git a/30-hdd-free b/30-hdd-free index 72e9b04..4bbb579 100755 --- a/30-hdd-free +++ b/30-hdd-free @@ -1,15 +1,21 @@ #!/bin/bash -mountpoints=('/dev/sdf1' '/dev/vg1/downloads' '/dev/sdb1') -barWidth=34 -maxDiscUsage=90 +# mountpoints=$(echo df -h | grep ^/dev/ | grep -v efi | awk '{print $1;}') +mapfile -t mountpoints < <( df -h | grep ^/dev/ | grep -v efi | awk '{print $1;}' ) + +IFS=$'\n' mountpoints=($(sort <<<"${mountpoints[*]}")) +unset IFS + +barWidth=38 +maxDiscUsage=85 clear="\e[39m\e[0m" dim="\e[2m" barclear="" echo echo 'HDD free:' for point in "${mountpoints[@]}"; do - line=$(df -hl "${point}") + line=$(df -h "${point}") + # IFS=" " read fs size used avail use mount $(df -h "${point}") label=$(lsblk -o label "${point}") usagePercent=$(echo "$line"|tail -n1|awk '{print $5;}'|sed 's/%//') usedBarWidth=$((($usagePercent*$barWidth)/100)) @@ -26,8 +32,8 @@ for point in "${mountpoints[@]}"; do for sep in $(seq 1 $(($barWidth-$usedBarWidth))); do barContent="${barContent}-" done - bar="[${barContent}${clear}]" - echo "${label}" | awk '{if ($1 != "LABEL") printf("%-10s", $1); }' + bar=" [${barContent}${clear}]" + echo "${point}" | awk '{printf(" %-14s", $1); }' echo "${line}" | awk '{if ($1 != "Filesystem") printf("%+8s used out of %+5s\n", $3, $2); }' echo -e "${bar}" diff --git a/30-hdd-temp b/30-hdd-temp index 03fd0ad..cd247cb 100755 --- a/30-hdd-temp +++ b/30-hdd-temp @@ -26,5 +26,6 @@ for i in {a..z}; do fi done out+="\n" +echo echo -e "HDD Temps:" printf "$out" | column -c $k -ts $',' | sed -e 's/^/ /' diff --git a/40-services b/40-services index aa3cd45..718f7f7 100755 --- a/40-services +++ b/40-services @@ -2,19 +2,24 @@ export LANG='en_US.UTF-8' # set column width -COLUMNS=3 +COLUMNS=2 # colors green="\e[1;32m" red="\e[1;31m" undim="\e[0m" declare -A services -services["nginx"]="Nginx" services["docker"]="Docker" -services["sshd"]="SSH" -services["plexmediaserver"]="Plex" -services["openvpn-server@server"]="OVPN-server" +#services["openvpn-server@server"]="OVPN server" +#services["openvpn-server@private"]="OVPN private" services["smbd"]="Samba" services["smartd"]="Smart" +# services["minecraft@iis"]="MC IIS" +# services["minecraft@iis_creative"]="IIS CREATIVE" +#services["lavalink"]="Lavalink" +#services["discord-music"]="Dis music" +#services["discord-pisya"]="Dis pisya" +#services["discord-boom"]="Dis boom" +services["wsdd"]="WSD" # sort services k=0 out="" @@ -23,9 +28,9 @@ for i in "${!services[@]}"; do # color green if service is active, else red service_status=($(systemctl is-active "$i")) if [[ "${service_status}" == "active" ]]; then - out+="${services[$i]}:,${green}▲${undim}," + out+="${services[$i]}:,${green} up${undim}," else - out+="${services[$i]}:,${red}▼${undim}," + out+="${services[$i]}:,${red}down${undim}," fi # insert \n every $COLUMNS column if [ $((($k) % $COLUMNS)) -eq 0 ]; then @@ -36,4 +41,3 @@ out+="\n" printf "\nservices:\n" printf "$out" | column -ts $',' | sed -e 's/^/ /' -# printf "$services" \ No newline at end of file diff --git a/60-docker b/60-docker index 38e3d11..4547676 100755 --- a/60-docker +++ b/60-docker @@ -2,32 +2,90 @@ export LANG='en_US.UTF-8' # set column width -COLUMNS=2 +COLUMNS=1 # colors green="\e[1;32m" red="\e[1;31m" +yellow="\e[1;33m" undim="\e[0m" -mapfile -t containers < <( docker ps --format "{{.Names}} {{.Status}}" -a | awk '{ print $1,$2 }' | sed '/^\s*$/d' | tail -n +1) +# docker ps --format "{{.Names}} \t {{.Status}}" --filter "label=game_server" -a +# comm -2 -3 <(docker ps -a --format "{{.Names}} \t {{.Status}}" | sort) <(docker ps -a --format "{{.Names}} \t {{.Status}}" --filter='label=game_server' | sort) -IFS=$'\n' containers=($(sort <<<"${containers[*]}")) -unset IFS +mapfile -t containers < <( comm -2 -3 <(docker ps -a --format "{{.Names}} {{.Status}}" | sort) <(docker ps -a --format "{{.Names}} {{.Status}}" --filter='label=game_server' | sort) | sed '/^\s*$/d' | tail -n +1) +mapfile -t game_servers < <( docker ps --format "{{.Names}} {{.Status}}" --filter "label=game_server" -a | sed '/^\s*$/d' | tail -n +1 ) -out="" -for i in "${!containers[@]}"; do - IFS=" " read name status <<< ${containers[i]} - # color green if service is active, else red - if [[ "${status}" == "Up" ]]; then - out+="${name}:,${green}▲${undim}," - else - out+="${name}:,${red}▼${undim}," - fi - # insert \n every $COLUMNS column - if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then - out+="\n" - fi -done -out+="\n" + +#IFS=$'\n' containers=($(sort <<<"${containers[*]}")) +#unset IFS + +#IFS2=$'\n' game_servers=($(sort <<<"${game_servers[*]}")) +#unset IFS2 printf "\nDocker status:\n" -printf "$out" | column -ts $',' | sed -e 's/^/ /' +printf " Game Servers:\n" +for i in "${!game_servers[@]}"; do + IFS2=" " read name status <<< ${game_servers[i]} + replica=$( echo ${name} | sed 's/\([^.]*\)\.\([^.]*\)\.\([^.]*\)/\2/') + name=$( echo ${name} | sed 's/\([^.]*\)\.\([^.]*\)\.\([^.]*\)/\1/') + +# printf "ttt \\\ ${status}" + + if [[ "${status}" == *"healthy"* ]]; then + _status="${green}healthy${undim}" + + elif [[ "${status}" == *"Restarting"* ]]; then + _status="${yellow}restarting${undim}" + + elif [[ "${status}" == *"Paused"* ]]; then + _status="${yellow}paused${undim}" + + elif [[ "${status}" == *"Up"* ]]; then + _status="${green}up${undim}" + + elif [[ "${status}" == *"Created"* ]]; then + _status="${yellow}created${undim}" + + elif [[ "${status}" == *"Exited"* ]]; then + + _status="${red}exited${undim}" + fi + + line=${name},${_status} + echo -e "${name} ${_status}" | awk '{printf(" %-20s %+25s\n", $1, $2); }' +done + +printf "\n Other:\n" + +for i in "${!containers[@]}"; do + IFS=" " read name status <<< ${containers[i]} + replica=$( echo ${name} | sed 's/\([^.]*\)\.\([^.]*\)\.\([^.]*\)/\2/') + name=$( echo ${name} | sed 's/\([^.]*\)\.\([^.]*\)\.\([^.]*\)/\1/') + + + if [[ "${status}" == *"healthy"* ]]; then + _status="${green}healthy${undim}" + + elif [[ "${status}" == *"Restarting"* ]]; then + _status="${yellow}restarting${undim}" + + elif [[ "${status}" == *"Paused"* ]]; then + _status="${yellow}paused${undim}" + + elif [[ "${status}" == *"Up"* ]]; then + _status="${green}up${undim}" + + elif [[ "${status}" == *"Created"* ]]; then + _status="${yellow}created${undim}" + + elif [[ "${status}" == *"Exited"* ]]; then + + _status="${red}exited${undim}" + fi + line=${name},${_status} + echo -e "${name} ${_status}" | awk '{printf(" %-20s %+25s\n", $1, $2); }' + # if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then + # out+="\n" + # fi +done +echo -e ""