实现Mysql正式库数据导出并上传到测试机(二)

因为开发需求,需要将几张表的数据每月都导出并上传到测试机,故修改上一份代码,将时间参数输入改为获取上个月的第一天和最后一天。

修改后代码如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-08-02 10:24:05
# @Author  : Zhou Jiaan
# @Version : $2.0
#根据开发要求将channelStatic tradeInfo iflogInfo 上个月的数据导入测试机

import os
import sys
import datetime
import calendar

def ExportData( start_date, end_date):
    month=datetime.datetime.now().month-1
    os.system(
        "mysql -hXX.XX.XX.XXX -uroot -pXXXXXXX mycart -e \"select * from  channelStatic WHERE ordtime BETWEEN '{0}' AND '{1}' \"  >/home/zhouja01/log/20channelStatic_{2}.txt".format(start_date, end_date,month))

def main():
    today = datetime.date.today()
    end_date= datetime.date(today.year, today.month, 1) - datetime.timedelta(1)
    start_date = datetime.date(end_date.year, end_date.month, 1)
    ExportData(start_date, end_date)
if __name__ == '__main__':
    main()

将导出数据下载到堡垒机并上传到测试机:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2018-08-03 10:03:09
# @Author  : Zhou Jiaan
# @Version : $V2.0

import os
import sys
import datetime

def remote_mysql_system():
    month=datetime.datetime.now().month-1
    mysql_system_ip = ['10.1.11.37', ]
    tableName = ['channelStatic','tradeInfo','iflogInfo']
    for mysql_ip in mysql_system_ip:
        for table_name in tableName:
            os.system("ssh zhouja01@{0} 'python /home/zhouja01/bin/threetable.py'".format(mysql_ip))
            os.system("scp zhouja01@{0}:/home/zhouja01/log/{1}{2}_{3}.txt /home/zhouja01/log/".format(mysql_ip,mysql_ip[3:5],table_name,month))
            os.system("scp /home/zhouja01/log/{0}{1}_{2}.txt root@10.1.100.240:/home/zhouja01/log".format(mysql_ip[3:5],table_name,month))

def main():
    remote_mysql_system()

if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值