作者:荀彧(花名)

Background:鉴于QAS数据库曾遭到毁灭性损害。极其桑心L。为了避免这样的玉石俱焚的状况再度发生。于是我们找出了一种应对方案。这里给大家分享一下怎样实现定时备份mysql数据库的脚本。

Target:每天对QAS数据库进行数据及表的备份而且删除掉10天之前的备份文件。

Working:三个步骤搞定。

Step 1: 准备两个文件

建备份目录qas_db_bak,建脚本文件autobackupmysql_qas.sh

[root@vm***** wewang]# ls

autobackupmysql_qas.sh qas_db_bak

打开脚本文件:

[root@vm***** wewang]# vi autobackupmysql_qas.sh

在脚本中加入内容:

#!/bin/bash

backupdir=/home/**/wewang/qas_db_bak

Now=$(date +"%Y-%m-%d--%H:%M:%S")

/usr/bin/mysqldump -u ghs -pacxiom qas|gzip > $backupdir/qas_bak_$Now.sql.gz

find $backupdir -name "qas_bak_*.sql.gz" -type f -mtime +10 -exec rm {} \; > /dev/null 2>&1

:wq 返回退出后,对文件进行运行权限的更改。保证脚本能够被运行:

[root@vm***** wewang]# chmod +xautobackupmysql_qas.sh

截图例如以下:

解析:

name:自己定义备份文件前缀标识。

-type f    表示查找普通类型的文件。f表示普通文件。

天曾经;假设是
-mmin +10 分钟曾经。

-exec rm {} \;   表示运行一段shell命令。exec选项后面尾随着所要运行的命令或脚本。然后是一对儿{
},一个空格和一个\。最后是一个分号。

/dev/null 2>&1  把标准出错重定向到标准输出,然后扔到/DEV/NULL以下去。通俗的说。就是把全部标准输出和标准出错都扔到垃圾桶里面;当中的&表示让该命令在后台运行。

Step 2: 更改定时运行脚本,这里有两种case:

Case 1: 普通情况。打开自己主动运行文件 /etc/crontab,在crontab文件里增加例如以下内容,让其自己主动运行任务

[root@vm10074 wewang]# vi /etc/crontab

加入例如以下代码:

这里的样例是每小时26分的时候运行:

26 * * * * root /home/**/wewang/autobackupmysql_qas.sh

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

若是每天三点运行,则:

00 3 * * * root /home/**/wewang/autobackupmysql_qas.sh

Case 2: Redhat情况。(也就是当前用的Linux系统)将刚才编辑的脚本拷贝到对应的文件夹就可以

[root@vm***** wewang]# cp autobackupmysql_qas.sh /etc/cron.daily/

截图例如以下:

解析: 这里是每天4点28分左右才运行,可是这个job运行的时间也是随机的。

Redhat的crontab採用按时间调用4个文件夹(

/etc/cron.hourly:每小时;

/etc/cron.daily:每天;

/etc/cron.weekly:每周。

/etc/cron.monthly:每月)中脚本出来执行的方式。

Step 3: 重新启动etc

[root@vm10074 wewang]# /etc/rc.d/init.d/crondrestart

Stopping crond:                                            [  OK  ]

Starting crond:                                           [  OK  ]

定时备份的效果例如以下:

Ps: 假设想要解压查看,则通过命令查看:gunzip -c qas-bak-2015-07-30--04:29:02.gz > 1.bak

程序员(媛)Shell脚本必备技能之中的一个: 在Linux下怎样自己主动备份mysql数据的更多相关文章

  1. 解析PHP程序员需要掌握的必备技能

    转自:http://www.php100.com/html/php/lei/2013/0904/4199.html 作为PHP的爱好者,如果你想加入PHP程序的世界,一定要做好充分的准备.建议大家阅读 ...

  2. MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

    MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中 ...

  3. linux c程序中获取shell脚本输出的实现方法

    linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作. ...

  4. Android应用程序如何调用shell脚本(一)

    转自: Android应用程序如何调用shell脚本(一) 一般来说, Android 下的应用程序可以“直接”得到的最大的权限为 system ,但是如果我们需要在程序中执行某些需要 root 权限 ...

  5. Web程序员开发App系列 - 开发我的第一个App,源码下载

    Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...

  6. 在Linux下如何用Shell脚本读写XML?现有一个config.xml(转)

    在Linux下如何用Shell脚本读写XML?现有一个config.xml <?xml version="1.0" encoding="UTF-8"?&g ...

  7. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---6

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...

  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---5

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...

  9. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---4

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...

随机推荐

  1. Hadoop一主一从部署(2)

    Hadoop部署一主一从(2) 1.关闭防火墙和Linux守护进程 执行命令: iptables -F setenforce 0 2.对Hadoop集群进行初始化,在namenode(主机)上执行命令 ...

  2. Coursera公开课-Machine_learing:编程作业6

    Support Vector Machines I have some issues to state. First, there were some bugs in original code wh ...

  3. 轻量数据库SQLiteDataBase的相关操作方法

    一.查询操作: 查询操作比较复杂,主要有如下操作: db.rawQuery(String sql, String[] selectionArgs); db.query(String table, St ...

  4. OPPO R9sPlus MIFlash线刷TWRP Recovery ROOT详细教程

    教程转载来自 残芯此生不换  OPPO R9sPlus 目前最简单的刷Recovery root 方法,强烈推荐 新机想要刷第三方卡刷包的最简单过程是:           手机关机-->下载M ...

  5. 书不在多,精读则灵 - Oracle入门书籍推荐

      作者:eygle |English [转载时请标明出处和作者信息]|[恩墨学院 OCM培训传DBA成功之道]链接:http://www.eygle.com/archives/2006/08/ora ...

  6. Matlab atan2

    对Matlab不是很熟悉,在这个Matlab atan2 函数上出现了问题. 百度知道上的解释是这样的: atan2() 区别于 atan() 函数,返回 -pi~+pi 范围的角度: 使用过程中发现 ...

  7. (转)基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理

    http://www.cnblogs.com/wuhuacong/p/4757984.html 最近一直很多事情,博客停下来好久没写了,整理下思路,把最近研究的基于Metronic的Bootstrap ...

  8. 函数式编程-将Monad(单子)融入Swift

    前言 近期又开始折腾起Haskell,掉进这个深坑恐怕很难再爬上来了.在不断深入了解Haskell的各种概念以及使用它们去解决实际问题的时候,我会试想着将这些概念移植到Swift中.函数式编程范式的很 ...

  9. Memcached 之内存管理与删除机制

    一.内存的碎片化 如果用c语言直接 malloc,free 来向操作系统申请和释放内存时,在不断的申请和释放过程中,形成了一些很小的内存片断,无法再利用,这种空闲,但无法利用内存的现象称为内存的碎片化 ...

  10. vue使用插槽分发内容slot的用法

    将父组件的内容放到子组件指定的位置叫做内容分发 //在父组件里使用子组件 <son-tmp> <div>我是文字,我需要放到son-tmp组件里面制定的位置</div&g ...