线上用的是阿里云RDS数据库

某些应用的日志信息需要写入到数据表里面,表需要提前创建好,否则数据就丢失了。


总共需要创建4张表

shell脚本如下:


#!/bin/bash


base="xxa.rds.aliyuncs.com"

express="xxb.mysql.rds.aliyuncs.com"

log="xxc.rds.aliyuncs.com"


#上一个月

before_mon=`date -d "-1 month" +"%m"`

#下一个月

next_mon=`date -d "+1 month" +"%m"`


#上一个月,去掉月前面的0

before_mv_mon=`date -d "-1 month" +"%-m"`

#下一个月,去掉月前面的0

next_mv_mon=`date -d "+1 month" +"%-m"`


#前一个月的年份

year=`date +%Y`

#下一个月的年份

year_next=`date -d "+1 month" +"%Y"`


/usr/local/mysql/bin/mysql -u xxuser -pxxpass -h $base -e "use kd_shop;CREATE TABLE tbl_scan_to_e3_bak_"$year_next"_$next_mv_mon like tbl_scan_to_e3_bak_"$year"_$before_mv_mon;"

sleep 1

/usr/local/mysql/bin/mysql -u xxuser -pxxpass -h $base -e "use kd_shop;CREATE TABLE tbl_scan_to_qf_bak_"$year_next"_$next_mv_mon like tbl_scan_to_qf_bak_"$year"_$before_mv_mon;"

sleep 1

/usr/local/mysql/bin/mysql -u xxuser -pxxpass -h $base -e "use sms;CREATE TABLE tbl_sms_history_"$year_next"$next_mon like tbl_sms_history_"$year"$before_mon;"

sleep 1

/usr/local/mysql/bin/mysql -u xxuser -pxxpass -h $log -e "use dts;CREATE TABLE dts_message_history_"$year_next"$next_mon like dts_message_history_"$year"$before_mon;"


设置权限

chmod 755 create_tables.sh


设置任务计划,每天跑一遍,防止未创建

01 23 * * * /opt/create_tables.sh