33 lines
1.0 KiB
Bash
33 lines
1.0 KiB
Bash
|
#!/bin/bash
|
||
|
PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
|
||
|
|
||
|
DIR="/DATA/Backup/MySQL"
|
||
|
|
||
|
if [ -z $1 ]; then
|
||
|
echo "database name missing! use --all for all db's"
|
||
|
exit 1;
|
||
|
elif [ $1 = '--all' ]; then
|
||
|
echo "full backup"
|
||
|
for i in `mysqlshow --defaults-file=/root/.my.cnf | awk '{print $2}' | grep -v Databases`; do
|
||
|
if [ "$i" != "information_schema" ] && [ "$i" != "performance_schema" ]; then
|
||
|
if test -f ${DIR}/${i}.sql; then
|
||
|
echo "Move ${DIR}/${i}.sql to ${DIR}/${i}.sql.1"
|
||
|
mv ${DIR}/${i}.sql ${DIR}/${i}.sql.1
|
||
|
fi
|
||
|
echo "dump ${i} to ${DIR}/${i}.sgl"
|
||
|
mysqldump --defaults-file=/root/.my.cnf --single-transaction --events --opt -QF -r${DIR}/${i}.sql $i
|
||
|
chmod 600 ${DIR}/${i}.sql
|
||
|
fi
|
||
|
done;
|
||
|
elif [ -n $1 ]; then
|
||
|
echo "Starting backup of $1"
|
||
|
if test -f $DIR/$1.sql; then
|
||
|
echo "Move $DIR/$1.sql to $DIR/$1.sql.1"
|
||
|
mv ${DIR}/${1}.sql ${DIR}/${1}.sql.1
|
||
|
fi
|
||
|
mysqldump --defaults-file=/root/.my.cnf --single-transaction --opt -QF -r${DIR}/${1}.sql $1
|
||
|
chmod 600 ${DIR}/${1}.sql
|
||
|
fi
|
||
|
echo "Done"
|
||
|
exit 0;
|