controlla se lo spazio di archiviazione è disponibile e se è in esecuzione una routine di backup con passwordphrase e controlla altro

0

Sono stato in grado di automatizzare il mio backup con questa prima domanda. Basta copiare incollato in un file .sh ed eseguirlo con i miei percorsi, ora funziona senza problemi. Quindi ho seguito questo: link Questo Lingon funziona bene e fa il backup ogni giorno.

Ora che l'ho fatto ho notato che non pensavo di rimanere senza spazio. Penso che una strong limitazione per dire 10 backup sia bello. Posso elencare le istantanee con questo comando:

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

e l'output è simile a questo:

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

c'è un modo per contare le linee e cancellare gli ID più vecchi? questo è il comando delete:

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

Non so come integrare una selezione di questo tipo qui:

#!/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}"
    
posta novski 18.02.2017 - 21:46
fonte

0 risposte

Leggi altre domande sui tag