zoukankan      html  css  js  c++  java
  • MySQL逻辑备份mysqldump

    一个用mysqldump做逻辑备份的小脚本

    用于小数据量的备份,全库,按日期,按库,按表,进行分类

    # date -s "2015/01/01" && bash mybackup.sh

    #!/bin/bash
    
    # 使用mysqldump进行逻辑备份
    # 目录结构/backup/日期 
    # 每隔7天删除旧的备份目录
    
    db_backup_root="/backup"
    today=`date +%Y%m%d`
    
    old_backup_dir=`date -d "-7 day" +%Y%m%d`
    
    
    db_user="root"
    db_passwd="geekoo"
    sock=`mysql -u$db_user -p$db_passwd -e "show variables like '%sock%'" | grep -v Variable_name | awk {'print $2'}`
    mysql_client=`which mysql`
    mysqldump_client=`which mysqldump`
    xmysql="$mysql_client -S $sock -u$db_user -p$db_passwd"
    xmysqldump="$mysqldump_client -S $sock -u$db_user -p$db_passwd"
    
    
    if [ -d $old_backup_dir ]; then
    	echo "delete old backup $old_backup_dir"
    	rm -rf $old_backup_dir
    fi
    
    if [ ! -d $today ]; then
    	mkdir -p $db_backup_root/$today
    fi
    
    $xmysql -e "show databases;" | grep -vE "(Database|_schema)" > $db_backup_root/$today/db_list
    
    while read dbname
    do 
    echo $dbname
    
    if [ ! -d $db_backup_root/$today/$dbname ]; then
    	mkdir -p $db_backup_root/$today/$dbname
    fi
    
    $xmysql -e "use $dbname; show tables;" | grep -v Tables_in > $db_backup_root/$today/$dbname/table_list
    
    	while read tablename
    	do
    	echo $tablename
    	$xmysqldump $dbname $tablename -R --events --triggers > $db_backup_root/$today/$dbname/$tablename.sql
    	
    	done < $db_backup_root/$today/$dbname/table_list
    done < $db_backup_root/$today/db_list
    
  • 相关阅读:
    android: LayoutInflater使用
    android:ListView bbs Demo
    android:制作 Nine-Patch 图片
    android:单位和尺寸
    android:提升 ListView 的运行效率
    android:定制 ListView 的界面
    android:ListView 的简单用法
    android:创建自定义控件
    android:四种基本布局
    android:ProgressDialog控件
  • 原文地址:https://www.cnblogs.com/chgxtony/p/4916621.html
Copyright © 2011-2022 走看看