Skip to content

Instantly share code, notes, and snippets.

@szabbenjamin
Created April 7, 2025 21:11
Show Gist options
  • Select an option

  • Save szabbenjamin/4ee20101ed3a5607c7c4adfe56dac1a7 to your computer and use it in GitHub Desktop.

Select an option

Save szabbenjamin/4ee20101ed3a5607c7c4adfe56dac1a7 to your computer and use it in GitHub Desktop.
proxmox_disks.sh
#!/bin/bash
echo "Merevlemezek listázása sorozatszámmal, modellel, kapacitással és használati állapottal (Proxmox-specifikus, UUID ellenőrzéssel)"
# Ellenőrizd, hogy a szükséges eszközök telepítve vannak-e
if ! command -v lsblk &> /dev/null || ! command -v smartctl &> /dev/null || ! command -v blkid &> /dev/null; then
echo "A script futtatásához telepítsd a következő csomagokat: lsblk, smartmontools, blkid"
exit 1
fi
# Listázza az összes fizikai merevlemezt
drives=$(lsblk -nd -o NAME,TYPE | awk '$2=="disk" {print $1}')
for drive in $drives; do
device="/dev/$drive"
# Sorozatszám lekérdezése
serial=$(sudo smartctl -i "$device" | grep "Serial Number" | awk -F': ' '{print $2}')
if [ -z "$serial" ]; then
serial="N/A"
fi
# Lemez modellje
model=$(sudo smartctl -i "$device" | grep "Device Model\|Model Number" | awk -F': ' '{print $2}')
if [ -z "$model" ]; then
model="N/A"
fi
# Lemez kapacitása
size=$(lsblk -nd -o SIZE "$device")
# Használat ellenőrzése
status="Nincs használatban"
vmid="N/A"
# 1. Ellenőrizd, hogy része-e egy ZFS pool-nak
if zpool status | grep -q "$drive"; then
status="Használatban (ZFS pool)"
fi
# 2. Ellenőrizd, hogy része-e egy LVM volume group-nak
if pvs | grep -q "$drive"; then
status="Használatban (LVM)"
fi
# 3. Ellenőrizd, hogy van-e csatolva partíció
mountpoints=$(lsblk -nr -o MOUNTPOINT "$device"* | grep -v '^$')
if [ -n "$mountpoints" ]; then
status="Használatban (csatolva: $mountpoints)"
fi
# 4. Ellenőrizd, hogy használja-e bármilyen virtuális gép (UUID alapján)
uuids=$(blkid -o value -s UUID "$device"* 2>/dev/null)
for uuid in $uuids; do
# Megnézi, hogy az UUID szerepel-e bármelyik VM konfigurációs fájlban
for config in /etc/pve/qemu-server/*.conf; do
if grep -q "$uuid" "$config"; then
status="Használatban (VM-hez rendelve UUID alapján)"
vmid=$(basename "$config" .conf)
break 2
fi
done
done
echo "Eszköz: $device"
echo " Sorozatszám: $serial"
echo " Modell: $model"
echo " Kapacitás: $size"
echo " Állapot: $status"
echo " VM ID: $vmid"
echo ""
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment