Cosa sta facendo Time Machine?


18

A volte OS X mi dice che è "Preparare il backup ..." per un enorme periodo di tempo. Il tempo impiegato sembra non avere alcuna correlazione con la quantità di dati di cui eseguire il backup. Lo stesso vale per la fase "Finishing backup ...".

La domanda: cosa sta facendo OS X quando è "Preparazione backup ..." e "Finitura backup ..."?

So che sta cercando di capire cosa fare il backup e quindi di registrare le modifiche, ma sicuramente il tempo necessario dovrebbe essere proporzionale alla quantità di dati che sono cambiati. C'è molto spazio su disco (quindi suppongo che non stia eliminando i vecchi backup). Sto usando un TimeCapsule se questo fa la differenza. Non c'è niente che non va, sono solo curioso.

Risposte:


20

Ecco una risposta da un altro forum (poster originale a me sconosciuto):

La fase di "preparazione" in Time Machine è in genere veloce, poiché Time Machine utilizza un registro delle attività del file system per sapere dove trovare le modifiche di cui è necessario eseguire il backup.

Ma ci sono cose che puoi fare per rendere quel registro inaffidabile. Quando Time Machine scopre che il registro POTREBBE non essere valido, esegue una scansione completa del file system per determinare ciò di cui è necessario eseguire il backup. Questo può richiedere del tempo. Sul mio Powerbook (e con un'unità Time Machine esterna firewire) può provocare una fase di "preparazione" della durata di 20 minuti. Se lasci che Time Machine continui, alla fine capirà cosa deve davvero essere aggiunto al disco di backup e continuerà. Questo, ovviamente, è meglio che il semplice gioco d'azzardo il registro sia corretto o semplicemente il backup di TUTTO, anche se solo alcuni file potrebbero essere effettivamente cambiati (il che richiederebbe molto più tempo e consumerebbe più spazio su disco di Time Machine).

In questi primi tempi delle installazioni di Leopard, una delle cose più comuni che puoi fare per rendere il registro inaffidabile è l'avvio dal DVD di installazione di Leopard. Ogni volta che lo fai, alla successiva esecuzione di Time Machine scoprirà che il tuo disco rigido POTREBBE essere stato modificato senza che le modifiche si riflettano nel registro. Quindi esegue la scansione completa - una lunga fase di "preparazione" - per assicurarsi che le cose vadano bene.


In realtà, i registri non sono solo utilizzati da Time Machine. Ed è il tuo Mac che può dichiarare non validi i vecchi registri. Puoi cercare nella Console per fseventsdvedere "eventi registrati / Volumi / .. fuori sincrono con il volume. Distruggendo vecchi registri". Un registro appena creato avrà anche un nuovo identificatore, che non corrisponderà più all'ID memorizzato con il backup. Questo dice a Time Machine di confrontare il tuo disco rigido con l'ultimo backup. Se uno utilizza più dischi di backup, quindi se viene fseventsdcreato un nuovo registro, Time Machine verrà infine eseguito in un "UUID dell'archivio eventi non corrispondente" per ciascun disco di backup.
Arjan,

Il montaggio dell'unità in Windows utilizzando un driver di file system di lettura / scrittura come MacDrive attiverà anche una scansione completa del file system al successivo backup di Time Machine. (Il montaggio dell'unità utilizzando il driver del file system di sola lettura in Boot Camp, invece, non lo fa)
Brant

10

Per complimentarmi con la risposta del comandante Keen, consiglio di leggere uno sguardo approfondito a Time Machine di Earthling Soft. Inoltre ulteriori informazioni sono registrate su system.log da backupd (che dirà perché lo stato di preparazione è così lungo e così)


1
+1 - articolo eccellente!
Comandante Keen,

Ottimo articolo Vorrei poter contrassegnare due risposte come accettate!
Stephen Darlington,

Ars Technica ha un altro buon articolo, ma immagino che il link Earthling Soft abbia trattato tutto: arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14 E per gli sviluppatori che leggono questo: vedi un approfondimento su developer.apple.com/mac/articles/cocoa/filesystemevents.html
Arjan,

10

Per visualizzare facilmente il backupdregistro, dai un'occhiata al widget Time Machine Buddy . Si noti inoltre che esiste un altro registro sul disco di backup stesso, nel file nascosto .Backup.logche si trova nella cartella di ciascun backup. Ciò fornisce alcune informazioni diverse dai backupdregistri.

Si noti che spesso i registri mostrano figure che non sembrano corrispondere:

Nessun assottigliamento pre-backup necessario: 821,4 MB richiesti (incluso il riempimento) [..]
Copiato 1630 file (3,8 MB) dal volume Macintosh HD.

Sopra, in realtà vengono copiati meno file di quelli previsti per la prima volta. Dato che Time Machine si basa su FSEvents che riporta solo directory modificate, suppongo che nell'esempio sopra queste directory contenessero un totale di 821,4 MB di file. Durante la copia dei file, Time Machine confronta quindi le directory modificate sul disco rigido con il backup e rileva che sono stati effettivamente modificati solo 3,8 MB.

Per vedere cosa è stato scritto nel backup, vedere TimeTracker (GUI) o timedog (riga di comando). Si noti che, anche quando si esegue come utente amministratore, a volte questi programmi devono essere eseguiti come root per vedere tutti i file. In caso contrario, questi strumenti potrebbero, ad esempio, non prendere in considerazione i backup dei registri e dei dati di MySQL, di proprietà di _mysql nella ruota di gruppo :

cd "/ Volumes / Backup of XX / Backups.backupdb / XX / Latest"
sudo ls -l "Macintosh HD / usr / local / mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x --- @ 6 _mysql wheel 374 2 lug 20:05 data

In questi casi entrambi gli strumenti segnaleranno (silenziosamente) una dimensione di backup totale inferiore e un numero di file inferiore rispetto ai backupdregistri nella Console. Quindi, se i numeri non corrispondono ai registri, allora per TimeTracker:

sudo ~ / Download / TimeTracker.app / Sommario / MacOS / TimeTracker

Allo stesso modo, per il timedog:

cd "/ Volumes / Backup of XX / Backups.backupdb / XX" 
sudo ~ / Download / timedog

Per trovare facilmente file di grandi dimensioni sul disco rigido vedere Disk Inventory X . Questo programma non ha nulla a che fare con Time Machine, ma può aiutare a indagare sui problemi, come quando ti chiedi perché il tuo backup è molto più piccolo dello spazio utilizzato sul tuo disco rigido. Si noti che questo programma riporterà probabilmente sempre meno spazio su disco totale nel titolo della finestra rispetto alla schermata in cui è possibile selezionare il disco da esaminare (anche quando si esegue come root e si sceglie il menu Visualizza, Mostra dimensioni file fisiche). Ma se la dimensione totale riportata è davvero molto più piccola rispetto ai totali effettivi utilizzati sul tuo Mac, potrebbe essere utile eseguire come root:

sudo "$ HOME / Download / Inventario disco X.app/Contents/MacOS/Disk Inventory X"

Per rimuovere i file dal backup (come se scoprissi che Time Machine stava effettivamente eseguendo il backup di alcuni file di grandi dimensioni, come un file di registro MySQL in fuga), Apple scrive :

Vuoi eliminare tutte le istanze di un file o una cartella di cui è stato precedentemente eseguito il backup? Abbastanza facile. Avvia Time Machine, seleziona l'elemento da eliminare, quindi scegli "Elimina da tutti i backup" dal menu di azione nella barra degli strumenti del Finder.

Ora, se quei file che vuoi eliminare sono visibili solo alla radice, allora dovresti invocare "Enter Time Machine" anche come root. E questo richiede che Finder sia avviato come root prima:

sudo /System/Library/CoreServices/Finder.app/Contents/MacOS/Finder

Sembra un normale Finder, ma noterai il root accanto all'icona della cartella home nella barra laterale del Finder. Ora usa Shift-Cmd-G (menu Vai, Vai a cartella) per accedere, ad esempio, /usr/locale trovare la cartella da cui vuoi eliminare i file dal disco di backup. Quindi, inserisci Time Machine (e ancora una volta convalida che il root sia mostrato accanto all'icona della cartella home) e segui le istruzioni di Apple. Al termine dell'eliminazione dei file dal backup, premere Ctrl-C in Terminale per arrestare il root-Finder. (Avevo anche bisogno di disconnettermi dal mio Mac poiché il disco remoto non si sarebbe disinstallato correttamente.)

Se si utilizza un pacchetto sparso (come quando si utilizza un backup sulla rete), qualsiasi spazio liberato non verrà recuperato automaticamente (o: non fino a quando non sarà necessario lo spazio). Per applicare questo, vedere Come recuperare tutti / più spazio libero da uno sparsebundle su OS X . Ciò non si applica solo ai file rimossi manualmente, ma anche ai file rimossi da Time Machine per i backup orari o giornalieri scaduti durante l' assottigliamento post-backup .

Time Machine compatterà effettivamente il pacchetto sparso stesso, quando lo spazio su disco si esaurisce. Ma sembra che potrebbe prima eliminare alcuni vecchi backup durante l' assottigliamento pre-backup , quindi forse è saggio compattare manualmente se hai mai eliminato alcuni file enormi o se i backup scaduti potrebbero aver incluso file enormi:

Avvio dell'assottigliamento pre-backup: 53,57 GB richiesti (incluso il riempimento), 
    9,90 GB disponibili 
Non esistono backup scaduti: eliminazione dei backup più vecchi per fare spazio 
Backup eliminato / Volumi / Backup di XX / Backups.backupdb / XX / 2007-12-20-172543:
    9,90 GB ora disponibili 
Backup cancellato / Volumi / Backup di XX / Backups.backupdb / XX / 2007-12-31-005523:
    9,90 GB ora disponibili 
Eliminati 2 backup: il backup più vecchio è ora l'8 gennaio 2008 
Interruzione del backup. 
Backup annullato. 
Immagine disco espulso Time Machine. 
Compattazione dell'immagine del disco di backup per recuperare spazio libero 
Compattazione dell'immagine del disco di backup completata 
Avvio del backup standard
[..]
Avvio dell'assottigliamento pre-backup: 53,57 GB richiesti (incluso il riempimento), 
    12,75 GB disponibili

Mille grazie a Adam Cohen-Rose per aver testato quanto sopra; vedi il suo blog per maggiori dettagli!


Alcuni software potrebbero escludersi dal backup di Time Machine, impostando l'attributo esteso com.apple.metadata:com_apple_backup_excludeItemsui suoi file. Come le versioni precedenti alla 1.1.2 di VMware Fusion: blogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.html Vedi anche 10.5: Mostra i file di cui Time Machine non esegue il backup su macosxhints.com/article. php? story = 20080328025026826 che include un link alle esclusioni di Time Machine su shiftedbits.org/2007/10/31/time-machine-exclusions
Arjan

Consulta superuser.com/questions/35152/… per maggiori dettagli sull'esecuzione di Time Machine come root in Snow Leopard.
Arjan,

1

Se bloccato in "Preparazione" (ThinningPreBackup)

root# tmutil status
Backup session status:
{
    BackupPhase = ThinningPreBackup;
    ClientID = "com.apple.backupd";
    DateOfStateChange = "2018-10-20 12:02:54 +0000";
    DestinationID = "XXXXXX0A-1XB7-4X3B-A791-6XXXXX4325D89B";
    DestinationMountPoint = "/Volumes/TimeMachineXXX";
    Percent = "-1";
    Running = 1;
    Stopping = 0;
}

Usa lsof per vedere a quali file accedono i backup: l'ultimo file dovrebbe cambiare:

root# ps -ef | grep backupd
    0    91     1   0  9:39pm ??         0:00.15 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper -launchd
    0   552     1   0  9:59pm ??         0:49.54 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
    0  1244  1156   0 10:30pm ttys003    0:00.01 grep backupd
root# lsof -p 552
COMMAND PID USER   FD   TYPE DEVICE   SIZE/OFF     NODE NAME
backupd 552 root  cwd    DIR    1,4       1292        2 /
backupd 552 root  txt    REG    1,4     769168 67640888 /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd
backupd 552 root  txt    REG    1,4   26771408 67698052 /usr/share/icu/icudt59l.dat
backupd 552 root  txt    REG    1,4     236208 67730774 /private/var/db/timezone/tz/2018e.1.0/icutz/icutz44l.dat
backupd 552 root  txt    REG    1,4     841456 67695858 /usr/lib/dyld
backupd 552 root  txt    REG    1,4 1174183936 69140457 /private/var/db/dyld/dyld_shared_cache_x86_64
backupd 552 root    0r   CHR    3,2        0t0      306 /dev/null
backupd 552 root    1u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    2u   CHR    3,2        0t0      306 /dev/null
backupd 552 root    3w   REG    1,9        686  5515544 /Volumes/TimeMachine2/Backups.backupdb/XXXXXXXXXX/2018-10-20-220254.inProgress/.Backup.561729775.162983.log
backupd 552 root    4r   DIR    1,4        136 68977542 /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/tvOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks/CoreLocation.framework/English.lproj

Questo indica che sta facendo qualcosa - ed essere paziente ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.