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}"