linux mysql定时备份

Posted HIXIAODENG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux mysql定时备份相关的知识,希望对你有一定的参考价值。

项目需要定时备份数据库,以下是自己的操作笔记

1.检查磁盘空间

  

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G  3.6G   34G  10% /
tmpfs            16G     0   16G   0% /dev/shm

这是我当前linux服务器的情况,至于为什么是这样子,我也不清楚(我是半路接过来的,无奈)

根据上面的信息,我就把备份文件放在/dev目录下面

2.创建备份目录

  

cd /dev
mkdir backup
cd backup

3.创建备份shell命令

vi bkDatabaseName.sh

输入如下内容

1 #!/bin/bash
2 mysqldump -uusername -ppassword -hmysqlIp DatabaseName > /dev/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

对备份进行压缩

mysqldump -uusername -ppassword -hmysqlIp DatabaseName | gzip > /dev/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

注意:
把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把mysqlIp替换mysql的IP;

把 DatabaseName 替换为实际的数据库名;

4.添加可执行权限

chmod u+x bkDatabaseName.sh

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkDatabaseName.sh

5.添加定时执行任务

1 # crontab
2 -bash: crontab: command not found

执行 crontab 命令如果报 command not found,就表明没有安装;

安装crontab请参考:http://www.cnblogs.com/dxy1451713982/p/8081569.html

添加定时任务

crontab -e
*/1 * * * * /dev/backup/bkDatabaseName.sh

表示每分钟执行一次,注:对于cron表达式,建议自己百度

6.测试任务是否执行

 1 # tail -f /var/log/cron
 2 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[22449]: finished makewhatis.cron
 3 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting mlocate.cron
 4 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[22460]: finished mlocate.cron
 5 Dec 21 17:33:10 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting prelink
 6 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[23799]: finished prelink
 7 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting readahead.cron
 8 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[23811]: finished readahead.cron
 9 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[15753]: starting tmpwatch
10 Dec 21 17:33:27 iZ2318jid47Z run-parts(/etc/cron.daily)[23849]: finished tmpwatch
11 Dec 21 17:33:27 iZ2318jid47Z anacron[15719]: Job `cron.daily\' terminated

或者去你存放备份文件的目录下查看,是否有备份文件生成;

7.备份完成后删除5天前的备份文件

find /dev/backup -name databaseName"*.sql.gz" -type f -mtime +5 -exec rm -rf {} \\; > /dev/null 2>&1


find /dev/backup -name databaseName"*.sql" -type f -mtime +5 -exec rm -rf {} \\; > /dev/null 2>&1

 

 

 

 

以上是关于linux mysql定时备份的主要内容,如果未能解决你的问题,请参考以下文章

linux配置定时备份mysql数据库

linux mysql定时备份

linux crontab mysql定时自动备份

LINUX环境MySQL定时备份脚本

Linux java mysql 定时备份和手动备份 quartz定时器

linux设置定时备份mysql数据库