python下载腾讯云慢日志并发送邮件附件
这里没优化,只是对腾讯云下载慢日志,然后通过邮件发送出去 #!/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下载腾讯云慢日志并发送邮件附件的更多相关文章
- Python脚本收集腾讯云CDN日志,并入ELK日志分析
负责搭建公司日志分析,一直想把CDN日志也放入到日志分析,前些日志终于达成所愿,现在贴出具体做法: 1.收集日志 腾讯云CDN日志一般一小时刷新一次,也就是说当前只能下载一小时之前的日志数据,但据本人 ...
- python调用腾讯云短信接口
目录 python调用腾讯云短信接口 账号注册 python中封装腾讯云短信接口 python调用腾讯云短信接口 账号注册 去腾讯云官网注册一个腾讯云账号,通过实名认证 然后开通短信服务,创建短信应用 ...
- Python使用腾讯云-短信服务发送手机短信
目前[腾讯云短信]为客户提供[国内短信].[国内语音]和[海外短信]三大服务,腾讯云短信SDK支持以下操作: 国内短信 国内短信支持操作: • 指定模板单发短信 • 指定模板群发短信 • 拉取短信回执 ...
- Python调用腾讯云API,实现人脸年龄变化
网上看到了一个教程,调用腾讯云的人脸识别api和修改年龄api来实现模拟人物不同年龄的面貌 但是大多数教程的代码都是想同的,估计是抄袭哪个人的关键是执行不了 刚好周杰伦马上要发新专辑了,小改一下,拿杰 ...
- 腾讯云服务器使用smtp发送邮件
问题:在腾讯云服务器上使用自编写的邮件服务失败.查其原因,是该邮件服务调用smtpclient.Send(mailMessage)时,出现错误:由于连接方在一段时间后没有正确答复或连接的主机没有反应, ...
- 关于python 使用腾讯云OCR 通用印刷体识别
腾讯的python SDK没有通用印刷体识别,所以参考了别人识别网上图片的方式:https://www.cnblogs.com/semishigure/p/7690789.html 但是咱们使用的基本 ...
- Python FLask 腾讯云服务器部署
CentOs 7.0云服务器部署Python Flask 使用: Python 2.7 Flask nginx gunicorn easy_install python-dev yum install ...
- redisTemplate实现轻量级消息队列, 异步处理excel并实现腾讯云cos文件上传下载
背景 公司项目有个需求, 前端上传excel文件, 后端读取数据.处理数据.返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可能十分耗时, 没 ...
- 腾讯云申请SSL证书与Nginx配置Https
0x00 为什么要安装证书 信息传输的保密性 数据交换的完整性 信息的不可否认性 交易者身份确定性 如今各大浏览器厂商不断推进Https安全访问强制性要求,为了避免以后网站数据量增多时安装证书造成不必 ...
随机推荐
- CF 996B World Cup 【找规律/模拟】
CF [题意]:圆形球场有n个门,Allen想要进去看比赛.Allen采取以下方案进入球场:开始Allen站在第一个门,如果当前门前面有人Allen会花费单位时间走到下一个门,如果没人Allen从这个 ...
- Codeforces Round #424 A(模拟)
#include<cstdio> ]; int main(){ scanf("%d",&n); ;i<=n;++i)scanf("%d" ...
- HDU 2050 折线分割平面(转)
折线分割平面 http://acm.hdu.edu.cn/showproblem.php?pid=2050 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微 ...
- RabbitMQ (五) 订阅者模式之分发模式 ( fanout )
前面讲到了简单队列和工作队列. 这两种队列有个非常明显的缺点 : 生产者发送的消息,只能进入到一个队列. 消息只能进入到一个队列就意味着消息只能被一个消费者消费. 尽管工作队列模式中,一个队列中的消息 ...
- MySQL 一张表中两个字段值互换
update table a, table b set a.filed1= b.field2, a.field2= b.field1where a.id = b.id
- 【floyd】CODEVS 1077 多源最短路
floyd模板 #include<cstdio> #include<algorithm> using namespace std; ][],m,x,y,n; int main( ...
- Problem B: 零起点学算法17——2个数比较大小
#include<stdio.h> int main() { int n,m; while(scanf("%d %d",&n,&m)!=EOF) if( ...
- Xcode升级后导致插件不能用, 一句代码更新UUID OK~
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | ...
- Windows 无法验证此设备所需的驱动程序的数字签名。某软件或硬件最近有所更改,可能安装了签名错误或损毁的文件,或者安装的文件可能是来路不明的恶意软件。(代码52)
由未签名驱动导致的键鼠装无法使用的问题 usb 问题失效. 要是win 10的话 导致的结果就是 无线键鼠套装无法使用. 解决办法是 1.按下shift 按键 点击重启按钮 重启后 2.疑难解答-- ...
- NEXUS7 学习
一.编译环境搭建 (更细节的环境搭建请参考:How to Build CyanogenMod for Nexus 7 (Wi-Fi, 2012 version) (codename: grouper) ...