From df0bbebade3a816b6e5cbc909d5016add6b5afa3 Mon Sep 17 00:00:00 2001 From: Francesco Picone Date: Tue, 3 Feb 2026 10:25:44 +0100 Subject: [PATCH] ++ fix detect_disk --- exportdisk.sh | 64 +++++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/exportdisk.sh b/exportdisk.sh index 7a06343..63feea1 100644 --- a/exportdisk.sh +++ b/exportdisk.sh @@ -52,32 +52,20 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi -# Rileva i dischi -DISKS=($(detect_disks | grep "^/dev/" || echo "")) - -# 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 - } -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}[3/6_name" | grep -qE "$EXCLUDE_DEVICES"; then +# Funzione per rilevare i dischi +detect_disks() { + local disks=() + + # Scansiona tutti i device da sda a sdz + for device in /sys/block/sd*; do + if [[ ! -d "$device" ]]; then + continue + fi + + disk_name=$(basename "$device") + + # 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