new backup script for web files and mysql databases
This commit is contained in:
43
server/back-web.sh
Normal file
43
server/back-web.sh
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user