一 : 为什么要进行数据库的备份? 

最主要的原因:尽可能地减少损失,包括时间上、精神上和金钱上的损失。很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据。要知道,在地球上网是很危险的,即使做好安全预防措施,也难免会发生不可预想的问题。因此,数据备份是日常必不可少的操作。数据库的备份用mysqldump

二 : 定时自动备份数据库

由于数据库如此重要,以至于我们要经常备份数据库,但是,由于白天的时候,数据库处于活跃的状态,这时候备份数据库可能会漏存数据,更有可能会导致出错,因此一般会选择在凌晨备份数据库。问题来了,难道要一个数据库管理员凌晨两点起床备份数据库?这时候LINUX的CRONTAB定时任务排上用场了!有关CRONTAB的内容请参考我的另一篇博客CRONTAB定时任务(window系统可以使用 ‘任务计划’)

三 : 编写一个shell脚本,执行备份

我们可以在根目录下编写这么一个脚本 : /serverBack/mysqlBack.sh

脚本内容如下:

方法一:

##使用mysqldump备份数据库test
mysqldump -uroot -ppasswd test >> /serverBack/dbBack/test_$(date+”%Y_%m_%d”).sql

##找到/serverBack/dbBack/下文件名称以test_开头,以 .sql 结尾的文件,并且是7天前系统修改过的文件,将其删除
find /serverBack/dbBack/ -mtime +7 -name “test_*.sql” -exec rm -rf {} \;

方法二:

mysqldump -uroot -ppwd dbname > dir/db_date +%F.sql

保留近一周的备份文件,更早的删除

find /dir -mtime +7 -name”db_*.sql” -exec rm -rf {} \;

方法三:

filename=’date +%y%m%d’

mysqldump -uroot-proot test >>/serverBack/dbBack/$filename.sql

比较齐全,常用的shell脚本内容如下:

## 记录日志
echo "---------------------------------------------------" >> /serverBack/dbBack/dbBackLog.log
echo $(date +"%Y-%m-%d %H:%M:%S") "test Database backup start" >> /serverBack/dbBack/dbBackLog.log
## 开始备份
mysqldump -uroot -ppwd test >> /serverBack/dbBack/test_$(date +"%Y-%m-%d").sql
## $? 判断上一次操作是否成功,备份成功返回0
if [ 0 -eq $? ];then if [ -f "/serverBack/dbBack/test_$(date +"%Y-%m-%d").sql" ];then
echo $(date +"%Y-%m-%d %H:%M:%S") "test Database backup success!" >> /serverBack/dbBack/dbBackLog.log
else
echo $(date +"%Y-%m-%d %H:%M:%S") "test Database backup fail!" >> /serverBack/dbBack/dbBackLog.log
fi else
echo $(date +"%Y-%m-%d %H:%M:%S") "test Database backup error!" >> /serverBack/dbBack/dbBackLog.log fi echo "---------------------------------------------------" >> /serverBack/dbBack/dbBackLog.log
## 删除七天前的数据,防止数据冗余
find /serverBack/dbBack/ -mtime +7 -name "test_*.sql" -exec rm -rf {} \;
## find后面的';'不能省略

此时,我们在命令行模式下执行该脚本: sh /serverBack/mysqlBack.sh
此时我们就可以备份数据库了,但是我们还没有实现定时自动备份。赶紧测试一下你能不能备份成功吧!

四 : 实现定时自动备份数据库

有关CRONTAB的内容请参考我的另一篇博客 crontab定时任务

crontab –e ##编辑定时任务

添加定时任务内容:

##每天定时15:00:00 执行脚本 /serverBack/mysqlBack.sh
00 15 * * * sh /serverBack/mysqlBack.sh

命令:

crontab –e ##编辑定时任务
crontab –r 删除所有定时任务
crontab –l 列出所有定时任务

 

转:https://blog.csdn.net/baidu_30000217/article/details/51106192

CentOS下使用crontab+mysqldump实现定时自动备份数据库的更多相关文章

  1. SQL Server 定时自动备份数据库

    在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库,这篇文章介绍使用SQL Server 数据库代理中的作业定时自动备份数据库. 1.启动SQL Server代理服务,如下图: 绿色 ...

  2. 【转载】Sqlserver通过维护计划定时自动备份数据库

    Sqlserver数据库的运维过程中,数据库的备份操作至关重要,平时我们都是手动进行数据库的备份操作.如果要做到让数据库定时自动备份,则可以使用Microsoft SQL Server Managem ...

  3. Linux下shell脚本实现mongodb定时自动备份

    MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功 ...

  4. CentOS下使用crontab命令来定时执行任务

    原文地址:http://www.centoscn.com/CentOS/help/2015/0424/5261.html crontab命令 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说, ...

  5. 使用linux下的crontab定时任务跑定时脚本

    使用linux下的crontab定时任务跑定时脚本 tags:定时任务 定时脚本 crontab linux定时脚本 linux 引言:应该有许多人曾经很好奇一些定时脚本是怎么做出来的.我们这次就来说 ...

  6. mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库

    手动备份: cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin mysqldump -u root - ...

  7. Windows 下 MySQL 简单定时自动备份、删除过期备份

    Windows 下 MySQL 简单定时自动备份.删除过期备份 MySQL Workbench 客户端虽然好用,但并不提供自动备份功能.手工备份,确实繁琐. 新建一个 数据库备份文件存放目录,本例为D ...

  8. PostgreSQL定时自动备份

    PostgreSQL定时自动备份 简介 PostgreSQL数据库中未提供数据库的定时备份功能,所以需要结合备份和定时job功能来共同实现. 这里我选取了2种定时job方式,crontab是Linux ...

  9. SQL Server数据库定时自动备份

    SQL Server 数据库定时自动备份[转]   在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求 ...

随机推荐

  1. windows7下安装apache+PHP5.3

    Apache+PHP 安装与配置 最近在学习PHP,所以就在windows7下安装了PHP的开发环境.之所以没有选择集成的软件,如WAMP.AppServ等套件,是为了单独安装这些软件,有助于更加深入 ...

  2. oracle 11g空表导不出问题

    查询空表 ' 生成分配空间的执行语句 or num_rows is null 复制出来执行即可.

  3. openstack neutron中涉及的网络设备

    一.openstack neutron网络设备介绍 Bridge(网桥) 用于将两个LAN连接起来,主要靠的MAC地址学习机制.当网桥的Port收到包时会将包的源mac和port ID关联起来记入ma ...

  4. apktool 在mac下的使用 -反编译安卓apk文件

    1.下载apktool 点击这里下载 ,里面有两个文件,一个是.jar,一个是自己写的脚本.sh 注:最新的apktool.jar 文件可以点击这里下载 .sh脚本是自写脚本可不用更新最新,下载的ja ...

  5. eclipse导入class文件

    右键src文件夹->build path->config build path->library->add class folder->create new folder ...

  6. Oracle 12C -- Plug in a Non-CDB as a PDB

    1.备份non-CDB数据库2.关闭non-CDB数据库 SQL> shutdown immediate; 3.将non-CDB至于只读状态 SQL> startup open read ...

  7. 反射式光电开关QRE1113

    The QRE1113 is a small IR reflectance sensor. This sensor is often used in line following robots bec ...

  8. Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应

    杂家前文Android颜色对照表只有颜色和十六进制,有时候需要设置r g b分量的int值,如paint.setARGB(255, 127, 255, 212);就需要自己计算下分量的各个值.这里提供 ...

  9. 关于thymeleaf+layout布局的使用方式,spring boot 访问页面(静态页面及jsp页面)

    首先建立相同部分的html,这里我命名为layout.html,放在了`templates/layout'文件夹下,这个路径以后是会用到的,以下是我的layout的代码,比较粗糙. 但是应该会更好的帮 ...

  10. CentOS7 安装java 环境 摘抄

    转http://www.diyhi.com/hostConfig.html 服务器环境配置 下面介绍全新安装的CentOS系统服务器安装配置商城软件服务环境的方法.演示主机操作系统为CentOS 7. ...