#!/bin/bash
DUMP=/usr/bin/mysqldump
MYSQL=/usr/bin/mysql
IPADDR=127.0.0.1
PORT=3306
USER=abc
PASSWD=123456
DATABASE=(db1 db2 db3)
ROOT_DIR=/data
LogFile=/var/log/mysqldunp.log
DATE="`date +%Y%m%d`"
MYSQLCMD="$MYSQL -h$IPADDR -P$PORT -u$USER -p$PASSWD"
MYSQLDUMP="$DUMP -h$IPADDR -P$PORT -u$USER -p$PASSWD"
OUTDIR="${ROOT_DIR}/mysql/${DATE}/${DATABASE}" function log_info(){
echo -e "[`date +%Y-%m-%d\ %H:%M:%S`] - INFO " $@" " >> $LogFile
}
function log_error(){
echo -e "[`date +%Y-%m-%d\ %H:%M:%S`] - ERROR " $@" " >> $LogFile
}
function backup(){
database=$1
table=$2
$MYSQLDUMP $DATABASE $table > ${OUTDIR}/${DATE}-${database}-${table}.sql
if [ $? == 0 ];then
log_info "${database} database ${table} table Backup successfully!"
else
log_error "${database}-${table} Backup failure 100"
exit 100
fi
}
function create_directory(){
database=$1
outdir="${ROOT_DIR}/mysql/${DATE}/${database}"
[ -d $outdir ] || mkdir -p $outdir
if [ -d $outdir ];then
log_info "Directory created successfully! --> ${outdir}"
else
log_error "${outdir} Directory creation failed."
log_error "Backup to terminate."
fi
}
function tables_bak(){
database=$1
table=(`$MYSQLCMD -e "show tables from $database;" | sed '1d'`)
log_info "${#table[*]} tables : ${table[*]}"
for table in ${table[*]}
do
backup $database $table
done
} log_info "Database backup starts `date +%Y-%m-%d\ %H:%M:%S`" for db in ${DATABASE[*]}
do
create_directory $db
tables_bak $db
done

最新文章

  1. Ixia测试仪的自动化
  2. 树-红黑树(R-B Tree)
  3. SDK平台三态按钮的实现
  4. Angular4--提速--提升Angular项目的首页打开速度(包含微信登录优化)
  5. ASP.NET Web API编程——路由
  6. Webhook 实践 —— 自动部署
  7. spoj Minimax Triangulation
  8. 【深度学习】Pytorch 学习笔记
  9. SVM总结(转)
  10. SpringBoot 初接触之 404
  11. 什么是控制反转(IOC)?什么是依赖注入?
  12. 纯SVG实现的Loading动画,拿走不谢
  13. php Only variables should be passed by reference 报错问题
  14. Linux内核(6) - 模块机制与“Hello World!
  15. sails ORM组件 Waterline v0.10 英文文档
  16. PHP5.5的新特性
  17. [原创] SiteServer 3.5 批量导入文章的SQL处理脚本
  18. MapReduce实战(三)分区的实现
  19. 005 Genymotion模拟器的使用和逍遥模拟器的使用
  20. Git读档

热门文章

  1. Ride to Office(贪心水题)
  2. 使用Anaconda3安装tensorflow,opencv,使其可以在spyder中运行
  3. elementUI 导航栏点击之后改变背景色,背景色悬停
  4. 测试微信小程序页面的生命周期
  5. elasticsearch 基础 —— 索引、更新文档
  6. 录制rtsp音视频
  7. elk相关启动脚本-shell编写
  8. go语言从例子开始之Example35.原子计数器
  9. mysql授予权限
  10. 什么是ppa