zoukankan      html  css  js  c++  java
  • 程序员(媛)Shell脚本必备技能之中的一个: 在Linux下怎样自己主动备份mysql数据


    作者:荀彧(花名)


    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表示普通文件。

    -mtime +10   依照文件的更改时间来查找文件。+10表示文件更改时间距如今10天曾经;假设是 -mmin +10 表示文件更改时间距如今5分钟曾经。

    -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



    若是每天三点运行,则:

    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


  • 相关阅读:
    [leetcode-135-Candy]
    [leetcode-151-Reverse Words in a String]
    [leetcode-139-Word Break]
    [leetcode-129-Sum Root to Leaf Numbers]
    [leetcode-143-Reorder List]
    [leetcode-141-Linked List Cycle]
    oracle 环境变量(中文显示乱码)
    Oracle 自增长id
    Spring.net 事件的注入
    Spirng.net 替换任意方法
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6962634.html
Copyright © 2011-2022 走看看