Skip to content

Instantly share code, notes, and snippets.

@keefo
Forked from orrisroot/backup.sh
Created July 8, 2019 01:19
Show Gist options
  • Save keefo/10c39bc7fc17b6bba49a3ccca2eb6552 to your computer and use it in GitHub Desktop.
Save keefo/10c39bc7fc17b6bba49a3ccca2eb6552 to your computer and use it in GitHub Desktop.
cron daily backup script
#!/bin/bash
export LANG=C
BACKUPDIR=/data/backup/daily
DATE=`date`
if test ! -d $BACKUPDIR; then
mkdir -p $BACKUPDIR
chmod 700 $BACKUPDIR
fi
echo $DATE > $BACKUPDIR/timestamp.txt
# mariadb data
MARIADB_CONF=/data/admin/etc/my.cnf
if test ! -d $BACKUPDIR/mariadb; then
mkdir -p $BACKUPDIR/mariadb
fi
MARIADB_DATABASES=$(\
mysql --defaults-extra-file=${MARIADB_CONF} -s -e 'SHOW DATABASES' | \
sed -e '/^Database$/d' \
-e '/^mysql$/d' \
-e '/^information_schema$/d' \
-e '/^performance_schema$/d' \
)
if test ! -z "${MARIADB_DATABASES}"; then
for database in ${MARIADB_DATABASES}; do
mysqldump --defaults-extra-file=${MARIADB_CONF} -Q --opt --skip-extended-insert ${database} | gzip > $BACKUPDIR/mariadb/${database}.sql.gz
done
fi
# web data
rsync -aq --delete /data/www $BACKUPDIR/
# home
rsync -aq --delete /home $BACKUPDIR/
# etc
rsync -aq --delete /etc $BACKUPDIR/
# logs
rsync -aq --delete /var/log $BACKUPDIR/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment