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)"
Privalumai Greitas ir paprastas naudojimas: Skriptas greitai pateikia esminę informaciją apie disko naudojimą. Vizualinis vaizdavimas: Grafinė juosta leidžia lengvai suprasti disko užimtumą. Spalvinis kodavimas: Skirtingos spalvos pagal užimtumo procentą padeda greitai identifikuoti problematiškas sritis. Trūkumai Fiksuotas juostos ilgis: Juostos ilgis yra fiksuotas (30 simbolių), todėl kai kuriems gali būti nepakankamas arba per ilgas. Gali neveikti visur: Skriptas naudoja df komandą, kuri gali skirtis įvairiose sistemose arba nesuteikti tiksliausios informacijos visais atvejais. Papildomos idėjos Pridėti daugiau diskų: Skriptą galima praplėsti, kad rodytų informaciją apie daugiau diskų ar skirsnių. Dinaminis juostos ilgis: Galima padaryti, kad juostos ilgis būtų dinamiškai pritaikomas pagal terminalo plotį. Pagerintas formatavimas: Galima pridėti daugiau informacijos arba pakeisti išdėstymą, kad jis būtų dar patogesnis naudoti. Išvada Šis „bash“ skriptas yra naudingas įrankis kiekvienam, kuris nori greitai ir efektyviai stebėti savo disko naudojimą. Nors jis turi keletą trūkumų, jo paprastumas ir funkcionalumas daro jį labai naudingu įrankiu kasdieniam naudojimui.

Komentarai

Populiarūs šio tinklaraščio įrašai

Configuring a NixOS firewall for everyday use

Setting up syncthing as a service on openSUSE and other Linux distributions

Monitoring SFTP server updates with Python