Blog Tinux Net

restic backups

Todas las publicaciones etiquetadas restic backups por Blog Tinux Net
  • Publicado en

    Restic

    • Crear calendario de snapshots a guardar, diario [7], semanal [3] , mensual [1] y anual [1].
    • Crear estructura para excluir archivos y/o directorios.
    • Crear estructura para incluir archivos y/o directorios.
    • Crear metodo, para que sftp se pueda autentificar con llave ( keys rsa o ed25529).
    • Crear menus para aceptar crear el backup de restic.
    • Generar archivo para tratamiento posterior con restic.

    Nota: muy importante es el orden de las ordenes, y opciones

    Politica de Retencion o Calendarios de Snapshots

    # backup.sh
    DIA_SEMANA=$(date +%u)    # 1=lunes, 7=domingo
    DIA_MES=$(date +%d)
    MES=$(date +%m)
    
    TAGS="diario"
    
    # Semanal: cada domingo
    if [[ $DIA_SEMANA -eq 7 ]]; then
      TAGS="$TAGS,semanal"
    fi
    
    # Mensual: primer día del mes
    if [[ $DIA_MES -eq 1 ]]; then
      TAGS="$TAGS,mensual"
    fi
    
    # Semestral: 1 de enero y 1 de julio
    if [[ $MES == "01" && $DIA_MES == "01" ]]; then
      TAGS="$TAGS,semestral,anual"
    elif [[ $MES == "07" && $DIA_MES == "01" ]]; then
      TAGS="$TAGS,semestral"
    fi
    
    restic -r "$REPO" backup --tag "$TAGS" /ruta/a/respaldo
    
    # Ahora forget con agrupación por tags
    restic -r "$REPO" forget \
      --group-by tags \
      --keep-tag diario      --keep-last 5 \
      --keep-tag semanal     --keep-last 3 \
      --keep-tag mensual     --keep-last 1 \
      --keep-tag semestral   --keep-last 4 \
      --keep-tag anual       --keep-last 1 \
      --prune
    

    Filtros para Inclusion de Archivos

    Incluir archivos segun que patron , no es sencillo en restic. Al final, he llegado a la conclusion de utilizar la herramienta externa find para que me cree los la ruta absoluta para copiar.

    Ejemplo que funciona:

    Hay que crear un archivo como .include_images utilizando este codigo con find

    find . -type f \( -iname "*.jpg" -o -iname "*.png" -o -iname "*.gif" -o -iname "*.tiff" -o -iname "*.bmp" \) -print > .include_images
    

    y asi en el Shell:

    restic backup  -r /mnt/restic-backup/testing.took.tinux.net  --files-from .include_images