Reduzir automaticamente o backup existente do Time Machine para um tamanho fixo


11

Pesquisei por horas no Google para encontrar uma solução para esse problema, mas não consegui encontrar uma resposta adequada ao meu problema.

Minha configuração:

  • Eu tenho um iMac com um disco rígido de ~ 1 TB
  • Estou fazendo o backup via Time Machine para um Synology NAS DS214 + com ~ 2.7 TB de espaço

Meu problema:

  • Esqueci de definir um limite de tamanho para o usuário de backup. O meu Time Machine Backup usa cerca de 2,3 TB de espaço. Isso não é legal.
  • Não consigo definir uma cota para o usuário do Synology, porque ele começa a contar a partir de zero.

O que eu quero fazer:

  • Se for possível, desejo que o Time Machine Backup encolha automaticamente até um limite de ~ 1,5 TB, excluindo os backups mais antigos.
  • Quero que o pacote esparso não fique mais grande.

Alguém de vocês vê uma solução? Ou tenho que excluir todos os meus backups antigos para alcançar minha meta?


Apenas para sua informação: estou usando o OS X Yosemite 10.10.3 e o firmware atual no meu Synology NAS.
31515 Michael

Respostas:


3

O Time Machine respeitará uma determinação de tamanho - mas somente quando você fizer o contêiner . Essa funcionalidade é tudo o que a Apple fornece para backup nativo; portanto, você precisa de uma configuração personalizada para fazer o que pede e não pode limitar as coisas depois de começar a fazer o backup em um contêiner.

No futuro, se você quiser criar um novo contêiner restrito, o conceito não é difícil de mapear.

  • crie um novo contêiner na sinologia e certifique-se de impor as restrições de tamanho ao iniciar o processo.

O Server.app faz isso com facilidade - não conheço o código de sinologia que fez a engenharia reversa desse recurso, mas ficaria surpreso se não estiver no GitHub ou publicado em algum lugar público.

Nesse ponto, você pode excluir todos os backups de pastas de usuários grandes e, bloco a bloco, copiar os dados antigos do backup para o novo destino e herdar o backup.

Você também pode diminuir os intervalos de backup na linha de comando ou fazer o script dessa automação também.

Muito e muito trabalho, mas pode valer a pena como projeto, se alguém estiver inclinado.

Quando estou no seu lugar, apenas copio o backup "grande demais" antigo para um disco rígido off-line, o coloco em uma prateleira e recomeço com novos backups do tamanho que você desejar. Em 6 meses ou um ano - limpe a unidade antiga, a menos que você realmente sinta que precisa dessa história mais antiga.


Exatamente o que fiz: comecei com um novo Time Machine Backup. Obrigado por responder!
28517 Michael

O TimeMachine tem uma configuração para definir um Maxsize para o pacote esparso, mas, na minha experiência, isso só funciona para novos pacotes esparsos, não para os existentes. A única solução para o problema dele é excluir backups antigos e minha solução é a melhor maneira de fazer isso.
Robert Barrueco

Concordou - devo negrito o , mas somente quando você faz o recipiente ou mudança que para ser mais claro @RobertBarrueco
bmike

Descobri que o "Disk Utility" poderia redimensionar o contêiner do Time Machine se tivesse espaço livre no seu interior, o que fazia com que o Time Machine usasse o novo e menor tamanho de contêiner como limite. Isso foi no meu Time Capsule. Meu palpite é que o contêiner inicial seja construído a partir do espaço livre disponível.
Thorbjørn Ravn Andersen

2

Esta é a solução mais fácil usando o OSX Terminal.

Obtenha uma lista de todos os backups no TimeMachine. Isso também mostrará o caminho completo do diretório para os backups necessários na etapa 2 ...

$ tmutil listbackups

/Volumes/Time Machine Backups/Backups.backupdb/{your-macbook}/2018-10-02-213405
/Volumes/Time Machine Backups/Backups.backupdb/{your-macbook}/2018-10-09-192323
/Volumes/Time Machine Backups/Backups.backupdb/{your-macbook}/2018-10-19-212659

Escolha os backups a serem excluídos com base na data deles. Observe o uso de um curinga * e o uso do diretório da etapa 1. Por exemplo, para excluir todos os backups de 2018, você usaria o seguinte:

$ sudo tmutil delete '/ Volumes / Backups da máquina do tempo / Backups.backupdb / {your-macbook} / 2018 -' *

O passo final é reduzir e recuperar o espaço do pacote esparso. Procure na sua unidade de backup o arquivo .sparsebundle.

$ sudo hdiutil compact '/Volumes/{your-mac}.sparsebundle'


Como isso reduz automaticamente o backup para um tamanho específico, conforme solicitado pelo OP?
nohillside

0

Reduza o volume de backup para o tamanho desejado. O Time Machine foi projetado para continuar adicionando backups até o volume ficar cheio e, em seguida, remover cópias mais antigas. NÃO foi projetado para compartilhar espaço de armazenamento com outras coisas, nem para deixar X gigabytes livres no destino.


5
Bem, não posso diminuir o volume, porque ele já ocupa mais espaço do que o desejado. Esse é meu problema.
5605 Michael

11
como você diminuiria o volume?
jmh

0

Concordo com a resposta dada anteriormente, embora o que você possa tentar seja excluir manualmente os backups do Time Machine (por seu próprio risco).

Se você montar o volume, há uma pasta chamada "Backups.backupdb" (ela pode parecer um pouco diferente nos backups remotos). Dentro dele, terá o nome do seu computador e, em seguida, as datas ou os volumes, ou vice-versa (desculpe, atualmente estou fora do meu próprio Mac e não consigo verificar a ordem exata).

Se você remover algumas pastas de datas anteriores, liberará algum espaço para redimensionar o volume.

NOTA: Lembre-se de que o Time Machine é um backup incremental usando links físicos para arquivos inalterados. Portanto, a remoção de uma pasta de data pode não remover a quantidade de espaço em que afirma ser dimensionada.


2
Este site diz para excluir seus backups usando sudo tmutil delete.
Harvey

O Time Machine compartilha arquivos inalterados por hardlink. Se você excluir um backup inteiro, os arquivos usados ​​por outros backups não serão excluídos, apenas os links.
WGroleau 11/1118

0
momomo.com.apple.timemachine.backups.list() {
        tmutil listbackups
}
momomo.com.apple.timemachine.backups.compact() {
        local leave="${1}";

        if [[ "${leave}" == "" ]]; then leave="5"; fi

        local backups=(
                $(momomo.com.apple.timemachine.backups.list)
        )

        local length="${#backups[@]}"
        local     to="(("${length}"-"${leave}"))"

        local i=0; while [[ "${i}" -lt "${to}"  ]]; do
                local backup="${backups[i]}"

                sudo tmutil delete "${backup}"

                echo -e "\n\n"

                ((++i))
        done   
}

Exemplo:

# To leave last 10 on disk and remove all previous before
momomo.com.apple.timemachine.backups.compact 10 

Pode ser chamado repetidamente.

    Deleting: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-21-001329
    Deleted (4.6G): /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-21-001329
    Total deleted: 4.6G

    Deleting: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-28-001355
    Deleted (5.1G): /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2019-12-28-001355
    Total deleted: 5.1G

    Deleting: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2020-01-04-001349
    Deleted (6.6G): /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2020-01-04-001349
    Total deleted: 6.6G

    Deleting backup: /Volumes/backupdisk-1/Backups.backupdb/m-desktop-2/2020-01-11-002303
    ...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.