MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。

1、创建备份文件夹
#cd /bak
#mkdir mysqldata

2、编写运行脚本
#nano -w /usr/sbin/bakmysql.sh
注:如使用nano编辑此代码需在每行尾添加'&&'或';'连接符,否则生成的文件名末尾字符为乱码

代码:
#!/bin/bash
# Name:bakmysql.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#
backupdir=/bak/mysqlbak
time=` date +%Y%m%d%H `
mysql_bin_dir/mysqldump -u user -ppassword dataname1 | gzip > $backupdir/name1$time.sql.gz
mysql_bin_dir/mysqldump -u user -ppassword dataname2 | gzip > $backupdir/name2$time.sql.gz
#
find $backupdir -name "name_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

保存退出

说明:
代码中time=` date +%Y%m%d%H `也可以写为time="$(date +"%Y%m%d$H")"
其中`符号是TAB键上面的符号,不是ENTER左边的'符号,还有date后要有一个空格。
mysql_bin_dir:mysql的bin路径;
dataname:数据库名;
user:数据库用户名;
password:用户密码;
name:自定义备份文件前缀标识。
-type f    表示查找普通类型的文件,f表示普通文件。
-mtime +5   按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。
-exec rm {} \;   表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。
/dev/null 2>&1  把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。

3、为脚本添加执行权限
# chmod +x /usr/sbin/bakmysql.sh

4、修改/etc/crontab(在centOS5中测试可行)
#nano -w /etc/crontab  
在最后一行中加入:  
00 3 * * * root /usr/sbin/bakmysql.sh
表示每天3点00分执行备份

注:crontab配置文件格式如下:
分 时 日 月 周  命令

Redhat方法:
Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。
Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。

5、重启crontab
# /etc/rc.d/init.d/crond restart  
完成。

6、恢复数据备份文件:

非压缩备份文件恢复:
   #mysql -u root -p dataname < name2008010103.sql

从压缩文件直接恢复:
   #gzip < name2008010103.sql.gz | mysql -u root -p dataname
或:
# zcat name2008010103.sql.gz  | mysql -u root -p

让linux每天定时备份MySQL数据库并删除五天前的备份文件的更多相关文章

  1. Linux实现定时备份MySQL数据库并删除30天前的备份文件

    1. MySQL5.6以上版本 2. 修改 /etc/my.cnf 文件 # vim /etc/my.cnf [client] host=localhost user=你的数据库用户 password ...

  2. linux定时备份MySQL数据库并删除七天前的备份文件

    1.创建备份文件夹 #cd /bak#mkdir mysqldata 2.编写运行脚本 #nano -w /usr/sbin/bakmysql.sh 注:如使用nano编辑此代码需在每行尾添加’&am ...

  3. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  4. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  5. linux设置定时备份mysql数据库

    最近写自己的项目,买了阿里云服务器,可以在云上根据自己想到的需求随意使用技术,感觉很爽.备份mysql流程如下: 环境:CentOS Linux release 7.2.1511 (Core) mys ...

  6. linux上定时备份mysql数据库

    定时备份数据库 /usr/sbin/backupmysql timestamp=`date +"%Y-%m-%d-%H-%M-%S"` mysqldump -uroot -p'12 ...

  7. 利用crontab系统每天定时备份MySQL数据库及删除指定crontab定时任务

    利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysqldata mkdir /mysqldata 2.创建/usr/sbin/ba ...

  8. crontab自动备份MySQL数据库并删除5天前备份

    1.创建备份文件夹 //备份数据库文件夹 mkdir /data/backmysql //crontab日志 mkdir /data/logs   2.创建脚本文件 db_user="xxx ...

  9. Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器操作系统:CentOSIP:192.168.0.198端口:1521SID:orclOracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务 ...

随机推荐

  1. Hadoop 管理工具HUE配置-hdfs_clusters配置

    在HUE的hdfs_clusters中目前主要是配置hdfs相关的,配置好了之后便可以在hue中愉快的管理数据了,不过目前的配置还是比较...简单的..    里面的配置主要是参考了hue官方文档,还 ...

  2. springboot+dubbo+tomcat部署出错问题

    刚用springboot+dubbo有点不熟悉,部署的时候出现了问题 1 The APR based Apache Tomcat Native library which allows optimal ...

  3. div+css命名大全

    头:header  内容:content/container  尾:footer  导航:nav  侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper  左右中:lef ...

  4. mysql 锁2

    官网地址 https://dev.mysql.com/doc/refman/5.5/en/innodb-transaction-isolation-levels.html 这里主要是说事务隔离级别,以 ...

  5. OpenStack基础知识

        什么是云计算     地址规划 主机名 IP OpenStack01 172.30.2.135           有了云主机可以灵活扩展 OpenStack分为agent 和server端 ...

  6. HDOJ 2002 计算球体积

    #include<cstdio> #define PI 3.1415927 int main() { double r; while (scanf_s("%lf", & ...

  7. NFS应用场景及环境搭建

    两台虚拟机,一台做服务端(server)用来存储,一台做客户端(client)用来访问. 注意,两台虚拟机都已经挂载完光盘,并配置好yum源.客户端client已经安装好lamp环境,服务端不做任何处 ...

  8. [UE4]让子弹产生伤害

  9. eMTC/NB/LTE拨号

    挂起-恢复流程挂起恢复流程是eMTC/NB-IoT等蜂窝物联网技术才引进的,LTE并不具备这样的流程.这种机制的引入主要针对物联网海量连接,不活跃小数据包的特点,适时的挂起流程可以减少网络的资源开销, ...

  10. adb显示 部分乱码修改方法

    用windows自带的命令行[cmd]软件链接adb 设备后,部分显示乱码,如下图片所示: 图1 修改方法如下: alias ls='busybox ls --color=never' 修改后显示正常 ...