MONTANDO um sistema de arquivos sshfs para backup (usando o bup) e fazer modificações

Recentemente fiquei aprendendo a usar o bup para meus backups de dados pessoais e então pensei, irei fazer também logo meu backup aqui do vaporhole. Como o servidor aqui não possui o bup instalado eu pensei nessa possibilidade de montar o disco do vaporhole aqui na minha máquina.

Primeiramente temos que ter o pacote sshfs instalado, instale-o conforme sua distribuição linux permita fazer, uma vez que ele está instalado o comando será

sshfs -o idmap=user,port=7990 seusuarior@vaporhole.xyz:. /run/media/vaporhole

troque /run/media/vaporhole pelo caminho que você prefere montar esse sistema de arquivos. Aqui no meu laptop só consegui fazer modificações quando adicionei a opção idmap=user.

Prontinho, sua pasta na vaporhole está disponível como se fosse um disco na sua máquina.

USANDO o bup para fazer backups sem montar o disco como sistema de arquivos locais

Dentro do servidor remoto é necessário tem um repositório iniciado, pois o indexamento de arquivos fica no servidor, assim para iniciar um repositório dentro do servidor

bup on seusuario@vaprhole.xyz init

Então construímos o índice lá dentro

bup on seusuario@vaprhole.xyz:7990 index /home/seusuario

e finalmente salvamos os arquivos do servidor no repositório local

bup -d $BUP_DIR on seusuario@vaprhole.xyz:7990 save -n vaporhole-home /home/seusuario

lembrando que se o variável de ambiente BUP_DIR já foi estabelecidade que é o seu repositório local não precisa dessa flag -d, aqui escolhi o nome "vaporhole-home" para me referir a esse backup dos arquivos pessoas no servidor vaporhole.xyz

USANDO o bup para fazer backups

Primeiramente inicie um repositório bup no disco que você deseja, pode inclusive ser um disco montado via sshfs como acima. Irei chamar esse caminho de BUP_DIR (ex. /mnt/meudiscodebackup/.bup)

bup -d $BUP_DIR init

Se fizer bup init apenas o repositório será criado em ~/.bup, se quiser fazer toda operação sem precisar da flag -d toda hora para especificar o repositório basta fazer

expor BUP_DIR=/mnt/meudiscodebackup/.bup

substitua o caminho que coloquei pelo seu.

Criado o repositório vamos salvar o índice de arquivos, neste exemplo quero salvar mina pasta Documentos

bup -d $BUP_DIR index /home/user/Documentos

Índice de arquivos criados, vamos salvar os arquivos no repositório

bup -d $BUP_DIR save -n nome-do-ramo /home/user/Documentos

substitua nome-do-ramo por um nome que remeta ao que você está fazendo o backup.

É possível ficar explorando o backup atravé do comando ls do bup

bup -d $BUP_DIR ls

experimente ficar adicionando a saída do comando ls, por exemplo

bup -d $BUP_DIR ls nome-do-ramo ou bup -d $BUP_DIR ls nome-do-ramo/latest/home

isso irá listar a pasta home e no segundo irá listar a pasta user dentro da home (do último backup salvo), pode explorar cada arquivo que existe no backup com esse comando, inclusive ele aceita a flag -l do ls comum para vermos mais detalhes do arquivo.

Agora a parte que espero que nunca precisemos fazer, restaurar os arquivos. O comando é

bup -d $BUP_DIR restore -C ./destino nome-do-ramo/latest/home/user/Documentos

na pasta destino estará seus arquivos bonitinhos.

A vantagem de usar o bup e é que ele é totalmente incremental, ao fazer novo índice de arquivos e dar o comando save logo depois ele irá apenas salvar as alterações que existiram. Algo que percebi é que se a pasta for um repositório git ele consegue ignorar arquivos conforme o arquivo .gitignore.