O que o Time Machine está fazendo?

18

Às vezes, o OS X me diz que está "Preparando o backup ..." por uma quantidade enorme de tempo. O tempo que leva parece não ter correlação com a quantidade de dados a serem copiados. O mesmo para o estágio "Finalizando backup ...".

A pergunta: o que o OS X está fazendo quando está "Preparando o backup ..." e "Concluindo o backup ..."?

Eu sei que é descobrir o que fazer backup e depois registrar as alterações, mas certamente o tempo que isso leva deve ser proporcional à quantidade de dados que foram alterados. Há muito espaço em disco (então suponho que não esteja excluindo backups antigos). Estou usando um TimeCapsule, se isso faz alguma diferença. Nada está errado com isso, só estou curioso.

Stephen Darlington
fonte

Respostas:

20

Aqui está a resposta de outro fórum (pôster original desconhecido para mim):

O estágio "preparação" no Time Machine geralmente é rápido, porque o Time Machine usa um log de atividades do sistema de arquivos para saber onde encontrar as alterações que precisam ser copiadas.

Mas há coisas que você pode fazer para tornar esse registro não confiável. Quando o Time Machine descobre que o log PODE não ser válido, ele faz uma varredura completa do seu sistema de arquivos para determinar o que realmente precisa ser copiado. Isso pode demorar um pouco. No meu Powerbook (e com uma unidade Time Machine externa firewire), pode resultar em um estágio de "preparação" que dura 20 minutos. Se você deixar o Time Machine continuar, ele descobrirá o que realmente precisa ser adicionado ao disco de backup e continuará. Obviamente, isso é melhor do que apenas apostar que o log está correto ou apenas fazer o backup de TUDO novamente, embora apenas alguns arquivos possam ter sido alterados (o que levaria muito mais tempo e consumiria mais espaço em disco do Time Machine).

Nos primeiros dias das instalações do Leopard, uma das coisas mais comuns que você pode fazer que tornará o registro não confiável é a inicialização no DVD de instalação do Leopard. Sempre que você fizer isso, na próxima vez em que o Time Machine for executado, descobrirá que o seu disco rígido PODE ter sido modificado sem que as alterações sejam refletidas no log. É o que faz a varredura completa - um longo estágio de "preparação" - para garantir que tudo aconteça.

Comandante Keen
fonte
Na verdade, os logs não são usados ​​apenas pelo Time Machine. E é o seu Mac que pode declarar os registros antigos inválidos. Você pode procurar no Console para fseventsdver "logon de eventos / Volumes / .. fora de sincronia com o volume. Destruindo logs antigos". Um log recém-criado também terá um novo identificador, que não corresponderá mais ao ID armazenado no backup. Isso indica ao Time Machine para comparar seu disco rígido com o último backup. Se alguém usar vários discos de backup, se fseventsdcriar um novo log, o Time Machine acabará executando um "UUIDs de armazenamento de eventos não coincidem" para cada disco de backup.
Arjan #
A montagem da unidade no Windows usando um driver de sistema de arquivos de leitura / gravação como o MacDrive também acionará uma verificação completa do sistema de arquivos na próxima vez que o Time Machine fizer o backup. (Montagem da unidade utilizando o driver de sistema de arquivos somente leitura no Boot Camp, por outro lado, não)
Brant
10

Para complementar a resposta do comandante Keen, recomendo a leitura aprofundada do Time Machine da Earthling Soft. Além disso, mais informações são registradas em system.log por backupd (que dirá por que o status de preparação é tão longo e tal)

Chealion
fonte
11
+1 - excelente artigo!
Commander Keen
Ótimo artigo. Gostaria de poder marcar duas respostas como aceitas!
217 Stephen
O Ars Technica tem outro bom artigo, mas acho que o link do Earthling Soft cobriu tudo: arstechnica.com/apple/reviews/2007/10/mac-os-x-10-5.ars/14 E para os desenvolvedores que estão lendo isso: consulte um hands-on em developer.apple.com/mac/articles/cocoa/filesystemevents.html
Arjan
10

Para visualizar facilmente o backupdlog, dê uma olhada no widget Time Machine Buddy . Observe também que há outro log no próprio disco de backup, no arquivo oculto, .Backup.logque pode ser encontrado na pasta de cada backup. Isso fornece outras informações além dos backupdlogs.

Observe que frequentemente os logs mostram números que parecem não corresponder:

Não é necessário desbaste de pré-backup: 821,4 MB solicitados (incluindo preenchimento) [..]
Copiou 1630 arquivos (3,8 MB) do volume Macintosh HD.

Acima, menos arquivos são realmente copiados do que o previsto. Como o Time Machine conta com o FSEvents, que apenas reporta diretórios alterados, suponho que no exemplo acima, esses diretórios tenham um total de 821,4 MB em arquivos. Enquanto realmente copia os arquivos, o Time Machine compara os diretórios alterados no disco rígido com o backup e descobre que apenas arquivos de 3,8 MB foram realmente alterados.

Para ver o que foi gravado no backup, consulte TimeTracker (GUI) ou timedog (linha de comando). Observe que, mesmo quando executando como usuário administrador, algumas vezes esses programas precisam ser executados como root para ver todos os arquivos. Ao não fazer isso, essas ferramentas podem, por exemplo, não levar em consideração os backups dos logs e dados do MySQL, de propriedade de _mysql na roda de grupo :

cd "/ Volumes / Backup de 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 jul 20:05 dados

Nesses casos, as duas ferramentas reportam (silenciosamente) um tamanho total de backup menor e menos arquivos que os backupdlogs no console. Portanto, se os números não coincidirem com os logs, no TimeTracker:

sudo ~ / Downloads / TimeTracker.app / Conteúdo / MacOS / TimeTracker

Da mesma forma, para timedog:

cd "/ Volumes / Backup de XX / Backups.backupdb / XX" 
sudo ~ / Downloads / timedog

Para encontrar facilmente grandes ficheiros no seu disco rígido ver Disk Inventory X . Este programa não tem nada a ver com o Time Machine, mas pode ajudar a investigar problemas, como quando você se pergunta por que o backup é muito menor que o espaço usado no disco rígido. Observe que esse programa provavelmente sempre reportará menos espaço total em disco no título da janela do que na tela onde é possível selecionar qual disco investigar (mesmo quando estiver executando como root e escolhendo o menu Exibir, Mostrar tamanho físico do arquivo). Mas se o tamanho total relatado for realmente muito menor do que os totais reais usados ​​no seu Mac, poderá ser útil executar como root:

sudo "$ HOME / Downloads / Inventário de disco X.app/Contents/MacOS/Disk Inventory X"

Para remover arquivos do backup (como se você descobrisse que o Time Machine estava realmente fazendo backup de alguns arquivos enormes, como um arquivo de log MySQL descontrolado), a Apple escreve :

Deseja excluir todas as instâncias de um arquivo ou pasta cujo backup foi feito anteriormente? Bastante fácil. Inicie o Time Machine, selecione o item a ser excluído e escolha "Excluir de todos os backups" no menu de ações da barra de ferramentas do Finder.

Agora, se os arquivos que você deseja excluir estiverem visíveis apenas para a raiz, você deverá chamar "Enter Time Machine" como raiz também. E isso requer que o Finder seja iniciado como raiz primeiro:

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

Parece um Finder normal, mas você notará a raiz ao lado do ícone da pasta pessoal na barra lateral do Finder. Agora use Shift-Cmd-G (menu Ir, Ir para pasta) para acessar, por exemplo, /usr/locale localizar a pasta da qual você deseja excluir os arquivos do disco de backup. Em seguida, insira o Time Machine (e mais uma vez valide se a raiz é mostrada ao lado do ícone da pasta inicial) e siga as instruções da Apple. Quando terminar de excluir os arquivos do backup, pressione Ctrl-C no Terminal para interromper o localizador de raiz. (Também era necessário fazer logoff do meu Mac, pois o disco remoto não desmontava corretamente.)

Se você estiver usando um pacote esparso (como ao usar um backup na rede) , qualquer espaço liberado não será recuperado automaticamente (ou: não até que o espaço seja necessário). Para reforçar isso, consulte Como recuperar tudo mais espaço / livre de um sparsebundle no OS X . Isso não se aplica apenas aos arquivos removidos manualmente, mas também aos arquivos removidos pelo Time Machine para backups diários ou a cada hora expirados, durante o desbaste pós-backup .

O Time Machine, na verdade, compactará o pacote esparso propriamente dito, quando o espaço em disco acabar. Mas parece que ele pode primeiro excluir alguns backups antigos durante o pré-desbaste , então talvez seja aconselhável compactar manualmente se você já excluiu alguns arquivos grandes ou se os backups expirados podem ter incluído arquivos enormes:

Iniciando o desbaste de pré-backup: 53,57 GB solicitados (incluindo preenchimento), 
    9,90 GB disponíveis 
Não existem backups expirados - excluir backups mais antigos para liberar espaço 
Backup excluído / Volumes / Backup de XX / Backups.backupdb / XX / 2007-12-20-172543:
    9,90 GB agora disponíveis 
Backup excluído / Volumes / Backup de XX / Backups.backupdb / XX / 2007-12-31-005523:
    9,90 GB agora disponíveis 
2 backups excluídos: o backup mais antigo agora é 8 de janeiro de 2008 
Parando o backup. 
Backup cancelado. 
Imagem de disco ejetado do Time Machine. 
Compactando a imagem do disco de backup para recuperar o espaço livre 
Compactação de imagem de disco de backup concluída 
Iniciando o backup padrão
[..]
Iniciando o desbaste de pré-backup: 53,57 GB solicitados (incluindo preenchimento), 
    12.75 GB disponível

Muito obrigado a Adam Cohen-Rose por testar o exposto acima; veja o blog dele para mais detalhes!

Arjan
fonte
Alguns softwares podem se excluir do backup do Time Machine, definindo o atributo estendido com.apple.metadata:com_apple_backup_excludeItemem seus arquivos. Como as versões anteriores à 1.1.2 do VMware Fusion: blogs.vmware.com/teamfusion/2008/04/vmware-fusion-1.html Consulte também 10.5: Mostrar arquivos que o Time Machine não faz backup em macosxhints.com/article. ? php história = 20080328025026826 que inclui um link para o Time Machine Exclusões na shiftedbits.org/2007/10/31/time-machine-exclusions
Arjan
Consulte superuser.com/questions/35152/… para obter mais detalhes sobre como executar o Time Machine como root no Snow Leopard.
Arjan
1

Quando preso em "Preparando" (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;
}

Use lsof para ver quais arquivos os backups estão acessando - o último arquivo deve estar mudando:

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

Isso indica que está fazendo algo - e ser paciente ...

PaulS
fonte