Questão Excluir pastas por regex (?) Do backup da máquina do tempo


Eu uso um servidor Time Machine para meus backups. Enquanto isso, estou desenvolvendo muitas aplicações web onde o projeto geralmente consiste em uma pasta com os arquivos de aplicativos que eu quero fazer backup e node_modules pasta (bibliotecas externas) Eu não quero fazer backup. Em outras palavras, a estrutura da pasta, por ex. é:

projects
-- app1
---- src
---- node_modules -- I want to ignore only this folder
---- package.json
-- app2
---- whatever-else
---- node_modules -- I want to ignore only this folder
---- package.json
---- elephant.jpg

etc.

A quantidade de aplicativos é grande e crescente (atualmente mais de 20), o tamanho node_modules A pasta é geralmente milhares de vezes maior que o resto do projeto: o tamanho é enorme e a quantidade de arquivos também.

Como excluir todo o node_modules pastas dentro de todo o sistema (como .gitignore mas para a máquina do tempo)? Existe alguma maneira de fazer isso por máscara? Eu simplesmente não quero adicionar a pasta às pastas excluídas manualmente o tempo todo.

Eu também estou bem com um cron script que procura as novas pastas a cada N minutos e faz com que elas sejam ignoradas.

Existem soluções para isso?


4


origem


Se a minha resposta resolveu o seu problema, clique na marca de seleção abaixo da minha resposta para marcar sua pergunta como resolvida. - Hydraxan14


Respostas:


Você pode encontrar e excluir todos node_modules pastas do caminho atual, por ex. no seu diretório home (~), como isso:

$ find `pwd` -maxdepth 3 -type d -name 'node_modules' | xargs -n 1 tmutil addexclusion

Parabéns ao @peterdemartini: https://gist.github.com/peterdemartini/4c918635208943e7a042ff5ffa789fc1

Observe que as pastas excluídas não aparecerão nas Preferências do Sistema do Time Machine ou ao executar este comando:

$ defaults read /Library/Preferences/com.apple.TimeMachine.plist SkipPaths

Quando você usa este comando (tmutil addexclusion), o item excluído permanece na lista de exclusão do Time Machine, mesmo que você o mova, o que não é o caso quando você exclui itens do painel de preferências do Time Machine. Se você usar o comando acima com o sinalizador -p, ele não ficará fixo e será o mesmo que uma exclusão adicionada no painel de preferências do Time Machine.

https://www.macworld.com/article/2033804/control-time-machine-from-the-command-line.html


6



legal, vou tentar. Obrigado! - smnbbrv
Se você quiser ver uma lista exaustiva do que está sendo ignorado, você pode executar sudo mdfind "com_apple_backup_excludeItem = 'com.apple.backupd'"(crédito para apple.stackexchange.com/questions/25779/…) - CWSpear


Reddit Post

Achei um Reddit Post. É isso que você está procurando?

Em circunstâncias normais, o Time Machine é executado quando seu backup   a unidade está conectada ou uma hora após o backup mais recente,   o que vier por último. Você pode conseguir a mesma coisa com um lançamento   daemon do seu próprio. Você criaria um arquivo em    /Library/LaunchDaemons/local.tmupdate.plist e definir seu conteúdo para   algo assim.

Você então configuraria o script /usr/local/bin/tmupdate.sh limpar   a lista de exclusões antigas, recriá-lo com os novos, em seguida, iniciar   o backup em si:

#!/bin/sh
defaults delete /Library/Preferences/com.apple.TimeMachine.plist SkipPaths
mdfind 'kMDItemUserTags == "No Backup"' -0 | xargs -0 tmutil addexclusion
tmutil startbackup --auto

4



isso requer a marcação manual de arquivos ou pastas com uma tag nomeada No Backup. Eu acho que isso é muito manual - Gianfranco P.


Revivendo um post antigo, mas enquanto procurava a mesma coisa, acabei tentando ferramenta chamada Asimove funcionou muito bem para mim.

Asimov irá escanear diretórios procurando node_modules (nodeJs) ou vendor (compositor php), e excluir, em seguida, automaticamente a partir do próximo backup TimeCapsule. Ele também adicionará uma tarefa cron para atualizar essas exclusões.

Espero que isso ajude alguém.


1



Bem-vindo ao superusuário! Você pode expandir sua resposta um pouco? Apenas apontar para um produto não explica realmente como realizar a solução. É melhor incluir algumas instruções sobre como usar o produto para resolver o problema ou, pelo menos, descrever o que torna o produto uma boa solução, fornecendo valor além de um resultado aleatório do Google. Boa orientação sobre como recomendar software aqui: meta.superuser.com/questions/5329/…. Obrigado. - fixer1234