线上mysql数据库备份

  

# !/bin/bash
#=============================================================================
#文件名:MySQLBackup。sh
# Desc: MySQL数据库备份工具。
#作者:chenzm
#电子邮件:969113439 @qq.com
#主页:http://chenzm0592.blog.51cto.com/
#版本:0.0.1
# LastChange: 2013-11-15 09:16:39
#历史:
#=============================================================================

cd/opt/MySQLBackup
。/etc/profile

用户名=
密码“根”=懊苈搿?br/>
U_ID=0
G_ID=

#设置,mysqldump参数
, mysqldump=", mysqldump——选择——default-character-set=utf8——skip-lock-tables - c”

#设置压缩参数从stdin读取
压缩=癵zip 9”

#设置压缩文件的后缀名,请与压缩参数相对应
COMPRESS_EXT=肮阒荨?br/>
=$日期(日期+ Y % - % - % d)
mkdir - p日志/

#定义日志输入
log()函数{
,,,# echo - ne $ {1}
,,,echo $ {1} - ne在祝辞日志/备份- ${日期}。日志
}

#计算字符时,分,秒
函数charDate () {
,,,日期
=1美元,,,如果(${日期}lt 60,];然后
,,,,,,,echo " ${日期}秒"
,,,elif[${日期}ge 60),,(${日期}3600 lt);然后
,,,,,,,回声”((日期/60))分美元(% 60)(日期)秒“
,,,其他
,,,,,,,M=$(% 3600)(日期)
,,,,,,,回声“$((日期/3600))小时((M/60))分美元((M % 60))秒“
,,,fi
}

TIME_HOST_START=$(日期+ % s)
重试=0
:

做,,,data=https://www.yisu.com/zixun/$ (mysql - u $ {USERNAME} - p ${密码}- h IP - e展示会的数据库“2祝辞,1)
,,,如果[$ ?==0);然后
,,,,,,,打破
,,,elif[${重试}通用电气5];然后
,,,,,,,日志”连接到数据库失败…退出。\ n "
,,,,,,,退出1
,,,fi
,,,(重试+ +)


完成DBS=$(回声   ${数据}| awk的开始{分裂(“测试| information_schema”,加勒比海盗,“|”);(我   arr arr) b[[我]]}结束的{(i=2; i<=NF;我+ +)如果(我在b==0美元)打印$我}”)
DB_TOTAL=$ (echo $ {DBS} | awk{打印NF})

日志”总计数据库数量:$ {DB_TOTAL} \ n "
日志”正在备份,请稍后....\ n "

mkdir - p/databak/IP/db/${日期}
db在$ {DBS}

,,,TIME_DB_START=$(日期+ % s)
,,,日志”正在导出:$ {DB}……”
,,,   $ {MYSQLDUMP} - u $ {USERNAME} - p ${密码}- h IP $ {DB}   2在祝辞日志/错误。日志| ${}压缩比;   日期/databak/IP/db/$ {}/$ {db} . sql。$ {COMPRESS_EXT}

,,,#使用美元PIPESTATUS获取管道之前的退出状态
,,,如果($ {PIPESTATUS [0]} !=0,];然后
,,,,,,,日志”失败”
,,,其他
,,,,,,,(好+ +)
,,,,,,,日志”成功”
,,,fi
,,,TIME_DB_END=$(日期+ % s)
,,,时间=$ ((TIME_DB_END - TIME_DB_START))
,,,日志”——耗时:$ (charDate ${运行})\ n”

#完成乔恩- r $ {U_ID}: $ {G_ID}/db/ip/${日期}

TIME_HOST_END=$(日期+ % s)
运行=$ ((TIME_HOST_END - TIME_HOST_START))
日志”总计:$ {DB_TOTAL}成功:${好}失败:$ ((DB_TOTAL-OK)) -耗时:美元(charDate ${运行})\ n”
日志" $ (printf % 30年代\ n | tr ' ' -)美元(日期”+ Y % - % m - H % d %: % m: % s”)美元(printf % 30年代\ n | tr ' ' -) \ n”
  ,,,,,,,,,,,,,,,,,,,,,,,,   ,,,,,,,,,,,,,,,,,,,,,,

线上mysql数据库备份