msyql定时备份数据库
msyql定时备份数据库
1)备份脚本文件
dbback-online.sh
2)定时备份数据库
定时任务启动脚本前执行命令
1、修改/etc/crontab文件
使用 vi 编辑器添加 每天凌晨3点执行
01 3 * * * root /usr/local/bin/dbback-online.sh
2、#修改完文件要重新加载任务,使之生效
#定时任务文件
crontab /etc/crontab
#查看定时任务
crontab -l
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看crontab服务状态
附:脚本文件
#!/bin/bash
#这是一个简单的mysql数据库逻辑备份脚本
#1.定义数据库连接、目标库信息
USER="root"
PASS="123456"
HOST="10.1.1.100"
CONN="-u $USER -p$PASS -h $HOST"
#database
DB="mdcoc"
#2.定义备份目录、工具、时间、文件名主体
#判断备份文件存储目录是否存在,否则创建该目录
BACKUP_DIR="/usr/local/data-back"
if [ ! -d $BACKUP_DIR ] ;
then
mkdir -p "$BACKUP_DIR"
fi
BACKUP_CMD="/home/mysql/bin/mysqldump"
BACKUP_TIME=`date +%Y%m%d-%H%M`
NAME="$DB-$BACKUP_TIME"
#3.导出为.sql.gz脚本
#-t 仅导出表数据,不导出表结构
# $BACKUP_CMD $CONN -t $DB2 | gzip > /$BACKUP_DIR/$NAME_2.sql.gz
#$BACKUP_CMD $CONN $DB2 | gzip > /$BACKUP_DIR/$NAME_2.sql.gz
$BACKUP_CMD $CONN --set-gtid-purged=off $DB | gzip > /$BACKUP_DIR/$NAME.sql.gz
#备份多个数据库到一个文件
#$BACKUP_CMD $CONN --databases $DB1 $DB2 | gzip > /$BACKUP_DIR/$NAME_1_$NAME_2.sql.gz
#/usr/bin/mysqldump -h 101.201.49.112 -u root -pAassddff\!123 j2eeq >j2eeq.sql
#将本地的备份文件在扔到198服务器上,利用ftp
sleep 5s
ftp -n<<!
open 10.1.1.198
user databackup 123
binary
lcd /usr/local/data-back
cd mdcoc
prompt
put $NAME.sql.gz
close
bye
!