Şahsi Özel Donanım Kullanım Ömrü Hesaplama Betiği
Gönderilme zamanı: 01 Nis 2026, 19:57
Merhabalar
Uzun bir zaman önce aldığım donanımların, kullanım ömrünün neresinde olduğunu merak ettim ve aşağıdaki irsaliye belgesine göre, bir bash shell betiği tasarladım...
KOD İÇERİĞİ :
ANALİZ SONUCU :
NOT :
“Aging” demek:
Yaşlanmış / Ömrünün sonuna yaklaşan
Yani
Parçalar hâlâ çalışıyor
Ama yıpranmış
Arıza riski artmış
Yani Healthy: 53% > Aging: 47%
Betiğe göre ne fazla 10-11 sene daha bu donanım seti rahat gider.Ondan sonrası Allah(c.c) kerim....
Uzun bir zaman önce aldığım donanımların, kullanım ömrünün neresinde olduğunu merak ettim ve aşağıdaki irsaliye belgesine göre, bir bash shell betiği tasarladım...

Kod: Tümünü seç
#!/bin/bash
export LC_NUMERIC=C
INVOICE_DATETIME="2022-10-31 10:43:56"
echo "Enter date and time (YYYY-MM-DD HH:MM:SS) or only date:"
read INPUT
# If user enters only date, append 00:00:00
if [[ "$INPUT" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
INPUT="$INPUT 00:00:00"
fi
# Validate date
date -d "$INPUT" >/dev/null 2>&1 || { echo "Invalid date format"; exit 1; }
invoice_sec=$(date -d "$INVOICE_DATETIME" +%s)
input_sec=$(date -d "$INPUT" +%s)
if [ "$input_sec" -lt "$invoice_sec" ]; then
echo "Date cannot be earlier than invoice date"
exit 1
fi
# Time difference in years (real seconds)
diff=$((input_sec - invoice_sec))
years=$(awk "BEGIN {printf \"%.4f\", $diff / 31557600}")
printf "\nElapsed time: %.2f years\n" "$years"
echo "-----------------------------------"
status() {
y=$1
min=$2
max=$3
if awk "BEGIN {exit !($y < $min)}"; then
echo "NEW"
elif awk "BEGIN {exit !($y < ($max*0.7))}"; then
echo "NORMAL"
elif awk "BEGIN {exit !($y < $max)}"; then
echo "AGING"
else
echo "CRITICAL"
fi
}
calculate() {
max=$1
awk "BEGIN {printf \"%.2f\", ($years / $max) * 100}"
}
print_device() {
name=$1
min=$2
max=$3
percent=$4
echo ""
echo "Device: $name"
echo "Lifetime range: $min - $max years"
echo "Status: $(status $years $min $max)"
printf "Wear: %.0f%%\n" "$percent"
echo "-----------------------------------"
}
# Calculate percentages
laptop=$(calculate 8)
ssd=$(calculate 10)
hdd=$(calculate 5)
mouse=$(calculate 4)
cooler=$(calculate 10)
dvd=$(calculate 8)
# Print results
print_device "Laptop" 3 8 "$laptop"
print_device "SSD" 5 10 "$ssd"
print_device "HDD" 3 5 "$hdd"
print_device "Mouse" 2 4 "$mouse"
print_device "Cooler" 5 10 "$cooler"
print_device "DVD Drive" 5 8 "$dvd"
# Weighted analysis
average=$(awk "BEGIN {
print ($laptop*0.40)+($ssd*0.20)+($hdd*0.20)+($mouse*0.05)+($cooler*0.10)+($dvd*0.05)
}")
health=$(awk "BEGIN {print 100 - $average}")
echo ""
echo "=========== FINAL ANALYSIS ==========="
printf "Healthy: %.0f%%\n" "$health"
printf "Aging: %.0f%%\n" "$average"
echo "======================================"Dosya: /home/linuxmaster/Masaüstü/donanım_ömür_hesaplama.sh
linuxmaster@notebook-pc:~/Masaüstü$ ./donanım_ömür_hesaplama.sh
Enter date and time (YYYY-MM-DD HH:MM:SS) or only date:
2026-04-01 20:00:00
Elapsed time: 3.42 years
-----------------------------------
Device: Laptop
Lifetime range: 3 - 8 years
Status: NORMAL
Wear: 43%
-----------------------------------
Device: SSD
Lifetime range: 5 - 10 years
Status: NEW
Wear: 34%
-----------------------------------
Device: HDD
Lifetime range: 3 - 5 years
Status: NORMAL
Wear: 68%
-----------------------------------
Device: Mouse
Lifetime range: 2 - 4 years
Status: AGING
Wear: 85%
-----------------------------------
Device: Cooler
Lifetime range: 5 - 10 years
Status: NEW
Wear: 34%
-----------------------------------
Device: DVD Drive
Lifetime range: 5 - 8 years
Status: NEW
Wear: 43%
-----------------------------------
=========== FINAL ANALYSIS ===========
Healthy: 53%
Aging: 47%
======================================
linuxmaster@notebook-pc:~/Masaüstü$
NOT :
“Aging” demek:
Yaşlanmış / Ömrünün sonuna yaklaşan
Yani
Parçalar hâlâ çalışıyor
Ama yıpranmış
Arıza riski artmış
Yani Healthy: 53% > Aging: 47%
Betiğe göre ne fazla 10-11 sene daha bu donanım seti rahat gider.Ondan sonrası Allah(c.c) kerim....