MySQL备份数据库shell脚本

以下为MySQL备份数据库的sh脚本:

#!/bin/bash
# Shell script to backup MySQL database
# 设置数据库连接变量
MyUSER="" # DB_USERNAME
MyPASS="" # DB_PASSWORD
MyHOST="" # DB_HOSTNAME
# 备份数据的目标目录
DEST="" # /home/username/backups/DB
# 邮件通知
EMAIL=""
# 设置多少天之后的旧文件会被删除
DAYS=3
# Linux bin执行文件路径
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
GZIP="$(which gzip)"
# 获取当前日期dd-mm-yyyy format
NOW="$(date +"%d-%m-%Y_%s")"
# 新建备份子目录
MBD="$DEST/$NOW/mysql"
install -d $MBD
# 忽略备份的数据库列表
SKIP="information_schema
another_one_db"
# 获取所有数据库列表
DBS="$($MYSQL -h $MyHOST -u $MyUSER -p$MyPASS -Bse 'show databases')"
# 归档数据库dump
for db in $DBS
do
skipdb=-1
if [ "$SKIP" != "" ];
then
for i in $SKIP
do
[ "$db" == "$i" ] && skipdb=1 || :
done
fi
if [ "$skipdb" == "-1" ] ; then
FILE="$MBD/$db.sql"
$MYSQLDUMP -h $MyHOST -u $MyUSER -p$MyPASS $db > $FILE
fi
done
# 归档目录,发送邮件通知,清除
cd $DEST
tar -cf $NOW.tar $NOW
$GZIP -9 $NOW.tar
echo "MySQL backup is completed! Backup name is $NOW.tar.gz" | mail -s "MySQL backup" $EMAIL
rm -rf $NOW
# 删除旧文件
find $DEST -mtime +$DAYS -exec rm -f {} \;

源脚本:https://gist.github.com/NARKOZ/642511

版权声明:著作权归作者所有。

相关推荐

查询Redis数据库的数量

redis数据库的数量是固定的,可以在redis.conf查询到redis数据库的数量。使用grep命令:$ cat redis.conf | grep databasesdatabases 16当然,也可以在redis-cli上查询数据库的数量:127.0.0.1:6379> CONFIG GET databases1) "databases"2) "16"使用config get dat

Spring Boot 配置MySQL数据库重连

使用jdbc连接MySQL,如果连接失效,可能会报类似的错误:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 84,371,623 milliseconds ago. The last packet sent suc

Ruby on Rails多套环境的MySQL数据库yml配置

需要注意的是,host和post需要分别配置。不能在host配置端口,如127.0.0.1:3306。如果把端口配置在host,会报类似的错误:Unknown MySQL server host 'mysql://127.0.0.1:3306' (1)default: &default adapter: mysql2 encoding:

CodeIgniter数据库基本用法示例

这里主要演示下CodeIgniter数据库的基本用法示例,以便入门使用CodeIgniter做数据库操作。配置数据库连接等信息CodeIgniter提供了文件 application/config/database.php用来配置数据库的连接信息,如下:$db['default'] = array(       &nb

Docker MySQL备份和恢复数据库命令

这两个命令用于对正在运行的Docker MySQL容器做备份和恢复备份Docker MySQLdocker exec CONTAINER /usr/bin/mysqldump -u username --password=xxx DATABASE > backup.sql 从sql文

查看MySQL数据库空间使用情况

information_schema是MySQL的系统数据库,information_schema里的tables表存放了整个数据库各个表的使用情况。可以使用sql来统计出数据库的空间使用情况,相关字段:table_schema:数据库名table_name:表名table_rows:记录数data_length:数据大小index_length:索引大小统计表使用空间mysql> select