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

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

    滚动升级Deployment 现在我们将刚刚保存的yaml文件中的nginx镜像修改为 nginx:1.13.3,然后在spec下面添加滚动升级策略:   1 2 3 4 5 6 7 minReady ...

  2. JSONObject.parseObject(jsonStr);和JSONObject.fromObject(jsonStr);

    虽然都是返回JSONObject,但是 JSONObject.parseObject(jsonStr);这个方法需要导入import com.alibaba.fastjson.JSONObject; ...

  3. tf.gfile

    一.功能和目的 tf.gfile模块定义在tensorflow/python/platform/gfile.py,但其源代码实现主要位于tensorflow/tensorflow/python/lib ...

  4. 转 windows查看端口占用命令

    转自  http://www.cnblogs.com/allenblogs/archive/2010/06/25/1765055.html 开始--运行--cmd 进入命令提示符 输入netstat ...

  5. C语言学习笔记 (001) - 常量指针与指针常量的区别(转帖)

    三个名词虽然非常绕嘴,不过说的非常准确.用中国话的语义分析就可以很方便地把三个概念区分开. 一) 常量指针. 常量是形容词,指针是名词,以指针为中心的一个偏正结构短语.这样看,常量指针本质是指针,常量 ...

  6. [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 》简单xml创建-json转xml

    [.NET] 使用VALIDATIONCONTEXT快速进行模型资料的验证 在进行WebAPI功能开发的时候,一般传统的验证资料是否合法的方式,都是透过if/else的方式进行判断若是使用Valida ...

  7. java可视化编程-eclipse安装windowbuilder插件(转载)

    原文地址:http://blog.csdn.net/jason0539/article/details/21219043 一直做在安卓用xml作界面,对于java的控件不熟悉,也不习惯用代码做UI尤其 ...

  8. thinkphp __hash__

    thinkphp会自动在模板文件的表单后加一个__hash__来验证提交,保证一定程序上的安全: 但是有时用不着,可以用: C('TOKEN_ON',false); 关闭这项

  9. WARNING: The host 'r6' could not be looked up with /usr/local/mysql/bin/resolveip.

    初始化MySQL数据库提示以下信息: # /usr/local/mysql/scripts/mysql_install_db \ > --defaults-file=/etc/my.cnf \ ...

  10. Java – How to get current date time

    Java – How to get current date time 1. Code SnippetsFor java.util.Date, just create a new Date() Dat ...