自动备份mysql数据库

技术文档网 2021-04-26

一、脚本

vim /opt/myshells/backupbd_test.sh

#!/bin/sh
# 判断文件是否存在
# link:www.mycompany.com
# date:2016/03/03

#设置mysqldump路径
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/mysql-5.6.29/bin

mysqlPath="/usr/backup/mysql"
mysqlHistoryPath=$mysqlPath"/history"
#判断mysql目录是否存在
if [ ! -x "$mysqlPath" ]; then
    echo "mysql folder is not exists."
    cd /usr/backup
    mkdir mysql
    echo "mysql folder create success."
fi

#判断history目录是否存在
if [ ! -x "$mysqlHistoryPath" ]; then
    echo "history folder is not exists."
    cd $mysqlPath
    mkdir history
    echo "history folder create success."
fi

#切换到工作目录
cd ${mysqlPath}

#判断mysql里是否有日志文件
oldSqlFiles="backup-*.sql"
oldSqlFileSize=$(ls $oldSqlFiles 2> /dev/null | wc -l
if [ "$oldSqlFileSize" != "0" ]; then
    for file in ${oldSqlFiles}; do
        fileName=${file/%.sql/.zip}
        echo "fileName is : " ${fileName}
        zip ${mysqlHistoryPath}"/"${fileName} ${file}
        rm ${file}
        echo ${file} " move to " ${mysqlHistoryPath}
    done
fi
currTime=$(date +"%y%m%d%H%M%S")
newFile="backup-"${currTime}".sql"

mysqldump -uroot test > ${newFile}
echo "database:test backup success."

###二、crontab

vim /etc/crontab

#add by caoshuo at 20160303 for backup mysqldb
#每天早上6点备份一次数据库
0 6 * * * root /opt/myshells/backupdb_test.sh

service crond restart

相关文章

  1. webpack

    一、安装webpack 安装webpack首先需要安装node.js、node.js自带了软件包管理工具npm 1、查看自己的node版本 node -v 2、全局安装webpack(这里先

  2. 查看mysql数据库及表编码格式

    1.查看数据库编码格式 mysql> show variables like 'character_set_database'; 2.查看数据表的编码格式 mysql> show cre

  3. mysql锁

    mysql锁 共享锁与排他锁 (mysql共享锁排它锁) mysql锁分表锁和行锁 行锁包括共享锁和排他锁 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访

  4. mysql索引及sql优化

    1. 简述myisam和innodb的区别 特性 区别 用途 innodb支持事务,外键和行级锁 适合执行大量的INSERT或UPDATE 不保存表的具体行数 myisam不支持

  5. mysqldump备份成sql文件

    mysqldump备份成sql文件 ============== 假想环境: MySQL 安装位置:D:\MySQL 数据库名称为:myDatabase MySQL root 密码:12345

随机推荐

  1. webpack

    一、安装webpack 安装webpack首先需要安装node.js、node.js自带了软件包管理工具npm 1、查看自己的node版本 node -v 2、全局安装webpack(这里先

  2. 查看mysql数据库及表编码格式

    1.查看数据库编码格式 mysql> show variables like 'character_set_database'; 2.查看数据表的编码格式 mysql> show cre

  3. mysql锁

    mysql锁 共享锁与排他锁 (mysql共享锁排它锁) mysql锁分表锁和行锁 行锁包括共享锁和排他锁 共享锁又称为读锁,简称S锁,顾名思义,共享锁就是多个事务对于同一数据可以共享一把锁,都能访

  4. mysql索引及sql优化

    1. 简述myisam和innodb的区别 特性 区别 用途 innodb支持事务,外键和行级锁 适合执行大量的INSERT或UPDATE 不保存表的具体行数 myisam不支持

  5. mysqldump备份成sql文件

    mysqldump备份成sql文件 ============== 假想环境: MySQL 安装位置:D:\MySQL 数据库名称为:myDatabase MySQL root 密码:12345