正则表达式在每种语言中都会有,目的就是匹配符合你预期要求的字符串。Python正则表达式主要由re库提供,拥有了基本所有的表达式。16.1 Python正则表达式符号描述示例.匹配除换行符(\n)之外的任意单个字符字符串123\n456,匹配123:1.3^匹配字符串开头abc\nxyz,匹配以abc开头的行:^abc$匹配字符串结尾abc\nxyz,匹配以xyz结束的行:xyz$*匹配多个hel
15.1 multiprocessingmultiprocessing是多进程模块,多进程提供了任务并发性,能充分利用多核处理器。避免了GIL(全局解释锁)对资源的影响。有以下常用类:类描述Process(group=None, target=None, name=None, args=(), kwargs={})派生一个进程对象,然后调用start()方法启动Pool(processe
在写脚本时,放到后台运行,想知道执行情况,会通过邮件、SMS(短信)、飞信、微信等方式通知管理员,用的最多的是邮件。在linux下,Shell脚本发送邮件告警是件很简单的事,有现成的邮件服务软件或者调用运营商邮箱服务器。对于Python来说,需要编写脚本调用邮件服务器来发送邮件,使用的协议是SMTP。接收邮件,使用的协议是POP3和IMAP。我想有必要说明下 ,POP3和IMAP的区别:
本章节讲解Python操作数据库,完成简单的增删改查工作,以MySQL数据库为例。Python的MySQL数据库操作模块叫MySQLdb,需要额外的安装下。通过pip工具安装:pip install MySQLdbMySQLdb模块,我们主要就用到连接数据库的方法MySQLdb.Connect(),连接上数据库后,再使用一些方法做相应的操作。MySQLdb.Connect(parameters..
12.1 open()open()函数作用是打开文件,返回一个文件对象。用法格式:open(name[, mode[, buffering[,encoding]]]) -> file objectname 文件名mode 模式,比如以只读方式打开buffering 缓冲区encoding 返回数据采用的什么编码,一般utf8或gbkModeDescriptionr只读,默认w只写,打开前清空
内建函数,可以直接使用,而不需要import。在前面章节学过的sorded()、reversed()、range(),filter()、reduce()、map()等内建函数,下面再回顾下及学习一些新的内置函数。函数描述示例sorded(iterable, cmp=None, key=None, reverse=False)正序排序可迭代对象,生成新的列表>>> lst = [2
本章涉及标准库:1、sys2、os3、glob4、math5、random6、platform7、pikle与cPikle8、subprocess9、Queue10、StringIO11、logging12、ConfigParser13、urllib与urllib214、json15、time16、datetime10.1 sys1)sys.argv命令行参数。argv[0] #代表本身名字arg
9.1 自定义模块自定义模块你已经会了,平常写的代码放到一个文件里面就是啦!例如,写个简单的函数,作为一个模块:#!/usr/bin/python # -*- coding: utf-8 -*- def func(a, b): return a * b class 
经过一段时间的学习,写了一个简单的运维管理平台小项目,先看看啥样吧!下面说明下具体实现:软件架构:HTML+CSS+Jquery+Bootstrap+Ajax+Python2.7+Django1.9+SaltStack+MySQL功能描述:数据可视化:采用百度开源的ECharts绘图,通过Python脚本每分钟统计Nginx日志分析PV/UV量写到数据库。资产管理:采用SaltStack Rest
8.1 可迭代对象(Iterable)大部分对象都是可迭代,只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身,例如:>>> lst = [1,2,3] >>> lst.__iter__() <listiterator object at&n
什么是异常?顾名思义,异常就是程序因为某种原因无法正常工作了,比如缩进错误、缺少软件包、环境错误、连接超时等等都会引发异常。一个健壮的程序应该把所能预知的异常都应做相应的处理,应对一些简单的异常情况,使得更好的保证程序长时间运行。即使出了问题,也可让维护者一眼看出问题所在。因此本章节讲解的就是怎么处理异常,让你的程序更加健壮。7.1 捕捉异常语法try...except... try:  
什么是面向对象编程?面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。Python就是这种编程语言。面向对象程序设计中的概念主要包括:对象、类、继承、动态绑定、封装、多态性、消息传递、方法。1)对象:类的实体,比如一个人。2)类:一个共享相同结构和行为的对象的集合。通俗的讲就是分类,比如人是一类,动物是一类。3)继承:类之间的关系
函数作用:把一些复杂的代码封装起来,函数一般都是一个功能,用的时候才调用,提高重复利用率和简化程序结构。5.1 语法def functionName(parms1, parms2, ...): code block return expression函数以def关键字开头,空格
在第一章的时候讲解了运算操作符和赋值操作符,这章来学习下其他常用操作符。4.1 基本运算符4.1.1 比较操作符操作符描述示例==相等>>> 1 == 1 True!=不相等>>> 1 != 1 False>大于>>> 2 > 1 True<小于>>> 2 < 1
什么是数据类型?前两章里面包含的字符串、布尔类型、整数、浮点数都是数据类型。数据类型在一个编程语言中必不可少,也是使用最多的。而且数据类型的数据都是存放在内存中的,我们一般操作都是在对内存里对象操作。什么是数组?数组也是一种数据类型,为了方便处理数据,把一些同类数据放到一起就是数组,是一组数据的集合,数组内的数据称为元素,每个元素都有一个下标(索引),从0开始。在Python中,内建数据结构有列表
2.1 字符串2.1.1 字符串转换>>> a = 123 >>> b = 1.23 >>> type(a) <type 'int'> >>> type(b) <type&
1.1 介绍1.1.1 特点Python是一种面向对象、解释型计算机程序设计语言。语法简洁清晰,强制用空白符作为语句缩进。Python具有丰富和强大的库,又被称为胶水语言。能把其他语言(主要C/C++)写的模块很轻松的结合在一起。1.1.2 应用领域Web网站:有很多优秀的开源Web框架,比如Django(最流行)、Tornado(轻量级、异步)、Flask(微型)、Web.py(简单)等。数据采
背景操作系统:Ubuntu12.04_x64运行业务:公司业务系统,爬虫程序,数据队列。服务器托管在外地机房。突然,频繁收到一组服务器ping监控不可达邮件,赶紧登陆zabbix监控系统查看流量状况。可见流量已经达到了800M左右,肯定不正常,马上尝试SSH登陆系统,不幸的事,这种情况是很难登录系统操作的。该怎么办?1、排查问题第一反应是想马上切断外部网络,通过内网连接查看。可是这样一来流量就会消
以下知识点可能有不对之处,请参考最新Awk学习文章:http://lizhenliang.blog.51cto.com/7876557/1892112知识点:1)数组数组是用来存储一系列值的变量,可通过索引来访问数组的值。Awk中数组称为关联数组,因为它的下标(索引)可以是数字也可以是字符串。下标通常称为键,数组元素的键和值存储在Awk程序内部的一个表中,该表采用散列算法,因此数组元素是随机排序。
Java性能优化原则:代码运算性能、内存回收、应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面)代码层优化:避免过多循环嵌套、调用和复杂逻辑。Tomcat调优主要内容如下:1、增加最大连接数2、调整工作模式3、启用gzip压缩4、调整JVM内存大小5、作为Web服务器时,与Apache整合或Nginx6、合理选择垃圾回收算法7、尽量使用较新JDK版本生产配置实例:<Conn
本文紧跟上节所讲的手动部署Kubernetes管理Docker篇所写,本篇主要内容利用Shell脚本完成快速部署Kubernetes集群。上节博文看过的朋友也能感觉到部署过程相对比较简单,那么,出于简化工作流程,推进运维自动化角度来说,于是花了2/3天时间写这个部署Kubernetes脚本。 运维工作中,常常会遇到部署各种各样的服务,建议:常规部署都应该尽量使用脚本完成,
在网上针对shell脚本ping监控主机是否存活的文档很多,但大多都是ping一次就决定了状态,误报率会很高,为了精确判断,ping三次不通再发告警,只要一次ping通则正常。于是,今天中午抽出点时间总结了下面脚本。脚本功能:通过Ping命令监控主机是否存活,如果ping失败则继续ping,三次不通就认为主机宕机或网络有问题,这时就可以发送邮件告警了。方法1:#!/bin/bash #
什么是Kubernetes?Kubernetes是Google开源的容器集群管理系统,实现基于Docker构建容器,利用Kubernetes能很方面管理多台Docker主机中的容器。主要功能如下:1)将多台Docker主机抽象为一个资源,以集群方式管理容器,包括任务调度、资源管理、弹性伸缩、滚动升级等功能。2)使用编排系统(YAML File)快速构建容器集群,提供负载均衡,解决容器直接关联及通信
脚本实现功能:批量或单个SSH免交互登录认证脚本应用场景:当部署集群时,大多数实现要配置好管理节点与从节点的SSH免交互登录,针对这样的情况,写了下面脚本,简化工作。脚本支持系统:Ubuntu和CentOS#!/bin/bash # Description: configuration local host and remote 
运维角度来说,写shell脚本经常会遇到判断输入的值是否合法,比如IP、邮件地址等。那么,根据自身写脚本中总结的判断IP合法性脚本分享给网友,遇到时能有所参考。思路:IP由四位数字组成,以点分割,每个字段不能大于255,必须符合这种格式方法1:#!/bin/bash # blog: http://lizhenliang.blog.51cto.com functio
什么是KVM虚拟化技术?KVM(Kernel-based Virtual Machine),主流虚拟化技术之一,集成与Linux2.6之后版本中,通过linux内核提供任务调度及管理。注:此文档为2014年所写,但内容绝对实用!安装体验下KVM吧!操作系统:CentOS 6.5_x64 mini Desktop一、KVM组件安装与配置网络(首先先更新系统软件:yum update)1、检查CPU是
使用外部邮箱来发生邮件明显好处就是防止其他邮箱服务器当垃圾邮件处理,另一方面能降低收邮件延迟。下面开始进行使用外部邮箱配置:zabbix服务端配置:操作系统:CentOS7_x641、 安装一个邮件发送程序mailx工具(msmtp+mutt也可以实现外部邮箱发送邮件)[root@V253 ~]# yum install mailx -y打开mailx配置文件,在末尾添加如下信息:[r
linux服务器敲命令反应慢,网站访问慢,到底什么情况?根据本人的经验,主要原因可能是系统资源到达瓶颈,已经无法处理更多请求。在有监控系统情况下,可以直接通过WEB页面可视化看出是CPU瓶颈?硬盘瓶颈?还是网络瓶颈?如果公司服务器较少或者云服务器,就有可能没有一套监控系统,这时就要登陆到服务器,一条一条的敲命令,查找分析性能瓶颈。命令这么多,咋记得住啊!就算记得住,输入也费
想知道用户登陆系统后都操作了什么,怎么办?别急,linux下有一个script工具,专门记录终端会话中所有输入输出结果,并存放到指定文件中。先看看怎么录制吧!1、创建日志存放目录# mkdir /opt/operation_log # chmod 777 -R /opt/operation_log2、设置用户登陆后自动录制# v
现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库。前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作。 一般在线增加从库有两种方式,一种是通过mysqldump备份主库,恢复到从库,mysqldump是逻辑备份,数据量大时,备份速度会很慢,锁表的时间也会很长。另一种是通过xtrab
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号