verifique si hay almacenamiento disponible y si se ejecuta una rutina de respaldo con frase de contraseña y verifique más

0

Pude automatizar mi copia de seguridad con esta primera pregunta. Simplemente copie el archivo pegado en un archivo .sh y ejecútelo con mis rutas, ahora se ejecuta correctamente. Luego seguí esto: enlace Este Lingon también funciona bien y hace copias de seguridad todos los días.

Ahora que lo tengo funcionando, noté que no pensé en quedarme sin espacio en el disco. Creo que sería una limitación difícil decir que 10 copias de seguridad serían buenas. Puedo listar las instantáneas con este comando:

restic -r /Volumes/BackupManual/restic-backups snapshots

y la salida se ve así:

ID        Date                 Host        Tags            Directory
----------------------------------------------------------------------
dbc3943d  2017-02-07 18:50:47  User.fritz.box                  /Users/user/Documents
bd355ca9  2017-02-07 19:57:59  User.fritz.box                  /Users/user/Documents

¿hay alguna forma de contar las líneas y eliminar las ID más antiguas? este es el comando de eliminar:

restic -r /Volumes/BackupManual/restic-backups forget IDxxxxxx

No sé cómo integrar una selección de este tipo aquí:

#!/bin/bash

# USER CONFIGURATION:    
resticuser=restic
srcdir=/Users/user/data
backupvolume=/Volumes/usb-storage-name
backupdir=${backupvolume}/restic-backups

# Script vars:
longname=$0
shortname=$(/usr/bin/basename "${longname}")

printf '%s %s (%s) running...\n' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${shortname}" "${longname}"

if [[ ! -d "${srcdir}" ]]; then
    printf '%s %s does NOT exist.' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${srcdir}" >&2
    exit 1
else
    if [[ $(mount | grep "${backupvolume}") ]]; then
        # See: http://blog.macromates.com/2006/keychain-access-from-shell/
        # Parse output of 'security' and set RESTIC_PASSWORD:
        export RESTIC_PASSWORD=$(security 2>&1 >/dev/null find-generic-password -ga ${resticuser} |ruby -e 'print $1 if STDIN.gets =~ /^password: "(.*)"$/')
        # Run backup, capturing output in case of error:
        output=$(restic -r ${backupdir} backup "${srcdir}")
        error=$?
        if [[ "${error}" == "0" ]]; then
            printf '%s Restic backup completed successfully.\n' "$(date -u "+%Y-%m-%d %H:%M:%S")"
        else
            printf '%s Restic backup failed: error code: %s, error: %s\n' \
                    "$(date -u "+%Y-%m-%d %H:%M:%S")" "${error}" "${output}" >&2
        fi
    else
        printf '%s %s is NOT mounted.' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${backupvolume}" >&2
        exit 1
    fi
fi

printf '%s %s ended.\n' "$(date -u "+%Y-%m-%d %H:%M:%S")" "${shortname}"
    
pregunta novski 18.02.2017 - 21:46

0 respuestas

Lea otras preguntas en las etiquetas