Skip to content

Instantly share code, notes, and snippets.

@jschirrmacher
Last active December 10, 2019 03:01
Show Gist options
  • Save jschirrmacher/afe5b352e85d5881274ac6aad3d721f2 to your computer and use it in GitHub Desktop.
Save jschirrmacher/afe5b352e85d5881274ac6aad3d721f2 to your computer and use it in GitHub Desktop.
Backup tools

Backing up

Preparation

  1. Copy the backup and backup-rotate scripts to /usr/local/bin
  2. Create a /backup folder (which might be symlink to a mounted file system`

Define cron jobs

Add cron jobs (in /etc/cron.d/backup) to run rotation first, then for each folder which is to be saved:

0 0 * * * root /usr/local/bin/backup-rotate
10 0 * * * root /usr/local/bin/backup /etc etc
10 0 * * * root /usr/local/bin/backup /var/lib/docker docker --exclude overlay2
10 0 * * * root /usr/local/bin/backup /var/apps apps
10 0 * * * root /usr/local/bin/backup /var/volumes volumes
#!/bin/sh
HOSTNAME=`/bin/hostname`
BACKUP="/backup/${HOSTNAME}"
SRC="$1"
DEST="$2"
EXTRA="$3"
mkdir ${BACKUP}.0/${DEST}
rsync -avh ${EXTRA} --delete --link-dest=${BACKUP}.1/${DEST}/ ${SRC}/ ${BACKUP}.0/${DEST}/
#!/bin/sh
HOSTNAME=`/bin/hostname`
BACKUP="/backup/${HOSTNAME}"
if [ ! -d /backup ]; then
mkdir /backup
fi
rm -r ${BACKUP}.7
mv ${BACKUP}.6 ${BACKUP}.7
mv ${BACKUP}.5 ${BACKUP}.6
mv ${BACKUP}.4 ${BACKUP}.5
mv ${BACKUP}.3 ${BACKUP}.4
mv ${BACKUP}.2 ${BACKUP}.3
mv ${BACKUP}.1 ${BACKUP}.2
mv ${BACKUP}.0 ${BACKUP}.1
mkdir ${BACKUP}.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment