conf.sh文件
- mysql_source="mysql -h192.168.0.1 -P3306 -urw_user -pZ9a9dy3BcIMnrbf2Xfdp"
- mysql_dist="mysql -h127.0.0.1 -P9988 -uroot -proot"
- data_dir="/home/work/scripts/data"
- today=`date "+%Y%m%d"`
- dist_dbname="db_"$today
- if [ ! -d $data_dir ];then
- mkdir -p $data_dir
- fi
- # 生成导出数据文件名(全路径)
- function gen_filename()
- {
- echo $data_dir/$1"."$today
- }
- # 创建目标数据库
- function create_dist_database()
- {
- $mysql_dist -N -e "create database if not exists $dist_dbname"
- }
- # 从源数据库的数据表导出建表语句
- # 使用示例: sql=`get_create_table_sql ddd_car t_car`
- function get_create_table_sql()
- {
- res=`$mysql_source -N -e "use $1;show create table $2 \G"`
- echo "CREATE TABLE IF NOT EXISTS "${res#*CREATE TABLE}
- }
复制代码
dump.sh 文件
- #!/bin/sh
- # 引入conf.sh文件
- source ./conf.sh
- source_db=ddd_car
- source_table=t_batch_op_log
- dist_table=$source_table
- # 生成导出文件名,如果导出文件存在,表示已导过,退出
- file=`gen_filename $source_table`
- if [ -f $file ]; then
- exit 0
- fi
- # 从源数据表中导出数据到文件
- $mysql_source -N -e "use lang_car;SELECT * FROM t_car" > $file
- # 创建目标数据库(如果不存在)
- create_database
- # 创建目标数据表(如果不存在)
- create_table_sql=`get_create_table_sql $source_db $source_table`
- $mysql_dist -N -e "use $dist_dbname; $create_table_sql"
- # 导入数据
- $mysql_dist -N -e "use $dist_dbname; load data infile '$file' ignore into table $dist_table"
复制代码
|