++ fix detect_disk
This commit is contained in:
@@ -52,32 +52,20 @@ if [[ $EUID -ne 0 ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Rileva i dischi
|
# Funzione per rilevare i dischi
|
||||||
DISKS=($(detect_disks | grep "^/dev/" || echo ""))
|
detect_disks() {
|
||||||
|
local disks=()
|
||||||
# Verifica se pv è installato
|
|
||||||
echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}"
|
# Scansiona tutti i device da sda a sdz
|
||||||
if ! command -v pv &> /dev/null; then
|
for device in /sys/block/sd*; do
|
||||||
echo -e "${YELLOW}pv (Pipe Viewer) non è installato. Installazione in corso...${NC}"
|
if [[ ! -d "$device" ]]; then
|
||||||
apt-get update -qq && apt-get install -y pv || yum install -y pv || {
|
continue
|
||||||
echo -e "${RED}Impossibile installare pv. Installa manualmente: apt-get install pv${NC}"
|
fi
|
||||||
exit 1
|
|
||||||
}
|
disk_name=$(basename "$device")
|
||||||
fi
|
|
||||||
|
# Esclude dispositivi specifici
|
||||||
# Verifica bc per i calcoli
|
if echo "$disk_name" | grep -qE "$EXCLUDE_DEVICES"; then
|
||||||
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
|
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -107,20 +95,36 @@ echo -e "${YELLOW}[3/6_name" | grep -qE "$EXCLUDE_DEVICES"; then
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${BLUE}Dischi da esportare: ${#disks[@]}${NC}"
|
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
|
# Verifica se pv è installato
|
||||||
|
echo -e "${YELLOW}[2/6] Verifica dipendenze...${NC}"
|
||||||
if ! command -v pv &> /dev/null; then
|
if ! command -v pv &> /dev/null; then
|
||||||
echo -e "${YELLOW}pv (Pipe Viewer) non è installato. Installazione in corso...${NC}"
|
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 || {
|
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}"
|
echo -e "${RED}Impossibile installare pv. Installa manualmente: apt-get install pv${NC}"
|
||||||
exit 14/6
|
exit 1
|
||||||
}
|
}
|
||||||
fi
|
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
|
# 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
|
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 -e "${RED}Errore: Impossibile connettersi a ${REMOTE_USER}@${REMOTE_HOST}${NC}"
|
||||||
echo "Assicurati che SSH sia configurato e che la chiave pubblica sia installata."
|
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 ""
|
echo ""
|
||||||
|
|
||||||
# Verifica spazio su destinazione
|
# 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//'")
|
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"
|
echo -e "Spazio disponibile: ${REMOTE_SPACE} GB"
|
||||||
if [[ $REMOTE_SPACE -lt 30 ]]; then
|
if [[ $REMOTE_SPACE -lt 30 ]]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user