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

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

    1. nginx使用命令 nginx -s stop --快速关闭Nginx,可能不保存相关信息,并迅速终止web服务. nginx -s quit --平稳关闭Nginx,保存相关信息,有安排的结束 ...

  2. LUA可变长参数 ... 三个点

    本文翻译自 LUA官方文档 When a function is called, the list of arguments is adjusted to the length of the list ...

  3. Solr Wiki文档

    相比ElasticSearch,Solr的文档详尽丰富,同时也显得冗余啰嗦. Solr的官方文档有两个地方: Solr官方教程 Solr社区维基 本文主要列出一些Solr Wiki中的主要讨论主题,方 ...

  4. Java多线程编程:Callable、Future和FutureTask浅析

    通过前面几篇的学习,我们知道创建线程的方式有两种,一种是实现Runnable接口,另一种是继承Thread,但是这两种方式都有个缺点,那就是在任务执行完成之后无法获取返回结果,那如果我们想要获取返回结 ...

  5. 转:Spring Cache抽象详解

    缓存简介 缓存,我的理解是:让数据更接近于使用者:工作机制是:先从缓存中读取数据,如果没有再从慢速设备上读取实际数据(数据也会存入缓存):缓存什么:那些经常读取且不经常修改的数据/那些昂贵(CPU/I ...

  6. 给定数组a[1,2,3],用a里面的元素来生成一个长度为5的数组,打印出其排列组合

    给定数组a[1,2,3],用a里面的元素来生成一个长度为5的数组,打印出其排列组合 ruby代码: def all_possible_arr arr, length = 5 ret = [] leng ...

  7. Intel Edison学习笔记(一)—— 刷系统

    一.下载安装包 1.固件安装包:官网下载地址:http://downloadmirror.intel.com/ ... image-ww25.5-15.zip2 2.烧录工具下载地址:http://d ...

  8. MySQL 插入emoji 表情

    create table doctorUserInfoMation ( id int not null auto_increment comment '系统ID', userId ) comment ...

  9. sqlserver学习笔记(三)—— 为数据库添加新的用户

    首先,用windows或sa身份登录sqlserver, 打开安全性——登录名——右键新建登录名:在选择页——常规中,新建命为user_b的登录名,选择sqlserver身份验证方式,设置密码确认密码 ...

  10. ASP.NET Core 不同操作系统环境安装之Hello World 教程

    Official Website:https://www.microsoft.com/net/learn/get-started-with-dotnet-tutorial#install Window ...