Skip to content
Snippets Groups Projects
backup-snapshot.sh 1.7 KiB
Newer Older
#!/bin/bash -eux
Pierre Ozoux's avatar
Pierre Ozoux committed
if [ -e /data/per-user/$DOMAIN/mysql ]; then
  echo backing up mysql databases for $DOMAIN
  mkdir -p /data/per-user/$DOMAIN/backup/mysql/
  cp /data/per-user/$DOMAIN/mysql/.env /data/per-user/$DOMAIN/backup/mysql/.env
  /usr/bin/docker run --link mysql-$DOMAIN:db\
     --env-file /data/per-user/$DOMAIN/mysql/.env \
Michiel de Jong's avatar
Michiel de Jong committed
     indiehosters/mysql mysqldump --all-databases --events -u admin \
Pierre Ozoux's avatar
Pierre Ozoux committed
     -p$(cat /data/per-user/$DOMAIN/mysql/.env | cut -d'=' -f2) \
     -h db > /data/per-user/$DOMAIN/backup/mysql/dump.sql
Pierre Ozoux's avatar
Pierre Ozoux committed
if [ -e /data/per-user/$DOMAIN/wordpress ]; then
  echo backing up www from wordpress for $DOMAIN
  mkdir -p /data/per-user/$DOMAIN/backup/www/
  rsync -r /data/per-user/$DOMAIN/wordpress /data/per-user/$DOMAIN/backup/www/wordpress
Pierre Ozoux's avatar
Pierre Ozoux committed
if [ -e /data/per-user/$DOMAIN/nginx ]; then
  echo backing up www from nginx for $DOMAIN
  mkdir -p /data/per-user/$DOMAIN/backup/www/nginx/
  if [ -e /data/per-user/$DOMAIN/nginx/data/GITURL ]; then
    cp /data/per-user/$DOMAIN/nginx/data/GITURL /data/per-user/$DOMAIN/backup/www/nginx/GITURL
Pierre Ozoux's avatar
Pierre Ozoux committed
    rsync -r /data/per-user/$DOMAIN/nginx/data/www-content /data/per-user/$DOMAIN/backup/www/nginx/www-content
echo copying TLS cert
Pierre Ozoux's avatar
Pierre Ozoux committed
mkdir -p /data/per-user/$DOMAIN/backup/TLS/
cp /data/server-wide/haproxy/approved-certs/$DOMAIN.pem /data/per-user/$DOMAIN/backup/TLS/$DOMAIN.pem

echo committing everything
Pierre Ozoux's avatar
Pierre Ozoux committed
cd /data/per-user/$DOMAIN/backup/
Michiel de Jong's avatar
Michiel de Jong committed
git add *
git status

git config --local user.email "backups@`hostname`"
git config --local user.name "`hostname` hourly backups"
git config --local push.default simple

Pierre Ozoux's avatar
Pierre Ozoux committed
git commit -m"backup $DOMAIN @ `hostname` - `date`"
if [ -e /data/per-user/$DOMAIN/backup/BACKUPDEST ]; then
Michiel de Jong's avatar
Michiel de Jong committed
  git pull --rebase
  git push
fi