Files
tareo-scripts/server/back-web.sh

44 lines
880 B
Bash

#!/bin/bash
# echo "0 14 * * * root /root/scripts/server/back-web.sh" > /etc/cron.d/back-web
BAKDIR=/root/backup/web
DATE=$(date +%y%m%d-%H%M)
WEBDIR=/var/www/
if [ ! -e $BAKDIR ]; then
mkdir -p $BAKDIR
fi
# Backup Webspace
EXCLUDE=$(mktemp)
find $WEBDIR -type l > $EXCLUDE
tar cfz $BAKDIR/www-"$DATE".tgz $WEBDIR -X $EXCLUDE
# Backup MySQL
databases=$(mysql -e "SHOW DATABASES;" | tr -d "| " | grep -v Database)
TMP=$(mktemp -d)
for DB in $databases; do
if [ "$DB" != "information_schema" ] && [ "$DB" != "mysql" ] && [ "$DB" != "performance_schema" ]; then
Q1="USE $DB;"
Q2="FLUSH TABLES WITH READ LOCK;"
Q3="SYSTEM /usr/bin/mysqldump --opt $DB > $TMP/$DB.sql;"
Q4="UNLOCK TABLES;"
CMD="${Q1}${Q2}${Q3}${Q4}"
mysql -e "$CMD"
gzip $TMP/$DB.sql
fi
done
tar cfz $BAKDIR/mysql-"$DATE".tgz $TMP/*
rm -r $TMP
rm $EXCLUDE