Como realizar backups en Storj.io con restic
2024-05-06
Índice
Storj.io es un servicio en la nube descentralizado y compatible con S3, todos los datos están cifrados de extremo a extremo y se dividen y distribuyen entre multitud de nodos de todo el mundo.
Empece a utilizar Storj.io cuando ofrecían 150 GB de almacenamiento de forma gratuita, pero recientemente han cambiado de forma brusca su política ya que, en el momento de de escribir esta publicación tan sólo ofrecen 30 días de prueba gratuita.
🗨️ De todas formas si utilizas un almacenamiento en la nube basado en S3, esta publicación también te puede servir
Un plus es que tiene integración con FileZilla.
Creando el bucket
Debemos de crear un bucket donde inicializar el respositorio para restic
Permisos
Creado el bucket debemos de crear las credenciales de acceso para el bucket
Elegimos el tipo permiso y un nombre
Seleccionamos los privilegios del acceso que estamos creando y al bucket que le va a se aplicados, por ejemplo al bucket que hemos creado anteriormente fotos
Podemos utilizar la misma contraseña para crear la contraseña de cifrado o cambiarla por otra, yo he dejado la misma
Repasamos y confirmamos
Una vez creado el acceso es importante copiar o descargar y guardar en un sitio seguro la contraseña ya que si la perdemos tendremos que volver a generar una nueva, no se puede recuperar
Configurando rclone
Creados el bucket y las credenciales de acceso, debemos de configurar rclone para poder utilizar la nube de Storj.io
Iniciamos el menú de configuración, seleccionamos la opción n pra crear un nuevo acceso remoto y elegimos un nombre para el nuevo acceso, por ejemplo storj
rclone config
2023/09/28 10:40:42 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> storj
Seleccionamos la opción Storj del menú
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / 1Fichier
\ (fichier)
2 / Akamai NetStorage
\ (netstorage)
.........
.........
.........
40 / Sia Decentralized Cloud
\ (sia)
41 / Storj Decentralized Cloud Storage
\ (storj)
.........
.........
.........
50 / seafile
\ (seafile)
Storage> 41
Como vamos a utilizar las credenciales de un acceso creadas anteriormente seleccionamos 1, e introducimos su clave.
Option provider.
Choose an authentication method.
Choose a number from below, or type in your own string value.
Press Enter for the default (existing).
1 / Use an existing access grant.
\ (existing)
2 / Create a new access grant from satellite address, API key, and passphrase.
\ (new)
provider> 1
Option access_grant.
Access grant.
Enter a value. Press Enter to leave empty.
access_grant> 12rUNVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasdfasdftytr
Configuration complete.
Options:
- type: storj
- access_grant: 12rUNVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxasdfasdftytr
Finalizamos la configuración pulsando y
Keep this "storj" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
storj storj
Comprobamos que tenemos acceso al bucket
rclone lsf storj:
fotos/
videos/
Inicializar repositorio
Ahora que tenemos acceso al bucket, inicializamos el repositorio para restic
restic -r rclone:storj:fotos init
enter password for new repository:
enter password again:
created restic repository 2433aded8e at rclone:storj:fotos
Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.
Realizar backup
Con todo configurado ya podemos empezar a realizar los backups, el formato seria
restic --repo rclone:storj:fotos/ backup ~/directory-to-backup --pack-size=60
Por ejemplo
restic -r rclone:storj:fotos --password-file /mnt/user/datos/scripts/pass.txt backup --tag fotos -v --files-from /mnt/user/datos/scripts/fotos_to_backup.txt
open repository
repository 2433aded opened (version 2, compression level auto)
created new cache in /root/.cache/restic
lock repository
using parent snapshot a6cf782b
load index files
start scan on [/mnt/user/shared_media/media/fotografias/]
start backup on [/mnt/user/shared_media/media/fotografias/]
scan finished in 2.921s: 10255 files, 49.252 GiB
Files: 0 new, 0 changed, 10255 unmodified
Dirs: 0 new, 4 changed, 251 unmodified
Data Blobs: 0 new
Tree Blobs: 4 new
Added to the repository: 1.547 KiB (1.263 KiB stored)
processed 10255 files, 49.252 GiB in 0:05
snapshot 673ea342 saved
Haciendo uso de restic también podamos ejecutar el versionado en la copia en Storj.io
restic -r rclone:storj:fotos --password-file /mnt/user/datos/scripts/pass.txt forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --prune
repository 2433aded opened (version 2, compression level auto)
Applying Policy: keep 7 daily, 5 weekly, 12 monthly snapshots
keep 7 snapshots:
ID Time Host Tags Reasons Paths
-----------------------------------------------------------------------------------------------------------------
6f83717e 2023-09-29 04:40:16 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
6e411ab0 2023-09-30 04:40:07 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
monthly snapshot
962433f5 2023-10-01 04:40:07 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
weekly snapshot
9fe5664f 2023-10-02 04:40:17 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
1c79dbd5 2023-10-03 04:40:07 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
a6cf782b 2023-10-04 04:40:07 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
673ea342 2023-10-06 00:16:16 Nas01 fotos daily snapshot /mnt/user/shared_media/media/fotografias
weekly snapshot
monthly snapshot
-----------------------------------------------------------------------------------------------------------------
7 snapshots
remove 1 snapshots:
ID Time Host Tags Paths
-----------------------------------------------------------------------------------------------
3c540656 2023-09-28 18:19:29 Nas01 fotos /mnt/user/shared_media/media/fotografias
-----------------------------------------------------------------------------------------------
1 snapshots
[0:00] 100.00% 1 / 1 files deleted
1 snapshots have been removed, running prune
loading indexes...
loading all snapshots...
finding data that is still in use for 7 snapshots
[0:01] 100.00% 7 / 7 snapshots
searching used packs...
collecting packs for deletion and repacking
[0:00] 100.00% 2976 / 2976 packs processed
to repack: 256 blobs / 1.880 MiB
this removes: 4 blobs / 1.104 KiB
to delete: 0 blobs / 0 B
total prune: 4 blobs / 1.104 KiB
remaining: 43667 blobs / 48.913 GiB
unused size after prune: 0 B (0.00% of remaining size)
repacking packs
[0:01] 100.00% 1 / 1 packs repacked
rebuilding index
[0:01] 100.00% 2976 / 2976 packs processed
deleting obsolete index files
[0:00] 100.00% 12 / 12 files deleted
removing 1 old packs
[0:00] 100.00% 1 / 1 files deleted
done
Espero que te haya gustado, pasa un gran día 🐧