Skriptas disko naudojimo stebėjimui
Šiame įraše aptarsime „bash“ skriptą, kuris skirtas stebėti jūsų disko naudojimą ir vaizduoti jį grafiškai su spalvomis. Pateiksiu, kam šis skriptas skirtas, kaip jis veikia, kaip juo naudotis bei jo privalumus ir trūkumus.
Skripto tikslas
Skriptas „disko_vieta“ yra skirtas vartotojams, kurie nori greitai ir efektyviai peržiūrėti savo disko naudojimo informaciją. Jis parodo kiek užimta ir kiek laisva vietos jūsų pagrindiniame diske („/“) bei kitame nurodytame diske (pvz., prijungtame atminties įrenginyje). Pats jį jungiu prie kito skripto, kaip papildymą.
Kaip veikia skriptas
Šis „bash“ skriptas naudoja df
komandą, kad gautų disko
naudojimo informaciją. Po to jis sukuria grafinę juostą, kuri vizualiai
parodo naudojamą disko vietą su spalvomis pagal užimtumo procentą:
- Pilka spalva: Užimta mažiau nei 30%.
- Žalia spalva: Užimta nuo 30% iki 50%.
- Geltona spalva: Užimta nuo 50% iki 80%.
- Raudona spalva: Užimta daugiau nei 80%.
Viduryje juostos yra parodomas užimtos vietos dydis gigabaitais.
#!/bin/bash
# File name: disko_vieta
# Author vaidotak
# Date: 2024-06-18
# Description:
# URL:
# Spalvų nustatymai
NC='\033[0m' # No Color
GRAY='\033[1;30m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
RED='\033[0;31m'
# Funkcija, kuri generuoja disko naudojimo juostą su spalvomis
generate_usage_bar() {
local used_gb=$1
local total_gb=$2
local usage_percent=$3
local bar_length=40
local used_length=$((usage_percent * bar_length / 100))
local empty_length=$((bar_length - used_length))
# Pasirink spalvą pagal procentą
local color=$NC
if [ "$usage_percent" -lt 30 ]; then
color=$GRAY
elif [ "$usage_percent" -lt 50 ]; then
color=$GREEN
elif [ "$usage_percent" -lt 80 ]; then
color=$YELLOW
else
color=$RED
fi
# Sukuria juostą su "█" užimtai vietai ir "░" laisvai vietai
local bar=$(printf "%0.s█" $(seq 1 $used_length))
bar+=$(printf "%0.s░" $(seq 1 $empty_length))
#
# Prideda užimtą vietą gigabaitais ir procentais juostos pabaigoje
local bar_with_gb="$bar ${used_gb}GB ${usage_percent}%"
echo -e "${color}${bar_with_gb}${NC}"
}
# Gauk disko naudojimo informaciją
root_info=$(df -h / | awk 'NR==2 {print $3, $2, $5}' | sed 's/%//')
root_used=$(echo $root_info | awk '{print $1}' | sed 's/G//')
root_total=$(echo $root_info | awk '{print $2}' | sed 's/G//')
root_usage=$(echo $root_info | awk '{print $3}')
msd_info=$(df -h /media/vaidotak/1f3e2462-ef6f-47a1-a3f8-9300d4bec261 | awk 'NR==2 {print $3, $2, $5}' | sed 's/%//')
msd_used=$(echo $msd_info | awk '{print $1}' | sed 's/G//')
msd_total=$(echo $msd_info | awk '{print $2}' | sed 's/G//')
msd_usage=$(echo $msd_info | awk '{print $3}')
# Atspausdina disko naudojimo juostas
echo "Disk (/) $root_total GB: $(generate_usage_bar $root_used $root_total $root_usage)"
echo "Disk MSD $msd_total GB: $(generate_usage_bar $msd_used $msd_total $msd_usage)"
Komentarai
Rašyti komentarą