这里没优化,只是对腾讯云下载慢日志,然后通过邮件发送出去

#!/usr/bin/env python
# encoding: utf-8 import json
import smtplib
import urllib2
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from QcloudApi.qcloudapi import QcloudApi
from datetime import timedelta, datetime yesterday = datetime.today() + timedelta(-1)
yesterday_format = yesterday.strftime('%Y%m%d') log_test1_dir = '/data/logsbak/slowlog/test1/'
log_test2_dir = '/data/logsbak/slowlog/test2/' def download(url,filename):
url = url
f = urllib2.urlopen(url)
data = f.read()
with open(filename, "wb") as code:
code.write(data) def sendmail(sender,password,receivers,smtpServer,subject,content,file1,file2):
sender = sender
password = password
receivers = receivers
smtp_server = smtpServer
message = MIMEMultipart()
message['From'] = sender
message['To'] = ','.join(receivers)
message['Subject'] = subject
message.attach(MIMEText(content, 'plain', 'utf-8'))
file_test1 = log_test1_dir + file1
file_test2 = log_test2_dir + file2
att1 = MIMEText(open(file_test1, 'rb').read(), 'base64', 'utf-8')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'attachment; filename=%s' %file1
message.attach(att1)
att2 = MIMEText(open(file_test2, 'rb').read(), 'base64', 'utf-8')
att2["Content-Type"] = 'application/octet-stream'
att2["Content-Disposition"] = 'attachment; filename=%s' %file2
message.attach(att2)
server = smtplib.SMTP(smtp_server,25)
#server.set_debuglevel(1)
server.login(sender,password)
server.sendmail(sender,receivers,message.as_string())
server.quit() def qcloud_cdb_log(SecretId,SecretKey,Region):
module = 'cdb'
action = 'GetCdbExportLogUrl'
action_params = {
'cdbInstanceId':'cdb-l2lpuyjt',
'type':'slowlog_day',
}
config = {
'Region': Region,
'secretId': SecretId,
'secretKey': SecretKey,
} try:
service = QcloudApi(module, config)
cdb = json.loads(service.call(action, action_params))
return cdb['data']
except Exception as e:
import traceback
print('traceback.format_exc():\n%s' % traceback.format_exc()) if __name__ == '__main__':
cdb_data = qcloud_cdb_log('sjsldjflsjdfljsljdljwejjlwjkljlwer','sldjflsjdlfjsljdfljsljfldkjslfjldsjlfjdslf','ap-beijing')
logname_test1 = cdb_data[-2]['file_name']
link_test1 = cdb_data[-2]['out_url']
slowlog_test1 = log_test1_dir + logname_test1
logname_test2 = 'test2_slowlog_' + yesterday_format + '.log'
download(link_test1,slowlog_test1)
sender = 'jiankong@test.com'
#receivers = ['lw@test.com']
receivers = ['xb@test.com']
password = ''
smtpServer = 'smtp.test.com'
subject = '慢日志'
content = '慢日志,请查看附件'
sendmail(sender,password,receivers,smtpServer,subject,content,logname_test1,logname_test2)

python下载腾讯云慢日志并发送邮件附件的更多相关文章

  1. Python脚本收集腾讯云CDN日志,并入ELK日志分析

    负责搭建公司日志分析,一直想把CDN日志也放入到日志分析,前些日志终于达成所愿,现在贴出具体做法: 1.收集日志 腾讯云CDN日志一般一小时刷新一次,也就是说当前只能下载一小时之前的日志数据,但据本人 ...

  2. python调用腾讯云短信接口

    目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...

  3. Python使用腾讯云-短信服务发送手机短信

    目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 国内短信支持操作: • 指定模板单发短信 • 指定模板群发短信 • 拉取短信回执 ...

  4. Python调用腾讯云API,实现人脸年龄变化

    网上看到了一个教程,调用腾讯云的人脸识别api和修改年龄api来实现模拟人物不同年龄的面貌 但是大多数教程的代码都是想同的,估计是抄袭哪个人的关键是执行不了 刚好周杰伦马上要发新专辑了,小改一下,拿杰 ...

  5. 腾讯云服务器使用smtp发送邮件

    问题:在腾讯云服务器上使用自编写的邮件服务失败.查其原因,是该邮件服务调用smtpclient.Send(mailMessage)时,出现错误:由于连接方在一段时间后没有正确答复或连接的主机没有反应, ...

  6. 关于python 使用腾讯云OCR 通用印刷体识别

    腾讯的python SDK没有通用印刷体识别,所以参考了别人识别网上图片的方式:https://www.cnblogs.com/semishigure/p/7690789.html 但是咱们使用的基本 ...

  7. Python FLask 腾讯云服务器部署

    CentOs 7.0云服务器部署Python Flask 使用: Python 2.7 Flask nginx gunicorn easy_install python-dev yum install ...

  8. redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载

    背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...

  9. 腾讯云申请SSL证书与Nginx配置Https

    0x00 为什么要安装证书 信息传输的保密性 数据交换的完整性 信息的不可否认性 交易者身份确定性 如今各大浏览器厂商不断推进Https安全访问强制性要求,为了避免以后网站数据量增多时安装证书造成不必 ...

随机推荐

  1. linux中MySQL本地可以连接,远程连接不上问题

    1.网络或防火墙问题 (1)检查网络直接ping你的远程服务器,ping 182.61.22.107,可以ping通说明网络没问题 (2)看端口号3306是不是被防火墙挡住了,telnet 182.6 ...

  2. C#外围工具资源

    1.MATH.NET数学库:可以用于 矩阵计算 方程求根 插值拟合 ... 2.

  3. 带WHERE子句的UPDATE语句

    目前演示的几个UPDATE语句都是一次性更新所有行的数据,这无法满足只更新符合特定条件的行的需求,比如“将Tom 的年龄修改为12 岁”.要实现这样的功能只要使用WHERE 子句就可以了,在WHERE ...

  4. python3-开发面试题(python)6.24基础篇(3)

    1.用一行代码实现数值交换: 
 a = 1 
 b = 2 a,b=b,a 2.Python3和Python2中 int 和 long的区别? long整数类型被Python3废弃,统一使用int ...

  5. C#Windows服务:一些方法(启动、停止等)

    前面讲述了如何创建和安装服务(创建windows服务),下面把启动.停止.判断是否启动的方法也写一下. /// <summary> /// 判断是否安装了某个服务 /// </sum ...

  6. SweetAlert和MBProgressHUD冲突的解决办法

    解决方法 :   UIView *view = [UIApplication sharedApplication].keyWindow;             NSLog(@" -- &g ...

  7. 网络采集软件核心技术剖析系列(7)---如何使用C#语言搭建程序框架(经典Winform界面,顶部菜单栏,工具栏,左边树形列表,右边多Tab界面)

    一 本系列随笔概览及产生的背景 自己开发的豆约翰博客备份专家软件工具问世3年多以来,深受广大博客写作和阅读爱好者的喜爱.同时也不乏一些技术爱好者咨询我,这个软件里面各种实用的功能是如何实现的. 该软件 ...

  8. 现在就可以使用的5个 ES6 特性

    小编推荐:掘金是一个高质量的技术社区,从 ECMAScript 6 到 Vue.js,性能优化到开源类库,让你不错过前端开发的每一个技术干货.各大应用市场搜索「掘金」即可下载APP,技术干货尽在掌握. ...

  9. vim 代码注释插件

    参考: 1.http://www.vim.org/scripts/script.php?script_id=1218 2.http://www.dutor.net/index.php/2010/05/ ...

  10. [转] Matlab与C++混合编程,添加OpenCV库

    原文地址 峰回璐转 最近在做运动医学软件优化工作,此款软件框架及算法语言全由matlab实现,虽然matlab矩阵运算.数值计算能力强大,但速度让人难以忍 受.软件立刻移植到C++上又不太实际,故采用 ...