++ fix detect_disk

This commit is contained in:
2026-02-03 10:25:44 +01:00
parent 06c3e06c50
commit df0bbebade

View File

@@ -52,32 +52,20 @@ if [[ $EUID -ne 0 ]]; then
exit 1
fi
# Rileva i dischi
DISKS=($(detect_disks | grep "^/dev/" || echo ""))
# Funzione per rilevare i dischi
detect_disks() {
local disks=()
# Verifica se pv è installato
echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}"
if ! command -v pv &> /dev/null; then
echo -e "${YELLOW}pv (Pipe Viewer) non è installato. Installazione in corso...${NC}"
apt-get update -qq && apt-get install -y pv || yum install -y pv || {
echo -e "${RED}Impossibile installare pv. Installa manualmente: apt-get install pv${NC}"
exit 1
}
# Scansiona tutti i device da sda a sdz
for device in /sys/block/sd*; do
if [[ ! -d "$device" ]]; then
continue
fi
# Verifica bc per i calcoli
if ! command -v bc &> /dev/null; then
echo -e "${YELLOW}bc non è installato. Installazione in corso...${NC}"
apt-get update -qq && apt-get install -y bc || yum install -y bc || {
echo -e "${RED}Impossibile installare bc. Installa manualmente: apt-get install bc${NC}"
exit 1
}
fi
echo -e "${GREEN}✓ Dipendenze OK${NC}"
echo ""
disk_name=$(basename "$device")
# Verifica connettività SSH
echo -e "${YELLOW}[3/6_name" | grep -qE "$EXCLUDE_DEVICES"; then
# Esclude dispositivi specifici
if echo "$disk_name" | grep -qE "$EXCLUDE_DEVICES"; then
continue
fi
@@ -107,20 +95,36 @@ echo -e "${YELLOW}[3/6_name" | grep -qE "$EXCLUDE_DEVICES"; then
echo ""
echo -e "${BLUE}Dischi da esportare: ${#disks[@]}${NC}"
echo "${disks[@]}"
printf '%s\n' "${disks[@]}"
}
# Rileva i dischi
echo -e "${YELLOW}[1/6] Rilevamento dischi...${NC}"
DISKS=($(detect_disks))
# Verifica se pv è installato
echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}"
if ! command -v pv &> /dev/null; then
echo -e "${YELLOW}pv (Pipe Viewer) non è installato. Installazione in corso...${NC}"
apt-get update -qq && apt-get install -y pv || yum install -y pv || {
echo -e "${RED}Impossibile installare pv. Installa manualmente: apt-get install pv${NC}"
exit 14/6
exit 1
}
fi
# Verifica bc per i calcoli
if ! command -v bc &> /dev/null; then
echo -e "${YELLOW}bc non è installato. Installazione in corso...${NC}"
apt-get update -qq && apt-get install -y bc || yum install -y bc || {
echo -e "${RED}Impossibile installare bc. Installa manualmente: apt-get install bc${NC}"
exit 1
}
fi
echo -e "${GREEN}✓ Dipendenze OK${NC}"
echo ""
# Verifica connettività SSH
echo -e "${YELLOW}[1/5] Verifica connettività verso ${REMOTE_HOST}...${NC}"
echo -e "${YELLOW}[3/6] Verifica connettività verso ${REMOTE_HOST}...${NC}"
if ! ssh -o ConnectTimeout=5 ${REMOTE_USER}@${REMOTE_HOST} "echo 'OK'" &> /dev/null; then
echo -e "${RED}Errore: Impossibile connettersi a ${REMOTE_USER}@${REMOTE_HOST}${NC}"
echo "Assicurati che SSH sia configurato e che la chiave pubblica sia installata."
@@ -130,7 +134,7 @@ echo -e "${GREEN}✓ Connessione SSH OK${NC}"
echo ""
# Verifica spazio su destinazione
echo -e "${YELLOW}[2/5] Verifica spazio disponibile su ${REMOTE_HOST}...${NC}"
echo -e "${YELLOW}[4/6] Verifica spazio disponibile su ${REMOTE_HOST}...${NC}"
REMOTE_SPACE=$(ssh ${REMOTE_USER}@${REMOTE_HOST} "df -BG ${REMOTE_PATH} | tail -1 | awk '{print \$4}' | sed 's/G//'")
echo -e "Spazio disponibile: ${REMOTE_SPACE} GB"
if [[ $REMOTE_SPACE -lt 30 ]]; then