backup su disco esterno anche Mac OS X [Risolto]

Se sei un utente alle prime armi con Linux o Sabayon, questo è il posto che fa per te :)

Moderator: Moderators

Post Reply
Giorgio Cadorini
Baby Hen
Posts: 9
Joined: Sun May 01, 2016 15:45

backup su disco esterno anche Mac OS X [Risolto]

Post by Giorgio Cadorini » Fri May 27, 2016 11:33

Salve, posso fare un backup del mio profilo utente su un disco rigido esterno che precedentemente ho usato per un Apple con Mac OS X, senza eliminare l'ultima istantanea del Mac?

Se sì, quali sono i primi passi? (Incluso software da utilizzare.)

Se no, quali sono i primi passi per fare backup su un disco rigido esterno? (Incluso software da utilizzare.)

Ho l'ambiente Xfce.
Last edited by Giorgio Cadorini on Wed Jun 08, 2016 16:14, edited 2 times in total.

specialworld83
Simple Hen
Posts: 98
Joined: Sat Nov 10, 2007 11:16
Contact:

Re: backup su disco esterno anche Mac OS X

Post by specialworld83 » Sun May 29, 2016 9:07

Il disco com'è formattato? Puoi usare clonezilla oppure reso backup.
Image
Image

Giorgio Cadorini
Baby Hen
Posts: 9
Joined: Sun May 01, 2016 15:45

Re: backup su disco esterno anche Mac OS X

Post by Giorgio Cadorini » Thu Jun 02, 2016 11:21

Il disco esterno è probabilmente formattato come HFS+.

Non ricordo come lo formattai, ma lo deduco da questa cartella:
/run/media/minosse/Backup di Time Machine/.HFS+ Private Directory Data/

User avatar
sabayonino
Sagely Hen
Posts: 3290
Joined: Sun Sep 21, 2008 1:12
Location: Italy
Contact:

Re: backup su disco esterno anche Mac OS X

Post by sabayonino » Thu Jun 02, 2016 11:44

Mac è un cugino del pinguino , "Timemachine" lavora con rsync e mantiene i permessi dei files anche per i filesystemm di casa Apple (al contrario di quelli di Redmond dove la potenza di rsync è resa vana...)

il software che più si avvicina a timemachine , potrebbe essere "Backintime"

Code: Select all

app-backup/backintime
ma ce ne sono molti altri (DejaDup,rsnapshot fsarchiver...) dipende dai gusti.

potresti fare delle prove e vedere come si comporta e se ti soddisfa.

ah ... ovviamente fai una copia di backup dei dati prima di lavorarci sopra :mrgreen:

============================================================
Uno scriptino veloce veloce e personalizzabile per un "Timemachine" molto rustico. (per tutti gli utenti che possiedono una /home)
(oltre ai vari backup-manager rsnapshot ed altro...)

Code: Select all

#!/bin/bash

clear

if [ "$(id -u)" != "0" ]; then
   echo "Lo script deve essere eseguito da root." 1>&2
   exit 1
fi

# Imposta un suffisso data in formato : YYYYMMDD-HH:MM:SS 
DATA=$(date +%Y%m%d-%H:%M:%S)

# Elenco degli utenti che hanno una /home in una matrice
USER=($(grep home /etc/passwd | awk -F":" '{print $1}'))

# Rimuovere i backup più vecchi di N giorni
OLD="30"

# Elenco delle directory e files da escludere dal backup (percorso relativo) in una matrice
# personalizzabili . I seguenti percorsi sono a scopo dimostrativo.
EXCLUDE=(
backups
Scaricati
Downloads
*VirtualBox*
iso
torrent
.cache
.thumbnails
.local/share/[Tt]rash
**.iso
**.flac
**.VDI
**.mkv
)

# crea l'opzione di esclusione da passare a RSYNC
for i in "${!EXCLUDE[@]}"
do
EXCLUDE[i]="--exclude=${EXCLUDE[i]}"
done

# Eventuali opzioni da passare ad RSYNC
OPTIONS="${EXCLUDE[@]} --xattrs "

# Inizio del backup per ogni utente (Se nel sistema esiste solo un utente sarà di questo)
for i in ${USER[@]} ; do

# Imposta la directory sorgente (potrebbe essere anche solo una directory interna alla /home/<user>)
SOURCE=(/home/$i)
# oppure singolarmente 
# SOURCE=(/home/$i/Documenti /home/$i/Foto ...)


# Per effettuare backup singoli di più directory interne dell'utente 
# (se non esiste passa al valore successivo)
# Esempio : SOURCE="/home/$i/Scripts /home/$i/Documenti"
# Effettuerà il backup di "Scripts" e "Documenti" per gli utenti che avranno quelle directory

for bk in ${SOURCE[@]} ; do
if [[ ! -d $bk ]] ; then continue ; fi

# Imposta la directory di salvataggio del backup.Se non esiste viene creata.
# Imposta la directory di salvataggio del backup.Se non esiste viene creata.
DEST="$SOURCE/backups/snapshots"
TARDIR="$DEST/archivi" 
if [[ ! -d $TARDIR ]] ; then mkdir -p $TARDIR ; fi

# Suffisso per il nome del backup che richiama la directory sorgente
# Esempio : <user>-Documenti     se  SOURCE=/home/Si/Documenti
SUFF="$i-$(basename $bk)"
if [[ "$(basename $bk)" == "$i" ]] ; then SUFF="$i-home" ; fi

# Rimuove i backup più vecchi (dipende dalla variabile OLD impotata precedentemente)
find $DEST -maxdepth 1 -type d -mtime +$OLD -exec rm -rf {} \;

# Se ancora non esiste nessun backup , ne viene effettuato uno completo...
if [[ -z $(ls $DEST  | grep $SUFF) ]] ; then
   echo "Primo backup completo di $SUFF : $DATA-$SUFF"
   rsync $OPTIONS -a $SOURCE $DEST/$DATA-$SUFF/
   echo ; echo "Backup di $SUFF terminato."
else

# ...altrimenti crea un backup differenziale
LAST=$(ls $DEST | grep $SUFF | tail -n1)
echo "Ultimo backup : $LAST"
echo "Backup attuale: $DATA-$SUFF"
rsync $OPTIONS -au --link-dest=../$LLAST $SOURCE $DEST/$DATA-$SUFF/
echo "Backup differenziale di $SUFF terminato."
fi

# Se eseguito con cron , verrà creato anche un tarball dell'ultimo snapshots ogni primo del mese.
DAY="01"
if [[ $(date +%d) == "$DAY" ]] ; then 
    find $TARDIR -type f -mtime +$OLD -exec rm -f {} \;
    echo "Creazione del Tarball dell'ultimo snapshot [ $DATA-$SUFF ]"
    tar  --exclude=$TARDIR --ignore-failed-read -cpf - $DEST/$LAST | bzip2 -9 > $TARDIR/$DATA-$SUFF.tbz2 2>/dev/null
fi

# Cambia i permessi di accesso alla directory di backup a seconda dell'utente analizzato
# Un utente (escluso root) non può analizzare il contenuto degli altri utenti
chown $i:$i $DEST/$DATA-$SUFF && chmod 700 $DEST/$DATA-$SUFF
done
done

# Imposta un dipsositivo esterno (o interno) con etichetta (label) XXXX per la copia dei backup
# effettuati su altro dispositivo , mantenendone gli hard-links
# Nell'Esempio etichetta su HDD esterno impostata su "backup"
LABEL="backup"
HDD=$(blkid -L "$LABEL")

# Imposta il punto di mount per il dispositivo esterno (se rilevato)
HDDBK="/mnt/backup"
TIMEMCN="$HDDBK/timemachine"
mkdir -p $HDDBK
if [[ -b $HDD ]] ; then
        mount $HDD $HDDBK 2>/dev(null
        if [[ ! -d $TIMEMCN ]] ; then mkdir -p $TIMEMCN ; fi
        cd $DEST
        echo "Copia dei backups su supporto esterno con etichetta == $LABEL == ..."
        find . -depth -print | cpio -pdm $TIMEMCN 2>/dev/null
# Anche qui rimuove i backup più vecchi di N giorni (decommentare se desiderato)
        # find $TIMEMCN -maxdepth 1 -type d -mtime +$OLD -exec rm -rf {} \;
        echo "Copia dei backups sul supporto esterno terminata."
        umount -l $HDD
        if [[ $? -eq 0 ]] ; then
        echo "Dispositivio esterno smontato con successo."
        else
        echo "Il dispositivo esterno non è stato smontato correttamente.Uscita con errore."
        exit 1
fi
[Che Cos'è Il Calcolo Distribuito (BOINC)

BOINC ready ! Sabayon+BOINC = BILD ,my Sabayon spin :cyclops: - Ready to crunch for the Science everywhere :)

Giorgio Cadorini
Baby Hen
Posts: 9
Joined: Sun May 01, 2016 15:45

Re: backup su disco esterno anche Mac OS X

Post by Giorgio Cadorini » Wed Jun 08, 2016 16:07

Soluzione parziale. Alla fine ho deciso di partizionare il disco formattando una partizione come HFS+, dove ho registrato un nuovo backup dell'Apple che ho abbandonato passando a Linux. Con la riformattazione compiuta dal DiskUtility delll'Apple originario ho potuto ristabilire i permessi, consentendo anche ad altri computer di scrivere sul disco esterno.

Poi ho formattato usando Gparted l'altra partizione come ext4 sul nuovo computer animato da Sabayon e ci sto facendo il backup di tutto il nuovo computer (con il quale compilo questa relazioncina). Ho utilizzato Backintime (root): questo *root* è fondamentale per avere accesso a tutti i dati di Sabayon.

Post Reply