Borg: Marcando arquivos para "podar"?

Criado em 6 abr. 2016  ·  5Comentários  ·  Fonte: borgbackup/borg

Atualmente borg prune só pode restringir os arquivos a serem removidos por um prefixo comum. Isso funciona para esquemas de nomenclatura onde a parte "relevante para a poda" dos nomes dos arquivos está na frente, por exemplo, system-<hostname>-<date> e userdata-<hostname>-<date> , mas realmente não funciona para mais nada.

Adicionar tags, ou seja, uma lista de strings arbitrárias (excluindo "," que seria o separador de tags) ajudaria. "prune" e outros comandos usando "--prefix" obteriam uma opção "--tags", e apenas os arquivos que têm _todos_ (ou _qualquer_, discussão) as tags listadas seriam afetados (e eles deveriam ser imutáveis ​​por este motivo).


EDIT: abordagem diferente, talvez, sem campos de metadados extras, aplicável para trás .

Os nomes já estão lá. Poderíamos apenas adicionar algo como --tags some,tags (sempre usar , como delimitador aqui?) E --tag-delim - (qual delimitador é o padrão?).

tags = set(args.tags.split(args.tag_delim))
for archive in ...:
  if set(archive.name.split(args.tag_delim)) <= tags:
    ...  # prune
enhancement

Comentários muito úteis

Eu gostaria de superar esta solicitação de recurso para tags / aliases.

Depois de passar tanto tempo no universo git, me vejo desejando poder aplicar tags adicionais a arquivos borg específicos.

A incorporação de tags no nome do arquivo é atualmente possível, mas é bastante indisciplinado quando você deseja usar várias tags para um arquivo. Por exemplo, já uso o nome do arquivo para incorporar o nome do host, o carimbo de data / hora e um ou dois outros campos. Também quero adicionar outras tags, como "@latest" e "@ release-1". Isso fica confuso rapidamente. Pior, às vezes quero mover uma tag como @latest de um arquivo para outro.

Se você estiver usando o borg apenas para fazer backup de arquivos (garantido, sua missão original), provavelmente não haverá muita necessidade de tags. Mas se, como eu, você descobriu que a desduplicação do borg é extremamente útil em outras situações, como arquivar arquivos muito grandes usados ​​em um pipeline de análise de dados :-), então a capacidade de atribuir várias tags a um arquivo existente se torna muito importante.

Atualmente, minha solução é criar o arquivo original com o esquema de nomenclatura que desenvolvi e, em seguida, criar imediatamente vários arquivos adicionais com nomes que começam com "@" - @latest , @ v1.0, @ beta2 , etc. Cada um desses arquivos adicionais leva alguns minutos para digitalizar / criar e adiciona apenas algumas centenas de bytes ao repositório, uma vez que o conteúdo é completamente idêntico ao arquivo original. (Bem, contanto que os arquivos não tenham mudado nesses poucos minutos.)

Seria muito bom eliminar essa lentidão adicionando metadados de tag.

Eu imagino a IU sendo algo assim:

  • Crie uma nova tag e aponte-a para um arquivo existente:
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • Liste todas as tags e os arquivos para os quais elas apontam
    borg tag --list [repo]

  • A exclusão de tags pode reutilizar o comando borg delete ou também pode ser uma opção de comando:
    borg tag -d [repo] [tagname]

Obrigado por considerar isso!

Todos 5 comentários

Misturar nomes e tags parece sujo. As tags podem ser metadados de arquivo separados.

Bom ponto, mas não tenho certeza se isso não está certo aqui (como uma decisão de design). # 866 me fez pensar "Hm, para que _é_ o nome do arquivo realmente serve?". "Reciclar" para etiquetagem não é uma coisa muito limpa de se fazer, mas parece bastante prático para mim (se for 100% opt-in explícito). De certa forma, "tags" seria apenas uma maneira diferente de ver o campo "nome".

Eu gostaria de superar esta solicitação de recurso para tags / aliases.

Depois de passar tanto tempo no universo git, me vejo desejando poder aplicar tags adicionais a arquivos borg específicos.

A incorporação de tags no nome do arquivo é atualmente possível, mas é bastante indisciplinado quando você deseja usar várias tags para um arquivo. Por exemplo, já uso o nome do arquivo para incorporar o nome do host, o carimbo de data / hora e um ou dois outros campos. Também quero adicionar outras tags, como "@latest" e "@ release-1". Isso fica confuso rapidamente. Pior, às vezes quero mover uma tag como @latest de um arquivo para outro.

Se você estiver usando o borg apenas para fazer backup de arquivos (garantido, sua missão original), provavelmente não haverá muita necessidade de tags. Mas se, como eu, você descobriu que a desduplicação do borg é extremamente útil em outras situações, como arquivar arquivos muito grandes usados ​​em um pipeline de análise de dados :-), então a capacidade de atribuir várias tags a um arquivo existente se torna muito importante.

Atualmente, minha solução é criar o arquivo original com o esquema de nomenclatura que desenvolvi e, em seguida, criar imediatamente vários arquivos adicionais com nomes que começam com "@" - @latest , @ v1.0, @ beta2 , etc. Cada um desses arquivos adicionais leva alguns minutos para digitalizar / criar e adiciona apenas algumas centenas de bytes ao repositório, uma vez que o conteúdo é completamente idêntico ao arquivo original. (Bem, contanto que os arquivos não tenham mudado nesses poucos minutos.)

Seria muito bom eliminar essa lentidão adicionando metadados de tag.

Eu imagino a IU sendo algo assim:

  • Crie uma nova tag e aponte-a para um arquivo existente:
    borg tag [repo::archive-name] [tag1] [tag2] ...

  • Liste todas as tags e os arquivos para os quais elas apontam
    borg tag --list [repo]

  • A exclusão de tags pode reutilizar o comando borg delete ou também pode ser uma opção de comando:
    borg tag -d [repo] [tagname]

Obrigado por considerar isso!

Só comecei a experimentar o borg recentemente, mas queria marcar com +1 a ideia de marcação. Posso ver um caso de uso relevante para backups em que tags são usadas para definir em qual dos vários serviços de nuvem um arquivo é feito o backup. Eu imagino (com base em outras discussões) que o backup na nuvem provavelmente seria por meio de uma ferramenta separada que pega nas tags e, por exemplo, lida com a criação de um arquivo * .tgz para ser carregado. (Você pode até adicionar frequência de backup como uma tag detectável separada, mas esse tipo de coisa estaria dentro do escopo da ferramenta de backup, e não do próprio borg.)

Consulte o problema nº 2300 para uma possível implementação de tag. Atualmente é mais parecido com git tag que com rótulos do Gmail - em outras palavras, podem existir aliases adicionais para um arquivo, mas eles precisam ser exclusivos. Pode não ser difícil mesclar essa ideia com o que é discutido aqui - rótulos aplicados a vários arquivos.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

unlandm picture unlandm  ·  4Comentários

zatricky picture zatricky  ·  3Comentários

enkore picture enkore  ·  5Comentários

rugk picture rugk  ·  5Comentários

auanasgheps picture auanasgheps  ·  5Comentários