Existe uma maneira de Ed criar backups do arquivo atualmente carregado no buffer. Ocasionalmente, substituí meu arquivo inadvertidamente e descobri que ele não é recuperável. Ou seja, fazendo um arquivo de backup com um til anexado ao nome do arquivo original (por exemplo, meuarquivo.txt~), que conteria a versão anterior do arquivo.
Acabei de restaurar meus dados de um repositório de backup borg após uma falha no computador.
Minha ~/.gnupg
pasta parece boa, as chaves privadas estão lá e as permissões parecem corretas. Normalmente Borg faz um bom trabalho nisso. Quando eu acesso cat
os arquivos de chaves privadas, não há sinal de corrupção de dados.
No entanto, não posso listar ou usar as chaves privadas. Só consigo interagir com uma chave pública que foi importada pacman
durante o processo de instalação.
Me deparei com alguns posts com problemas semelhantes de chaves privadas não reconhecidas após serem copiadas de uma máquina para outra, e geralmente o problema é resolvido seguindo recomendações de repetir a transferência usando gpg —export-key
e depois importá-las com o comando oposto.
Infelizmente não tenho esse luxo, pois minha máquina antiga travou e não pode ser recuperada. Eu estava ciente da importação e exportação de chaves, mas sempre presumi que era apenas um procedimento seguro mover chaves.
Então eu tenho duas perguntas:
Preciso revisar meus scripts de backup e usar o comando de exportação para minhas chaves secretas gpg?
Mesmo assim, posso recuperar minhas chaves secretas?
======= Editar ======
Encontrei uma postagem no fórum do arch com um usuário tendo exatamente o mesmo problema que eu, então consegui mais pistas para seguir.
O que eu tentei até agora:
gpg --version
> gpg (GnuPG) 2.4.5
ps aux | grep gpg-a
> /usr/bin/gpg-agent --supervised
#About ownership:
chown -R $USER:$USER .gnupg
# Checking UID/GID with show a result of `1000` both on filesystem # # and backup archive.
ls -vn .gnupg/private-keys-v1.d
gpg --export-secret-keys
> gpg: WARNING: nothing exported
gpg -v --list-secret-keys
> gpg: enabled compatibility flags:
> gpg: using pgp trust model
# Most relevant results of:
strace -f -o /tmp/gpg.strace gpg --list-secret-keys
cat /tmp/gpg.strace
> 76220 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
> 76220 access("/home/$USER/.gnupg/secring.gpg", F_OK) = -1 ENOENT (No such file or directory)
# Listing public keys
gpg --list-keys
> Returns one public key imported by pacman during install
gpg -K
> Returns nothing
ls -ln .gnupg/
.rw-r----- 12 1000 13 Mar 10:45 common.conf
drwx------ - 1000 6 Sep 2023 crls.d
.rw------- 2.0k 1000 13 Sep 2023 gpg-agent.conf
.rw------- 703 1000 5 Mar 18:48 gpg.conf
drwx------ - 1000 30 Aug 2023 private-keys-v1.d
drwxr-x--- - 1000 14 Mar 19:27 public-keys.d
.rw-r--r-- 0 1000 24 Aug 2023 pubring.gpg
.rw-r--r-- 7.7k 1000 5 Mar 12:13 pubring.kbx
.rw-r--r-- 7.0k 1000 7 Sep 2023 pubring.kbx~
.rw------- 600 1000 8 Mar 07:20 random_seed
.rw-r----- 676 1000 30 Aug 2023 sshcontrol
.rw------- 1.6k 1000 2 Sep 2023 trustdb.gpg
qual é a melhor maneira de espelhar um diretório inteiro, digamos original/
, para um novo diretório, digamos mirror/
, que tem a estrutura mirror/data/
e mirror/tree/
, de modo que
- cada arquivo no diretório
original/
ou em qualquer um de seus subdiretórios está vinculado a um arquivo emmirror/data
- cujo nome de arquivo é um identificador exclusivo de seu conteúdo, digamos, um hash de seu conteúdo, e
- que é vinculado simbolicamente a partir de um ponto
mirror/tree
cujo caminho relativo corresponde ao caminho relativo do arquivo original emoriginal
,
tal que possa ser facilmente restaurado?
esse recurso talvez seja implementado por alguma ferramenta existente? – aquele que permite escolher com flexibilidade o comando para criar um identificador único para um arquivo pelo seu conteúdo.
por exemplo, digamos que haja apenas um arquivo original/something
, que é um arquivo de texto contendo a palavra “dados”. então eu quero executar um script ou comando original
, de modo que o resultado seja:
$ tree original mirror
original
└── something
mirror
├── data
│ └── 6667b2d1aab6a00caa5aee5af8…
└── tree
└── original
└── something -> ../../data/6667b2d1aab6a00caa5aee5af8…
5 directories, 3 files
aqui, o arquivo 667b…
é um link físico original/something
e seu nome de arquivo é hash sha256sum desse arquivo. observe que abreviei o nome do arquivo para maior legibilidade.
quero poder restaurar perfeitamente o original pelo seu espelho.
eu sei que posso escrever um script para fazer isso, mas antes de fazer isso e talvez cometer um erro e perder alguns dados, quero saber se existe alguma ferramenta por aí que já implemente isso com segurança (não encontrei nenhuma, então longe) ou se houver alguma armadilha.
background : quero manter um arquivo de um diretório que rastreia renomeações, mas não preciso de controle de versão. eu sei que git-annex
isso pode ser feito com muita sobrecarga usando repositórios git, mas eu só preciso espelhar o conteúdo de um diretório usando links simbólicos para a estrutura de diretórios para arquivos cujos nomes de arquivos são hashes de seu conteúdo. então eu poderia usar o git-diff para rastrear renomeações. não entendo completamente o que o git-annex está fazendo, então não quero confiar nele para arquivar meus dados. então estou procurando uma alternativa mais leve e menos intrusiva.
Quando uso grsync no opensuse leap 15.5 para sincronizar pendrives, funciona perfeitamente, somente quando insiro um desses pendrives em um sistema operacional windows10 eles são vistos como corrompidos e uma correção é sugerida. Se eu pular a correção, eles funcionarão sem problemas, então, quando tento desmontá-los, o Windows informa que há arquivos abertos e devo fechá-los antes de desmontá-los, se não quiser que sejam corrompidos. Nenhum arquivo está aberto e não há como impedir que o Windows o declare.
isso não acontece com outros pendrives.
Gostaria de fazer backups da minha /home
partição do meu computador com Linux (Lubuntu 20.04) semanalmente. O problema é que o único disco rígido extra que possuo está conectado à máquina Windows. Parece que o Windows não consegue gerenciar ext3
partições ext4
sem algumas ferramentas de terceiros (e não tenho ideia de quão confiáveis elas são). Parece que não tenho escolha a não ser fazer backups em um volume NTFS.
Então, aí vem a questão. Como fazer isso corretamente?
Encontrei uma pergunta semelhante neste tópico , mas foi feita e respondida (estou falando da segunda resposta, que é mais concreta que a aceita) há dez anos. Copiei a parte relevante aqui por conveniência.
Para fazer backup:
ionice -c2 -n5 nice -n9 tar czvf - /media/somelinuxdrivepath | split -b 16m - /media/usb/ntfsmounted/back.tar.gz.
Para restaurar a partir de uma cópia de backup:
ionice -c2 -n5 nice -n9 cat /media/usb/ntfsmounted/back.tar.gz.* | tar xzvf - /media/somenewlinuxpath
Porém, tenho três dúvidas sobre a resposta, que são as seguintes:
- Dez anos é bastante, então há alguma chance de algo mais confiável e/ou conveniente ter aparecido desde então (alguma ferramenta especial projetada exatamente para esse propósito)?
- Eu realmente não entendo a parte que vem antes do
tar
comando, eu tentei mas isso está além da minha compreensão. - No meu caso, o tamanho da partição/home é superior a 200 GB. É racional fazer backup de tudo todo fim de semana, se eu alterei apenas alguns arquivos durante a semana? Algo assim
Rsync
parece uma escolha lógica, mas será uma cópia completa que pode ser usada para restaurar completamente a partição?
Quero usar a duplicidade para fazer backup da maior parte da minha pasta pessoal no Backblaze. Estou tentando configurá-lo para que faça um backup completo todo mês. Para isso estou usando os seguintes comandos que são executados diariamente:
LOCAL_DIR="/home/username"
EXCLUDE="\
--exclude /home/username/temp \
--exclude /home/username/.cache \
"
duplicity \
backup --full-if-older-than 1M ${EXCLUDE} --progress \
${LOCAL_DIR} b2://${B2_ID}:${B2_KEY}@${B2_BUCKET}
Isso cria um backup todos os dias com êxito, mas a duplicidade nunca cria uma nova cadeia - houve um backup completo em setembro e, desde então, apenas incrementais. Quero iniciar uma nova rede com um backup completo a cada mês.
Algumas coisas que tentei sem sorte:
- mude 1M para 30D
- alterar a ordem das opções (por exemplo, exclui primeiro)
- mudar
backup
paraincremental
Alguma ideia? Obrigado!
Aqui está um exemplo de saída do comando:
+ duplicity backup --full-if-older-than 1M --exclude /home/username/temp --exclude /home/username/.cache --progress /home/username b2://B2_ID:B2_KEY@B2_BUCKET
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Thu Sep 21 16:19:13 2023
3.9MB 00:01:12 [291.5KB/s] [========================================>] 100% ETA 0sec
--------------[ Backup Statistics ]--------------
StartTime 1702050982.47 (Fri Dec 8 16:56:22 2023)
EndTime 1702051043.61 (Fri Dec 8 16:57:23 2023)
ElapsedTime 61.15 (1 minute 1.15 seconds)
SourceFiles 540202
SourceFileSize 77232368533 (71.9 GB)
NewFiles 39
NewFileSize 15434498 (14.7 MB)
DeletedFiles 11
ChangedFiles 78
ChangedFileSize 70757910 (67.5 MB)
ChangedDeltaSize 0 (0 bytes)
DeltaEntries 128
RawDeltaSize 19617995 (18.7 MB)
TotalDestinationSizeChange 3410741 (3.25 MB)
Errors 0
-------------------------------------------------
E aqui está o status da coleção:
+ duplicity collection-status --progress b2://B2_ID:B2_KEY@B2_BUCKET
Last full backup date: Thu Sep 21 16:19:13 2023
Collection Status
-----------------
Connecting with backend: BackendWrapper
Archive dir: /home/username/.cache/duplicity/a52568672c187fdf7e6d79e12a4df37f
Found 0 secondary backup chain(s).
Found primary backup chain with matching signature chain:
-------------------------
Chain start time: Thu Sep 21 16:19:13 2023
Chain end time: Fri Dec 8 16:55:20 2023
Number of contained backup sets: 72
Total number of contained volumes: 331
Type of backup set: Time: Num volumes:
Full Thu Sep 21 16:19:13 2023 222
Incremental Fri Sep 22 13:41:57 2023 1
Incremental Fri Sep 22 14:04:53 2023 1
Incremental Fri Sep 22 14:07:21 2023 1
Incremental Sat Sep 23 23:07:51 2023 1
Incremental Sun Sep 24 14:38:12 2023 1
Incremental Sun Sep 24 15:44:06 2023 1
Incremental Mon Sep 25 14:49:06 2023 1
Incremental Tue Sep 26 10:31:05 2023 1
Incremental Wed Sep 27 14:24:04 2023 1
Incremental Thu Sep 28 11:10:04 2023 1
Incremental Fri Sep 29 14:29:04 2023 1
Incremental Sat Sep 30 12:08:39 2023 2
Incremental Sun Oct 1 11:33:05 2023 1
Incremental Mon Oct 2 10:22:05 2023 2
Incremental Tue Oct 3 15:37:05 2023 6
Incremental Wed Oct 4 13:50:36 2023 1
Incremental Thu Oct 5 14:28:05 2023 1
Incremental Fri Oct 6 13:39:05 2023 1
Incremental Sat Oct 7 14:42:07 2023 2
Incremental Sun Oct 8 08:21:05 2023 1
Incremental Mon Oct 9 19:11:05 2023 1
Incremental Tue Oct 10 10:06:05 2023 2
Incremental Wed Oct 11 11:07:05 2023 2
Incremental Thu Oct 12 11:21:05 2023 2
Incremental Fri Oct 13 21:04:58 2023 1
Incremental Sat Oct 14 13:27:15 2023 1
Incremental Sun Oct 15 12:13:05 2023 1
Incremental Mon Oct 16 11:27:06 2023 1
Incremental Tue Oct 17 12:10:05 2023 1
Incremental Thu Oct 19 14:37:53 2023 2
Incremental Fri Oct 20 19:13:03 2023 1
Incremental Sat Oct 21 14:26:06 2023 1
Incremental Sun Oct 22 11:49:55 2023 3
Incremental Mon Oct 23 12:20:05 2023 8
Incremental Wed Oct 25 17:05:08 2023 1
Incremental Wed Oct 25 18:28:05 2023 1
Incremental Thu Oct 26 21:35:52 2023 1
Incremental Fri Oct 27 14:36:05 2023 1
Incremental Sat Oct 28 09:06:04 2023 1
Incremental Sun Oct 29 20:04:52 2023 1
Incremental Mon Oct 30 13:30:05 2023 1
Incremental Tue Oct 31 11:24:05 2023 1
Incremental Wed Nov 1 18:36:05 2023 2
Incremental Fri Nov 3 09:49:05 2023 1
Incremental Sat Nov 4 03:27:05 2023 2
Incremental Sun Nov 5 19:50:06 2023 2
Incremental Mon Nov 6 17:49:17 2023 1
Incremental Tue Nov 7 12:38:34 2023 1
Incremental Tue Nov 7 19:10:04 2023 1
Incremental Wed Nov 8 18:12:09 2023 1
Incremental Thu Nov 9 13:43:17 2023 1
Incremental Fri Nov 10 20:29:17 2023 2
Incremental Sat Nov 11 14:19:05 2023 1
Incremental Sun Nov 12 21:27:09 2023 3
Incremental Mon Nov 13 14:29:05 2023 1
Incremental Tue Nov 14 18:05:55 2023 3
Incremental Wed Nov 15 10:06:05 2023 3
Incremental Thu Nov 16 14:45:06 2023 5
Incremental Fri Nov 17 10:40:05 2023 4
Incremental Sun Nov 19 18:14:08 2023 1
Incremental Mon Nov 20 16:51:05 2023 1
Incremental Wed Nov 22 14:23:07 2023 1
Incremental Thu Nov 23 16:27:06 2023 1
Incremental Sun Dec 3 17:10:06 2023 1
Incremental Mon Dec 4 21:17:05 2023 1
Incremental Tue Dec 5 13:51:06 2023 1
Incremental Thu Dec 7 11:14:04 2023 1
Incremental Fri Dec 8 15:38:05 2023 1
Incremental Fri Dec 8 15:48:07 2023 1
Incremental Fri Dec 8 16:26:20 2023 1
Incremental Fri Dec 8 16:55:20 2023 1
-------------------------
No orphaned or incomplete backup sets found.
Quero fazer backup de um diretório DE [email protected]:/home/user/mc
PARA /local/backup-folder
no meu PC.
Por que isso não funciona?
restic init --repo /local/backup-folder
restic -r /local/backup-folder backup sftp:[email protected]:/home/user/mc
sftp:[email protected]:/home/user/mc does not exist, skipping
init does not exist, skipping
Fatal: all target directories/files do not exist
Usando ssh [email protected] ls /home/user/mc
funciona, e o diretório remoto existe.
Digamos que haja uma pasta domains
chamada glassfish
. Tem domain1
, domain2
... domainN
.
Quero pegar tudo, domain1
exceto o logs
diretório, e salvá-los no /home/user/backup
diretório.
Eu posso fazer isso manualmente,
cp -R /home/user/glassfish/domains/domain1 /home/user/backup
rm -rf /home/user/backup/domain1/logs
Mas como posso fazer isso mais facilmente?
No momento, estou testando um backup/restauração do sistema operacional RHEL 6.4 por meio do "despejo" e "restauração" no ambiente de teste e sei que o RHEL 6.4 parecia muito desatualizado hoje em dia. Mas algumas empresas ainda estão usando essa versão do RHEL para carregar seus serviços.
Aqui está o cenário : para fazer backup do sistema e dos programas críticos em caso de evento de travamento/falha do host.
- O host RHEL 6.4 de teste para backup utiliza Windows Hyper-V VM como infraestrutura e a raiz do sistema operacional é instalada no volume lógico LVM.
- Para fazer backup do sistema, coloquei o sistema no modo de usuário único e usei o comando para fazer backup do sistema de arquivos raiz
dump -0uf /<path_to_a_second_storage_to_store_dump>/mybackup.dump /
- O despejo mostrou "DUMP IS DONE" na tela e o arquivo de despejo foi criado com tamanho de cerca de 2,2 GB, portanto, acredito que o backup foi bem-sucedido.
Para simular o evento de travamento do host, reinstalei o sistema RHEL 6.4 utilizando o volume lógico LVM e inicializei o sistema no modo de usuário único antes da restauração.
No entanto, depois de restaurar o sistema de arquivos raiz usando
restore -rf /<path_to_a_second_storage_to_store_dump>/mybackup.dump
A tela mostrou kernel panic e alguns outros erros, e acabou travando.
Tentei várias vezes, mas sempre falhei.
Alguém pode me dar algumas dicas porque a restauração não pode ser concluída?
Editar: Ignore esta pergunta. Bugs estranhos aconteceram hoje.
Estou usando o Timeshift para backups completos do sistema. (todas as pastas Home incluídas).
Como posso excluir uma subpasta da pasta inicial, como ~/Dropbox
do backup?
tentei
+ /home/nils/**
+ /root/**
- /home/nils/Dropbox/***
e eu tentei
Editar: é assim que se faz. Devo ter digitado algo errado.
- /home/nils/Dropbox/***
+ /home/nils/**
+ /root/**
Em ambos os casos, a pasta do Dropbox, incluindo seu conteúdo, é incluída no backup, o que eu não quero.