various scripts I use to make my life easier

simplified

-25
daily-snapshot.sh
···
-
#!/bin/bash
-
#
-
# This script will gzip /mnt/backup/live/
-
# This script assumes /mnt/backup/snapshots/ is where we want to store archives
-
# This script will only keep 7 days worth of archives
-
# -- if you want to change this just change `MAX_BACKUPS`
-
#
-
# My personal setup:
-
# -- has this running daily with cron at 00:30z
-
# -- mounts /mnt/backup to it's own specific NFS share configured for the host
-
#
-
-
MAX_BACKUPS=7
-
-
tar -czf "/mnt/backup/snapshots/gwaine.snapshot.`date -Iseconds`.tar.gz" -C /mnt/backup/live .
-
-
COUNT=$(ls -1 /mnt/backup/snapshots/*.tar.gz 2>/dev/null | wc -l)
-
-
if [ "$COUNT" -gt $MAX_BACKUPS]; then
-
# why not just delete the oldest file only Trey???
-
# well I'll tell you why! If I want to change MAX_BACKUPS from 7 to 3
-
# I'll have a whole bunch of extra archives I don't want to keep
-
EXTRA=$((COUNT - MAX_BACKUPS))
-
ls -1T /mnt/backup/snapshots/*.tar.gz | tail -n "$EXTRA" | xargs rm -f
-
fi
···
-26
hourly-backup.sh
···
-
#!/bin/bash
-
#
-
# This script will rsync the entire filesystem to /mnt/backup/live/
-
# This script assumes /mnt/backup/live/ is where we want to backup files
-
#
-
# My personal setup:
-
# -- has this running hourly with cron
-
# -- mounts /mnt/backup to it's own specific NFS share configured for the host
-
#
-
# !! WARNING SLOW FIRST RUN !!
-
# the first run will be slow so run this first before setting up the hourly job
-
-
rsync -aAXH \
-
--exclude /dev/ \
-
--exclude /proc/ \
-
--exclude /sys/ \
-
--exclude /tmp/ \
-
--exclude /usr/tmp/ \
-
--exclude /run/ \
-
--exclude /mnt/ \
-
--exclude /media/ \
-
--exclude /var/cache/ \
-
--exclude lost+found/ \
-
--exclude /var/log/journal \
-
--exclude /var/lib/systemd/random-seed
-
/* /mnt/backup/live/ --delete
···