Linux下如何定时备份Mysql

yumo6661个月前 (03-29)技术文章18

一、前言

前段时间本论坛的数据库被黑客攻击,有很多数据都找不回来。只因工作太忙,一直没有时间做论坛的数据备份。这次做备份,顺便把过程分享给大家

二、生成脚本

0、生成脚本前,先针对脚本执行所需要的快捷键操作,因为在执行脚本时,需要用到mysqldump命令

  • 找到你的Mysql安装路径find / -name mysql
  • 通常mysql安装路径在:/usr/local/mysql/bin/mysql
  • mysqldump建立软连接。命令ln -s /usr/local/mysql/bin/mysqldump /usr/bin

1、在磁盘空间比较大的地方,创建一个文件夹,用于存放备份数据(比如home下)

2、创建脚本名(名称任意,以.sh结尾)

vi bkDBName.sh

3、编辑脚本(有两种生成脚本,一种是直接生成SQL备份,一种是压缩备份,看业务及磁盘需要)

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

把 password 替换为实际的密码;

把 DBName 替换为实际的数据库名

3.1、SQL备份

3.2、压缩备份

4、给脚本设置权限

chmod u+x bkDBName.sh

5、测试一下脚本(脚本当前目录下执行以下命令,执行完后查看一下备份目录是否生成了备份数据)

./bkDBName.sh

三、启动定时

这里使用Linux系统中的crontab工具,执行以下命令,创建定时任务

crontab -e

在文本中,输入以下内容。内容的意思是,每1分钟执行home/backup下的bkDBName.sh脚本。可以先用1分钟测试一下定时程序是否有效。若1分钟后,脚本中描述的目录下有备份文件,说明成功。然后再执行crontab -e进入修改定时内容。可以改成每天23点执行 0 23 * * * /home/backup/bkDBName.sh

*/1 * * * * /home/backup/bkDBName.sh

以上就完成了定时备份Mysql

四、附加crontab命令

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行

如何往 cron 中添加一个作业?

# crontab –e

0 5 * * * /root/bin/backup.sh

这将会在每天早上5点运行 /root/bin/backup.sh

Cron 各项的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}

o minute: 区间为 0 – 59

o hour: 区间为0 – 23

o day-of-month: 区间为0 – 31

o month: 区间为1 – 12. 1 是1月. 12是12月.

o Day-of-week: 区间为0 – 7. 周日可以是0或7.

Crontab 示例

1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

1 0 * * * /root/bin/backup.sh

2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

59 11 * * 1,2,3,4,5 /root/bin/backup.sh

下面例子与上面的例子效果一样:

59 11 * * 1-5 /root/bin/backup.sh

3. 每5分钟运行一次命令

*/5 * * * * /root/bin/check-status.sh

4. 每个月的第一天 1:10 p.m 运行

10 13 1 * * /root/bin/full-backup.sh

5. 每个工作日 11 p.m 运行。

0 23 * * 1-5 /root/bin/incremental-backup.sh

Crontab 选项

以下是 crontab 的有效选项:

o crontab –e : 修改 crontab 文件. 如果文件不存在会自动创建。

o crontab –l : 显示 crontab 文件。

o crontab -r : 删除 crontab 文件。

o crontab -ir : 删除 crontab 文件前提醒用户。

以上就是crontab命令的具体使用方法了。

相关文章

记一次mysql数据库数据自动备份(全量+增量备份)

1 全量备份描述:(1) 每日凌晨1点自动执行脚本进行数据备份并压缩,备份并压缩的数据保存到nas目录/mnt/nas/mysql_data_bak/,保留7天的备份数据(2) 保留7天备份的数据,第...

windows下mysql自动备份及备份同步至NAS解决方案

一、问题描述某项目客户要求把阿里云上一台ECS非核心的mysql库做备份,具体要求如下:1、每天1:00对mysql数据库进行完全备份。2、备份文件存放到阿里云的NAS平台上。3、保留5天的备份副本。...

在Windows Server上自动执行数据库和文件夹备份

介绍为服务器提供自动备份策略的重要性这是非常有必要的。每个服务器管理员都必须完成设置备份的繁重工作,包括编写脚本、安排任务、设置警报等等。为了简化这个任务,我分享一个实用程序来帮助服务器管理员和数据库...

解放你的双手,ubuntu定时自动备份MySQL数据库,亲测有效

1、新建一个文件夹存放备份的数据文件,根据个人需要放在合适的位置mkdir /home/cms_mysqlbackup 2、创建脚本文件,我放在home文件夹了,命名为autobackup.shcd...

MySQL数据库备份

前端监控:www.webfunny.cn ;只需要简单几步,就可以搭建一套属于自己的前端监控系统,快来试试吧。(github:webfunny_monitor)一、mysqldump 简介mysqld...

mysql数据库怎么备份?

mysql数据库怎么备份?可以使用mysqldump命令来备份数据库,下面本篇文章就来给大家介绍一下,希望对你们有所帮助。1、打开开始菜单,下方搜索框中搜索cmd,打开cmd命令行2、输入命令,就可备...