Skip to content

Instantly share code, notes, and snippets.

@winny-
Created March 24, 2015 02:19
Show Gist options
  • Save winny-/c601c3c54bc00d770423 to your computer and use it in GitHub Desktop.
Save winny-/c601c3c54bc00d770423 to your computer and use it in GitHub Desktop.
Glacier backups
#!/bin/sh
set -eu
. "$(dirname "$0")/library.sh"
TODAY="$(date +%F)"
DELETION_DATE="$(date --date='8 days ago' +%F)"
MYSQL="$BACKUP_FILES/db_${TODAY}.sql.gz"
WP="$BACKUP_FILES/www_${TODAY}.tar.gz"
"$(dirname "$0")/backup.sh" "$MYSQL" "$WP"
"$(dirname "$0")/delete-backups.sh" "$DELETION_DATE"
#!/bin/sh
set -eu
. "$(dirname "$0")/library.sh"
assert_has_an_argument="$1"
my_glacier_cli upload "$VAULT" "$@" | awk -v date="$(date +"%F")" '/^Uploaded/ {
sub(/:$/, "", $2);
printf("%s\t%s\t%s\n", $2, date, $3);
}' | tee -a "$BACKUP_MANIFEST"
VAULT="SOME_VAULT"
REGION="us-west-1"
BACKUP_FILES="/var/backups/backup/files"
BACKUP_MANIFEST="$HOME/backup-manifest.tsv"
#!/bin/sh
set -eu
. "$(dirname "$0")/library.sh"
DELETION_DATE="$(date -d "$1" +'%y%m%d')"
TMP_MANIFEST="$(mktemp)"
: > "$TMP_MANIFEST"
cat "$BACKUP_MANIFEST" | while read backup; do
backup_name="$(get_field 1 "$backup")"
backup_date="$(date -d "$(get_field 2 "$backup")" +'%y%m%d')"
backup_token="$(get_field 3 "$backup")"
if [ "$backup_date" -lt "$DELETION_DATE" ]; then
my_glacier_cli -- delete "$VAULT" "$backup_token"
else
printf '%s\n' "$backup" >> "$TMP_MANIFEST"
fi
done
mv "$TMP_MANIFEST" "$BACKUP_MANIFEST"
. "$(dirname "$0")/config.sh"
my_glacier_cli() {
"$HOME/bin/glacier-cli" -region "$REGION" "$@"
}
get_field() {
_field="$1"
_text="$2"
printf '%s' "$2" | cut -f "$_field" -
}
@cyberhiker
Copy link

Which glacier-cli did you use for this script?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment