免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2311 | 回复: 9
打印 上一主题 下一主题

发布一个MYSQL脚本 带压缩 显示压缩率 日志功能 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-21 22:01 |只看该作者 |倒序浏览
#!/bin/sh
#
# Copyright (C), 2007 bug All Rights Reserved
# Title       : Database Backup Script
# Author      : BUG
# File        : db_bak.sh
# Version     : 1.1.0
# Date        : 2008-03-21
# Email       : efbbb27115@homtail.com
# License     : General Public License (GPL) v2
# Description : Database Backup Script
#

initial() {
    echo -en "\33[2J"
    echo -en "\33[0;0H"
    echo -en "\33[32m"
    echo "------------------------------------------------------------"
    echo "---                Database Backup Script                ---"
    echo "------------------------------------------------------------"
    echo -en "\33[37m"
    stty -echo
    umask 077
    mysqln=`echo 'show databases;' | /usr/local/mysql/bin/mysql -psjldafhkg | sed -n '3,$p'`
    mysqlu="root"
    mysqlp="********"
    binpath="/usr/local/mysql/bin"
    dstpath="/pri/bak/sql_bak/"
    runuser=`ps aux | grep $$ | sed -n "1p" | awk '{ print $1 }'`
    mkdir -p $dstpath/`date +%y%m%d`
    exec 3>>$dstpath/`date +%y%m%d`/db_bak.log
}

initial

echo -e "\n[`date +%y/%m/%d\ %H:%M:%S`] Database Backup Script start by $runuser PID:$$" >&3

if [ -f "$dstpath/`date +%y%m%d`/lock" ]
then
    echo -e "\33[33mIt's has completed by `cat $dstpath/\`date +%y%m%d\`/lock`!!!\33[37m"
    echo "[`date +%y/%m/%d\ %H:%M:%S`] It's has completed by `cat $dstpath/\`date +%y%m%d\`/lock`!!!" >&3
else
    echo -e "Database\tExport\tCompress\tSql\tTgz\tRate"
    echo -e "\33[32m------------------------------------------------------------\33[37m"
    cd $dstpath/`date +%y%m%d`
    for db in $mysqln
    do
    echo -n "$db"
    $binpath/mysqldump --opt -u$mysqlu -p$mysqlp $db > $dstpath/`date +%y%m%d`/$db.sql 2> /dev/null
    RETVAL1=$?
    if [ $RETVAL1 -eq 0 ]
    then
    sqlsize=`du -k $db.sql | cut -f1`
    echo -n "[`date +%y/%m/%d\ %H:%M:%S`]" >&3
    echo -n "$db" | awk '{printf " %-17s", $1}' >&3
    echo -n "OK  " >&3
    echo -en "\r\t\t  \33[32mOK\33[37m\t"
    tar -czvf $db.tgz $db.sql > /dev/null 2>&1
        RETVAL2=$?
        if [ $RETVAL2 -eq 0 ]
        then
        tgzsize=`du -k $db.tgz | cut -f1`
        echo "OK" >&3
        rm -f $dstpath/`date +%y%m%d`/$db.sql
        echo -en "   \33[32mOK\33[37m"
        echo -en "\33[33m"
        echo -en "$sqlsize" | awk '{printf "%12sKB", $1}'
        echo -en "$tgzsize" | awk '{printf "%6sKB", $1}'
        echo "$sqlsize $tgzsize" | awk '{printf "%8.0f%",$2/$1*100}'
        echo -e "\33[37m"
        else
        echo "Compress fail return $RETVAL2" >&3
        echo -e "  \33[31mfail\33[37m"
        fi
    else
    echo -n "[`date +%y/%m/%d\ %H:%M:%S`]" >&3
    echo -n "$db" | awk '{printf " %-17s ", $1}' >&3
    echo "Export fail return $RETVAL1" >&3
    echo -en "\r\t\t   \33[31mfail\33[37m"
    fi
    done
    echo "`date +%H:%M:%S`">$dstpath/`date +%y%m%d`/lock
fi



[attachimg]239897[/attachimg]


[ 本帖最后由 a8e8c1ca5b 于 2008-3-21 22:29 编辑 ]

Untitled.jpg (30.75 KB, 下载次数: 38)

Untitled.jpg

论坛徽章:
0
2 [报告]
发表于 2008-03-21 22:22 |只看该作者
顶了,

论坛徽章:
0
3 [报告]
发表于 2008-03-22 09:05 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2008-03-27 19:59 |只看该作者
这么多人看 没人回

论坛徽章:
0
5 [报告]
发表于 2008-03-27 23:19 |只看该作者
好奇怪的数据库名啊~~

论坛徽章:
0
6 [报告]
发表于 2008-03-27 23:43 |只看该作者
很强。

论坛徽章:
0
7 [报告]
发表于 2008-03-27 23:45 |只看该作者
楼主对这种随机产生的名字比较感兴趣啊。

论坛徽章:
0
8 [报告]
发表于 2008-03-28 11:21 |只看该作者
总算是读完了

论坛徽章:
0
9 [报告]
发表于 2008-03-28 15:33 |只看该作者
原帖由 sieur 于 2008-3-27 23:45 发表
楼主对这种随机产生的名字比较感兴趣啊。


嗯,强人!

论坛徽章:
0
10 [报告]
发表于 2008-03-28 22:48 |只看该作者
长度一致 舒服
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP