- 博客(25)
- 收藏
- 关注
原创 ubuntu16.04更改mysql5.7最大连接数
1、前言最近使用mysql5.7的时候,总是出现mysql错误,提示too many connections,于是检查了mysql的配置文件,发现mysql的配置文件已经修改为max_connections=1000,但是还是提示该报错。2、故障排查1.登陆mysql查看1.1检查mysql实际连接数mysql> show variables like '%max_connecti...
2019-05-29 10:21:04
3414
原创 python hashlib模块的使用
概述hashlib用于加密相关的操作,代替了MD5模块和sha模块,主要提供 SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。实例# coding:utf8from hashlib import sha1, sha224, sha256, sha384, sha512, md5import sysreload(sys)sys.setdefaulten
2018-04-03 17:20:49
495
原创 自定义一个python日志类
前言本文介绍如何写一个Python日志类,用来输出不同级别的日志信息到不同的日志文件里。需求1、将不同级别的日志输出到不同的日志文件里,方便自己排查问题。 2、生成的日志放在项目根目录的logs文件夹里 3、日志类支持DEBUG,INFO,WARNING,ERROR,CRITICAL五种级别日志。 4、日志输出格式 时间日期,日志级别,日志输出行号,打印日志的PY...
2018-03-29 09:27:33
3315
1
原创 pyhton 的copy与赋值
前言 今天在做爬虫的时候,为了防止在填写字典key的时候,提前定义好了需要数据的字典格式, 在开发过程中遇到了数据结果全部相同的问题,在排查后终于发现问题所在,决定把这个小经验写下来。问题直接上例子代码: a = { "a": '', 'b': '', 'c': ''}def getres(reslist): t = a res...
2018-03-12 18:11:56
220
原创 阿里云ECS下FTP服务的搭建
1、前言公司最近需要在阿里云服务器搭建一个FTP服务,用了一天的时间,踩了好多坑,终于把FTP服务搭建成功于是决定把这次搭建步骤和踩过的坑记录下来。vsftpd 是 Linux 下的一款小巧轻快、安全易用的 FTP 服务器软件,是一款在各个 Linux 发行版中最受推崇的 FTP 服务器软件。2、环境 ubuntu 14.043、安装步骤3.1 安装 vsft...
2018-03-01 11:44:03
4401
原创 scrapy各个组件的作用
1.scrapy 的工作流程1、引擎从调度器中取出一个URL链接(url)用来接下来的爬取 2、引擎把URL封装成一个Request 请求传给下载器,下载器把资源下下来,并封装成应答包Response 3、爬虫解析Response 4、若是解析出实体(Item),则交给实体管道(pipelines)进行进一步的处理。 5、若是解析出的是链接(URL),则把URL交给Schedul...
2018-02-22 11:25:16
2210
原创 消息队列与AMQP协议
一、 消息队列消息队列(Message Queue,简称MQ)提供异步通信协议,可以实现进程间通信或同一进程不同线程间的通信。其中‘消息’是指包含必要信息的数据。消息的发送者发送完数据后,立即返回,消息被存储在消息队列当中,对这个消息感兴趣的消费者会订阅消息并接收并处理它。 使用消息队列的好处如下:1、 应用解耦消息是与平台和语言无关的,消息队列可以应对多变的产品变更。
2018-01-29 18:21:08
1523
原创 grafana+Diamond的安装与部署
一 安装环境ubuntu 14.04二 下载安装1.方法一sudo pip install diamond配置在/etc/diamond/下 如果不行,请采取方法2 2、方法二 git clone https://github.com/python-diamond/Diamond cd Diamond python setup.py ins
2018-01-24 17:19:34
863
原创 Graphite的安装与部署
一、概述Graphite 是一个基于Django的企业级监控工具,能实时可视化和按时间序列存储数据。严格的说,Graphite只是一个根据数据实时绘图的工具,数据收集通常通过第三方工具(如Ganglia,Collectd,StatsD,Diamond,Bucky等)或者插件完成,还可根据其他协议选用别的数据源供其绘图。我们这里只是用它做数据库存储。Graphite包含如下三个组件:1、Ca
2018-01-22 18:27:26
4209
原创 python 多线程
threading模块是对thread模块的第二次封装,提供了更好的API来让我们使用。 使用threading实现多线程编程都是使用的Thread类,或者Timer类,Timer是Thread的子类,可以指定时间间隔后在执行某个操作 使用Thread类有两种方式: 1、直接创建Thread类的实例 2、自定义类来继承Thread类1、 直接创建Thread类的实例#
2018-01-18 16:48:45
220
转载 python多线程和多进程
转自https://www.cnblogs.com/whatisfantasy/p/6440585.html?utm_source=itdadao&utm_medium=referral1 概念梳理:1.1 线程1.1.1 什么是线程线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可
2018-01-17 15:38:06
269
原创 python 浅拷贝与深拷贝
1、概念在python中对象的赋值其实就是对象的引用,当创建一个对象,把它赋值给另一个变量的时候,python并没有拷贝这个对象,而是拷贝了这个对象的引用而已。浅拷贝拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已,也就是把对象赋值一遍,但是该对象引用的其他对象不复制。深拷贝外围和内部元素都进行了拷贝对象本身,而不是引用,也就是把对象赋值一遍,并且该对象中引用的其他对象我也复制。2、深浅拷
2018-01-16 13:53:07
211
原创 python的可变类型与不可变类型
python的每个对象都分为可变和不可变两种类型,主要的核心类型中,数字,字符串,元组是不可变的,列表和字典是可变的。这里的可变与不可变是指内存中的那块内容的value是否可以被改变1、不可变类型以int为例,实际上i+=1,并不是在原有的int对象上加1,而是重新创建一个新的对象,i引用自这个新的对象 通过id(),可以查看该对象的内存地址。
2018-01-15 17:54:14
1208
原创 python __new__方法解析和应用与单类
1、什么是__new__方法__new__()是在新式类中新出现的方法,它作用在构造方法建造实例之前 可以这么理解,在Python 中 存在于类里面的构造方法 __init__()负责将类的实例化,而在__init__()启动之前,__new__()决定是否 要使用该__init__()方法 因为__new__()可以调用其他类的构造方法或者直接返回别的对象来作为本类 的实例。 如果将类比喻
2017-12-28 17:01:34
406
原创 pyhton+ES6.0数据查询(二)
1、查询所有的信息# 查询所有数据数据中的前5条body = { "query": { 'match_all': {} }, # "size": 50,#不填写的话,默认为10}res = es.search(index='awlogs', doc_type='location_as_domain_log', body=body)soucelist=
2017-12-18 18:49:52
369
原创 python+ES6.0查询(一)
1、查询所有的索引名称列表index_name=es.indices.get_alias().keys()print index_name[u'awtools', u'awlogs']2、查询所有索引的字段类型map_type=es.indices.get_mapping()print map_type{u'awtools': {u'mappings': {u'as_org': {u'pro
2017-12-18 11:32:01
1170
原创 ES6.0 Header插件的安装
1、下载nodejs1、去官网下载下载nodejshttps://nodejs.org/en/download/2、安装nodejs由于下载下来的是xz文件,node-v8.9.3-linux-x64.tar.xz,先安装xz工具sudo apt-get install xz然后解压文件xz node* -dtar xvf node*
2017-12-14 12:20:01
7389
原创 pyhton 操作Elasticsearch
1、python连接elasticsearch#coding=utf-8from elasticsearch import Elasticsearch as ESes=ES('192.168.1.38',port=9200)2、创建索引##1、初始化索引 (mapping 相当于mysql的建表语句)# coding=utf-8from elasticsearch import Elasti
2017-12-12 16:47:49
296
原创 Elasticsearch集群搭建
1、搭建环境服务器:三台虚拟机 38,89,254操作系统:ubuntu 14.04Elasticsearch :2.1.12、配置修改配置文件,文件目录为/home/lijiajia/elasticsearch-2.1.1/config修改配置文件 vi elasticsearch.yml#集群名称# es会自动发现在同一网段下的es,如果在同一网段下有多个集群,就可以用这个属性来区分不同
2017-12-09 16:08:59
246
原创 gunicorn+gevent+nginx部署flask应用
一、项目结构Ip_Asnproject/├── asnenv #虚拟环境中的python包│ ├── bin│ ├── include│ ├── lib│ ├── local│ └── pip-selfcheck.json├── AsnProc│ ├── getres.py│ ├── __init__.py│ ├── models.py│
2017-12-07 17:15:05
705
原创 Elasticsearch在UBUNTU下的安装与启动
一、安装1、添加ppa源sudo add-apt-repository ppa:openjdk-r/ppa2、升级系统apt-get源sudo apt-get update3、安装jdk8Elasticsearch 是实用java开发的,所以需要JVM才能跑起来,因此我们需要安装jdk sudo apt-get install oracle-java8-installer4、检查jdk执行下边命令
2017-12-06 15:11:21
7089
原创 celery 学习笔记(二)
一、celery 架构 从图上我们可以看出celery包含几个模块任务模块主要包括异步任务和定时任务,异步任务通常在业务逻辑中被触发并发送到任务队列中,而定时任务是由Celery Beat进程周期性的将任务发往任务队列。消息中间件 BrokerBroker就是任务调度队列,接收任务生产者发送过来的消息,将任务存入队列,之所以需要中间人的原因是Celery本身是不提供消息队列的服务,所以需要第三方组
2017-11-28 17:53:44
552
转载 Celery学习笔记(一)
在学习Celery之前,我先简单的去了解了一下什么是生产者消费者模式。生产者消费者模式在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还够不上是生产者消费者模式。该模式还需要有一个缓冲区处于生产者和消费
2017-11-28 11:11:35
308
原创 SQLAlchemy使用学习
一、sqlalchemy安装安装sqlalchemypip install SQLAlchemy二、sqlalchemy的基本使用Dialect用于和数据API进行交流,根据配置文件的不同调用不同的数据库API,从而实现对数据库的操作,如:MySQL-Python mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>pymysq
2017-11-08 15:51:45
321
原创 Unix 命令之tree -
用途说明tree 命令以树状形状列出目录的内容常用参数tree –help 显示帮助信息 tree -d 只显示目录 tree -L n只显示第n层目录 tree -l 遵循像目录这样的符号链接。 tree -f 打印每个文件的完整路径前缀。 tree -x 只保留在当前文件系统上。 tree -L 级下降深层级目录。 tree -R 达到最大等级时重新运行树。 tree -P 模
2017-11-08 14:24:47
889
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人