AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1454726
Accepted
jia103
jia103
Asked: 2019-07-01 15:10:52 +0800 CST2019-07-01 15:10:52 +0800 CST 2019-07-01 15:10:52 +0800 CST

comando tar para obter arquivos para backup periódico

  • 772

Que comando tar devo usar para obter arquivos alterados após uma determinada data - incluindo alterações de propriedade, permissões, etc. - mas excluindo arquivos que foram simplesmente restaurados do backup?

Por outro lado, seria preferível percorrer todos os arquivos após uma restauração e alterar o tempo de alteração de status de cada um como parte da restauração?

Eu tenho usado um comando semelhante ao seguinte para tar todos os arquivos modificados recentemente desde uma determinada data para um backup periódico do pobre homem:

$ SINCE=20190501
$ tar cf - --after-date="${SINCE} 00:00:00" . | tar tvf -

Este não é o comando real, mas ilustra o ponto que estou tentando enfatizar. Este comando simplesmente despeja a lista de arquivos que deveriam ir para o arquivo tar se eu estivesse enviando a saída para um arquivo tar.

Até agora, pensei que este comando estava funcionando bem até substituir meu disco rígido e restaurar todos os arquivos do backup. Olhando para a saída de stat, parece que a data de alteração é a data em que restaurei todos os arquivos do backup, então agora todos os arquivos estão sendo selecionados no meu comando tar acima.

$ stat restore_file.txt
...
Modify: 2019-04-01 23:52:12.000000000 -0500
Change: 2019-05-25 01:52:10.737688040 -0500

Mesmo --newer-mtimenão parece ajudar:

$ tar cf - --newer-mtime="${SINCE}" . | tar tvf -

ATUALIZAÇÃO: também tentei o seguinte, e isso também não ajudou em nada, pois ainda selecionava mais arquivos do que eu queria:

$ SINCE=201905010000
$ touch -t "${SINCE}" /tmp/timestamp
$ stat /tmp/timestamp
Access: 2019-05-01 00:00:00.000000000 -0500
Modify: 2019-05-01 00:00:00.000000000 -0500
Change: 2019-06-30 18:29:19.277267874 -0500
$ tar cf - --after-date /tmp/timestamp . | tar tvf -
linux tar
  • 1 1 respostas
  • 350 Views

1 respostas

  • Voted
  1. Best Answer
    jia103
    2019-07-03T19:09:23+08:002019-07-03T19:09:23+08:00

    Ao filtrar os diretórios:

    $ tar cf - --after-date="${SINCE} 00:00:00" . | tar tvf - | grep -v '^d'
    

    Vejo que os arquivos que eu queria pegar estão realmente sendo pegos e nada mais.

    Por alguma razão, o tar pega todos os diretórios sem levar em conta o carimbo de data/hora, mas acho que posso viver com isso, então o comando acima ainda está bom na maioria das vezes e é por isso que não vi nenhum problema com ele até restaurar meu backup.

    Agora em relação à restauração, afirmei que isso define o atributo Alterar em cada arquivo restaurado; portanto, --after-datefoi inútil, pois meu próximo backup acabou obtendo todos os arquivos.

    Para superar isso, pela primeira vez apenas após a restauração, mudei para usar --newer-mtime:

    $ tar cf - --newer-mtime="${SINCE} 00:00:00" . | tar tvf -
    

    Isso me permite obter todos os novos arquivos desde a restauração e pretendo usar o original --after-datenovamente, começando com o próximo backup.

    Isso tem uma desvantagem, conforme descrito mais abaixo: se houver alguma alteração de permissão ou propriedade entre o momento em que restaurei os arquivos e meu primeiro backup, não estou captando isso e provavelmente nunca o farei, a menos que esses mesmos arquivos tenham suas permissões/propriedade alteradas novamente, e só obterei a atualização naquele momento e todos os meus backups até esse ponto serão restaurados com as permissões/propriedade erradas.

    O manual GNU tar afirma o seguinte:

    O status de um arquivo é considerado alterado se seu conteúdo tiver sido modificado ou se seu proprietário, permissões e assim por diante tiverem sido alterados.

    Não estou claro sobre o que "e assim por diante" significa, mas também estou perdendo isso.

    Dado o que estou apoiando aqui, não estou preocupado com isso, então estou bem com isso desta vez; no entanto, nos casos em que me importei com isso, poderia jogar fora meus backups incrementais e começar tudo de novo com um novo backup completo ou poderia concluir meu processo de restauração com um backup incremental seguindo as etapas acima usando --newer-mtimeimediatamente após a restauração . O último aconteceria antes que as pessoas começassem a usar os arquivos restaurados, então obtenho um bom backup incremental antes de voltar para --after-date.

    • 0

relate perguntas

  • Como eu faria minha máquina Linux parecer que está executando o Windows?

  • Existe um equivalente a cd - para cp ou mv?

  • execute o contêiner do docker como root

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • Como alterar permanentemente Ctrl + C para Ctrl + K no CentOS 7?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve