文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Mysql备份脚本 带压缩 显示压缩率 日志

Mysql备份脚本 带压缩 显示压缩率 日志

时间:2008-04-25  来源:huzi1986

Mysql备份脚本 带压缩 显示压缩率 日志

March 21st, 2008

#!/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       : [email protected]
# 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

}initialecho -e “\n[`date +%y/%m/%d\ %H:%M:%S`] Database Backup Script start by $runuser PID:$$” >&3if [ -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 “%12dKB”, $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

This entry was posted on Friday, March 21st, 2008 at 10:06 pm and is filed under MySQL, Shell. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载