Skip to content

Instantly share code, notes, and snippets.

@winny-
Created February 14, 2014 23:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save winny-/9011516 to your computer and use it in GitHub Desktop.
Save winny-/9011516 to your computer and use it in GitHub Desktop.
#!/bin/sh
now() {
date '+%F %T'
}
Tarsnap='/usr/local/bin/tarsnap'
Hostname="$(hostname -s)"
BackupTarget="$2"
JobName="$Hostname-$1"
BackupDate="$(date +%F)"
BackupName="$JobName-$BackupDate"
# Handle BSD vs GNU date(1)
OldestBackupDate="$(date -v-3d +%F 2>/dev/null || date --date='3 days ago' +%F)"
OldestBackupName="$JobName-$OldestBackupDate"
printf '%s: Beginning back up of %s\n' "$(now)" "$JobName"
$Tarsnap -c -f "$BackupName" "$BackupTarget"
printf '%s: Completed back up of %s\n' "$(now)" "$JobName"
printf '%s: Removing backup of %s from %s\n' "$(now)" "$JobName" "$OldestBackupDate"
$Tarsnap -d -f "$OldestBackupName"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment