首页
学习
活动
专区
工具
TVP
发布

Linux Python 加油站

本专栏志向为大家分享优质的技术文章、视频教程、学习资料等,随时更新。
专栏作者
24
文章
45386
阅读量
12
订阅数
Linux学习----文本三剑客——sed(马哥教育原创)
我以前的文章介绍过grep了,今天我就来说一下第二个sed,它是stream editor的缩写。在Linux的文本文件中文本存储都是一行,显示时表现的多行其实都是因为有换行符的存在,例如:文本是:abc$def$ghi 显示出来就是三行了。Sed就是一个行编辑器,它一次读一行文本进行操作,然后根据我们的选择看是否同步到文本之中。还有一个叫awk的,在Linux上叫做gawk(gnu awk),它是一个文本格式化工具,我们下一篇文章再说。 工作机制:每次读取一行文本至“模式空间(pattern space)
Py_lover
2018-08-02
1.4K0
Linux学习----文件的使者-Rsync(马哥教育原创)
Rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输。rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个目标只需要一次发送。rsync可拷贝/显示目录属性,以及拷贝文件,并可选择性的压缩以及递归拷贝。在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH伺服文件。SSH情况下,rsync客户端运行程序必须同时在本地和远程机器上安装。Rsync的远程复制行为是对目录进行对比,相同的文件不再复制,只复制不同的文件,不像cp等命令需要先删除原文件再复制新文件,这样效率会高很多。Rsync的特点:1、 可以镜像保存整个目录树或文件系统;2、 较高的数据传输效率;3、 可以借助ssh实现安全数据传输;4、 支持匿名传输;Rsync算法:rsync公用程序利用由澳洲计算机程序师安德鲁·垂鸠(Andrew Tridgell)发明的算法,在当接受端电脑已经有相同结构(例如文件)但不同版本时,有效的将结构传输过通讯连接。接受端将文件拷贝打散成固定大小为S的不重叠片段,并对每个片段计算两个校验和:MD4散列函数与一个较弱的轮替校验和(rolling checksum)。它将这些校验和送给发送者。通讯协议版本30(与rsync版本3.0.0一并分发)现在使用MD5散列函数以替代MD4。发送者对位于其版本的文件中每个大小为S的片段计算轮替校验和,即使是重叠的片段。这可被有效的计算通过特别知识产权的轮替校验和算法:如果比特n到n+S-1的轮替校验和是R,从比特n+1到n+S的轮替校验和可从R,比特n,以及比特n+S计算出而不需要真正去检验中间的比特。因此,如果比特1到25的轮替校验和已被算出,那计算比特2到26的轮替校验和可完全依靠之前的校验和与比特1与比特26算出。rsync使用的轮替校验和是根据马克艾德勒(Mark Adler)的alder-32校验和算法。该算法也被用于zlib,而它本身也基于弗莱彻校验和(Fletcher's checksum)算法。发送者其后以接收者送来的一组轮替校验和比较它自己的轮替校验和以决定是否任何匹配存在。如果是的话,它便通过计算匹配区块的MD4校验和与接受端送来的MD4校验和比较来验证匹配。发送者稍后发送给接收者不与接收者方任何区块匹配的文件的那些部分,以及如何合并这些区块到接收者版本的组装指令。在实际上,这产生了与发送者端文件一模一样的拷贝。然而,在原则上是可能接收者的拷贝在这一点上不同:这可能发生在当两个文件有不同的区块但有着相同的MD4散列函数与轮替校验和;这种事情发生的概率在现实上极端罕见。如果发送者与接收者文件版本有许多区段相同,该公用程序只需发送相对小部分的数据以将文件同步。在rsync算法构成rsync应用程序核心并最优化两台电脑间TCP/IP的传输同时,rsync应用程序也支持其他种显著增进文件传输或备份的重要功能。他们包括在发送端与接收端个别利用zlib进行区块区块间压缩解压缩,以及支持通讯协议如ssh。该协议让加密传输兼具压缩与效率,通过rsync算法产生的差分数据变得可能。除ssh以外,stunnel亦可被利用于创造加密通道以保全被传输的数据。Rsync命令的工作模式:1、 shell模式,也称本地模式;2、 远程shell模式,可以利用ssh协议承载其远程传输过程;3、 列表模式,仅列出源中的内容,-nv;4、 服务模式,此时rsync工作为守护进程,能接受客户端的数据同步请求;Rsync命令的选项: -n:同步测试,不执行真正的同步过程;dry run(干跑) -v:详细输出模式 -q:静默模式 -c:checksum,开启校验功能 -r:递归复制 注意:rsync命令中,如果原路径是目录,且复制路径时目录末尾有/,则会复制目录中的内容,而非目录本身;如果没有/,则会同步目录本身及目录中所有文件;目标路径末尾是否有/无关紧要; -a:归档,保留文件的原有属性; -p:保留文件的权限; -t:保留文件的时间戳; -l:保留符号链接文件; -g:保留数组; -o:保留属主; -D:保留设备文件; -e ssh:使用ssh传输; -z:压缩后传输; --progress:显示进度条; --stats:显示如何执行压缩和传输;添加描述
Py_lover
2018-08-02
1K0
Python基础之set应用详解
一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组)
Py_lover
2018-07-26
3290
面试 Linux 运维工作至少需要知道哪些知识?
作者:defcon来源:马哥教育链接:https://mp.weixin.qq.com/s/ZocozTkCNViMAtZIr7C7ww前言我们已经发过不少 Linux 面试题,但是单独的面试题总感觉会过于零碎,没有体系化内容给人的帮助大。知乎上有这样一个问题:一个新手面试 Linux 运维工作至少需要知道哪些知识?其中有一个答案对这一话题的解读非常深入,今天特别分享给大家。一、什么是大型网站运维?首先明确一下,全文所讲的”运维“是指:大型网站运维,与其它运维的区别还是蛮大的;然后我们再对大型网站与小型网站进行范围定义,此定义主要从运维复杂性角度考虑,如网站规范、知名度、服务器 量级、pv量等考虑,其它因素不是重点;因此,我们先定义服务器规模大于1000台,pv每天至少上亿(至少国内排名前10),如sina、baidu、 QQ,http://51.com等等;其它小型网站可能没有真正意义上的运维工程师,这与网站规范不够和成本因素有关,更多的是集合网络、系统 、开发工作于一身的“复合性人才”,就如有些公司把一些合同采购都纳入了运维职责范围,还有如IDC网络规划也纳入运维职责。所以,非常重要一定需要明白:运维对其它关联工种必须非常了解熟悉:网络、系统、系统开发、存储,安全,DB等;我在这里所讲的运维工程师就是指专职运维工程师。我们再来说说一般产品的“出生”流程:1、首先公司管理层给出指导思想,PM定位市场需求(或copy成熟应用)进行调研、分析、最终给出详细设计。2、架构师根据产品设计的需求,如pv大小预估、服务器规模、应用架构等因素完成网络规划,架构设计等(基本上对网络变动不大,除非大项目)3、开发工程师将设计code实现出来、测试工程师对应用进行测试。4、好,到运维工程师出马了。首先明确一点不是说前三步就与运维工作无关了,恰恰相反,前三步与运维关系很大:应用的前期架构设计、软/硬件资源评估申请采购、应用设计性能隐患及评估、IDC、服务性能\安全调优、服务器系统级优化(与特定应用有关)等都需运维全程参与,并主导整个应用上线项目;运维工程师负责产品服务器上架准备工作,服务器系统安装、网络、IP、通用工具集安装。运维工程师还需要对上线的应用系统架构是否合理、是否具备可扩展性、及安全隐患等因素负责,并负责最后将产品(程序)、网络、系统三者进行拼接并最优化的组合在一起,最终完成产品上线提供用户使用,并周而复使:需求->开发(升级)->测试->上线(性能、安全问题等之前预估外的问题随之慢慢就全出来了)在这里提一点:网站开发模式与传统软件开发完全不一样,网站一天开发上线1~5个升级版本是家常便饭,用户体验为王嘛,如果某个线上问题像M$ 需要1年解决,用户早跑光了;应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作、服务监控、应用状态统计、日常服务状态巡检、突发故障处理、服务日常变更调整、集群管理、服务性能评估优化、数据库管理优化、随着应用PV增减进行应用架构的伸缩、安全、运维开发工作:a 、尽量将日常机械性手工工作通过工具实现(如服务监控、应用状态统计、服务上线等等),提高效率。b、解决现实中服务存在的问题,如高可靠性、可扩展性问题等。c、大规模集群管理工具的开发,如1万台机器如何在1分钟内完成密码修改、或运行指定任务?2000台服务器如何快速安装操作系统?各分布式IDC、存储集群中数PT级的数据如何快速的存储、共享、分析?等一系列挑战都需运维工程师的努力。在此说明一下其它配合工种情况,在整个项目中,前端应用对于网络/系统工程师来说是黑匣子,同时开发工程师职责只是负责完成应用的功能性开发,并对应用本身性能、安全性等应用本身负责,它不负责或关心网络/系统架构方面事宜,当然软/硬件采购人员等事业部其它同事也不会关心这些问题,各司其职,但项目的核心是运维工程师~!所有其它部门的桥梁。上面说了很多,我想大家应该对运维有一些概念了,在此打个比方吧,如果我们是一辆高速行驶在高速公路上的汽车,那运维工程师就是司机兼维修工,这个司机不简单,有时需要在高速行驶过程中换轮胎、并根据道路情况换档位、当汽车速度越来越快,汽车本身不能满足高速度时对汽车性能调优或零件升级、高速行进中解决汽车故障及性能问题、时刻关注前方安全问题,并先知先觉的采取规避手段。这就是运维工作~!最后说一下运维工程师的职责:”确保线上稳定“,看似简单,但实属不容易,运维工程师必须在诸多不利因素中进行权衡:新产品模式对现有架构及技术的冲击、产品高频度的升级带来的线上BUG隐患、运维自动化管理承度不高导致的人为失误、IT行业追求的高效率导致流程执行上的缺失、用户增涨带来的性能及架构上的压力、IT行业宽松的技术管理文化、创新风险、互联网安全性问题等因素,都会是网站稳定的大敌,运维工程师必须把控好这最后一关,需具体高度的责任感、原则性及协调能力,如果能做到各因素的最佳平衡,那就是一
Py_lover
2018-08-05
1.8K0
揭秘Linux工程师一路走来都需要哪些技能
大公司也是从小公司一步步走过来的,而大公司之所以与小公司不同,不在于基础的技术体系不同,而是当数据量达到一定程度后,引发的质变而已。而在思考质变带来的性能问题中,总结出来了一系列的工具,然后通过把对应的工具集合起来后形成了对应的运维工具平台。
Py_lover
2018-07-26
7010
五个python常用运维脚本面试题实例
来源:马哥教育原文作者:chengxuyuan 链接:https://mp.weixin.qq.com/s/nahDVL6aiMQ2vp85wo6nNw一、用Python写一个列举当前目录以及所有子目录下的文件,并打印出绝对路径#!/usr/bin/env pythonimport osfor root,dirs,files in os.walk('/tmp'): for name in files: print (os.path.join(root,name))os.walk()原型为:os.walk(top, topdown=True, onerror=None, followlinks=False)我们一般只使用第一个参数。(topdown指明遍历的顺序)该方法对于每个目录返回一个三元组,(dirpath, dirnames, filenames)。第一个是路径,第二个是路径下面的目录,第三个是路径下面的非目录(对于windows来说也就是文件)二、写程序打印三角形#!/usr/bin/env pythoninput = int(raw_input('input number:'))for i in range(input): for j in range(i): print '*', print '\n'三、猜数器程序随机生成一个个位数字,然后等待用户输入,输入数字和生成数字相同则视为成功。成功则打印三角形。失败则重新输入(提示:随机数函数:random)#!/usr/bin/env pythonimport randomwhile True: input = int(raw_input('input number:')) random_num = random.randint(1, 10) print input,random_num if input == random_num: for i in range(input): for j in range(i): print '*', print '\n' else: print 'please input number again'四、生成磁盘使用情况的日志文件#!/usr/bin/env python#!coding=utf-8import timeimport osnew_time = time.strftime('%Y-%m-%d')disk_status = os.popen('df -h').readlines()str1 = ''.join(disk_status)f = file(new_time+'.log','w')f.write('%s' % str1)f.flush()f.close()五、统计出每个IP的访问量有多少?(从日志文件中查找)#!/usr/bin/env python#!coding=utf-8list = []f = file('/tmp/1.log')str1 = f.readlines() f.close() for i in str1: ip = i.split()[0] list.append(ip) list_num = set(list)for j in list_num: num = list.count(j) print '%s : %s' %(j,num)添加描述n常用运维脚本面试题实例
Py_lover
2018-08-05
8790
Python 之父谈放弃 Python:我对核心成员们失望至极!
来源:马哥教育链接:https://mp.weixin.qq.com/s/L7xC2INCJUqAoQSN1ZyHdgPython 之父讲述退位原因,以及 Python 的未来将何去何从。在 Python 社区,Python 的发明者 Guido Van Rossum 被称为 “仁慈的终生独裁者”(BDFL,Benevolent Dictator for Life)。今年 7 月 12 日的时候他突然宣布退位了。消息一出,一时间震惊了整个 Python 世界。当时他以 PEP 572 改进提案的争吵事件为例,表明其退出缘由。Guido van Rossum 于 1990 年发明 Python,他相信 Python 这门语言即使少了他的领导也依然能持续发光发热。现年 62 岁的 van Rossum 是一名 Dropbox 的首席工程师,近日他接受了外媒 InfoWorld 的采访。你为什么辞去 BDFL 职务?van Rossum:所谓的终生和独裁都仅仅是玩笑。实际上,最近十年,退休的念头都在我脑海里徘徊。我年龄已经不小了,身体也有一些问题。作为 Python 社区的主要负责人,我需要一遍又一遍地去教社区的其他成员如何开展工作,同时需要一遍又一遍地向 Python 新人解释 Python 的语言哲学,这样超负荷的工作让我的健康状况更为恶化。事情的引爆点在于一个颇具争议的 Python 改进提案(PEP 572),当我接受这个提案之后,Twitter 等社交媒体上出现了一些中伤我的评论。而更为心寒的是,这些评论居然大多来自 Python 的核心成员,我对他们失望至极!你能谈谈 PEP 572 提案的好处以及它为什么如此充满争议吗?van Rossum:该提案提出了一种新的语法,它允许表达式内赋值。总得来说,这是对 Python 语言的一个小补充。开发人员如果需要的话,可以在表达式中进行赋值。很多编程语言都有这个小功能,比如我熟悉的 C 和 C++。据我所知,Java 和 JavaScript 也支持。它是一种相当小的语法,但在某些情况下,它可以让代码编写变得更容易,并且通过删除冗余能够提升代码的可读性。很多人觉得自己熟知 Python 的设计理念,他们认为该提案没有遵循 Python 的设计原则。该提案引发争议的另一个原因在于其作者自己的失误,之前几个版本就存在一些严重的问题,因此这一次,即使之前认同其基本理念的人也投了反对票。但这只是一个轻微的句法变化,并不激进。该特性将包含在哪个版本的 Python 中?van Rossum:它将出现在 Python 3.8 中。Python 3.8 将于一年半后发布。此前我们曾发文探讨过为何 Python 的速度如此之慢,在这一更新版本中,Python 3 启动慢的问题将会是 CPython 核心团队主要解决的问题之一。会有一个新的 BDFL 吗? Python 后续将如何管理?van Rossum:很抱歉,目前确实无可奉告。实际上,我给核心开发团体(拥有提交权限的 100 多人)指定了一项任务,让他们思考今后的管理模式并选出新的负责人。他们在解决 Python 问题的同时,需要认真完成该任务。这可能需要长期讨论,短期内很难达成共识。令我高兴的是他们欣然接受了这个任务,并制定了任务进度表。他们会在 2018 年 10 月 1 日前完成提案的收集。然后,在 2018 年 11 月 1 日前,他们会从众多提案中选出最终的管理方案。然后到 2019 年 1 月 1 日,他们会整理好管理方案的相关文件,并选举或者任命新的负责人。如果有提案指出需要 BDFL,则该提案必须对其详细说明,比如如何选举 BDFL,BDFL 任职时长,以及 BDFL 的弹劾机制。我想最快 10 月 1 日,最晚明年 1 月 1 日,将会产生一名新的 BDFL。Python 的核心成员都有谁?van Rossum:Python 的核心成员有很多。比如 Brett Cannon,他是一位真正的大神。又如 Tim Peters,作为我的良师益友,他提出了“Python 之禅”,生动地诠释了 Python 的编程哲学。另外,Barry Warsaw 也是核心开发人员之一。未来你将在 Python 项目中担任怎样的角色?van Rossum:我将成为一名普通的贡献者或者核心开发者。偶尔会编写或者审查代码。此外,我将尝试专注于核心开发人员的指导工作上,尤其是新的核心开发人员、女性或者少数民族人士。因为我个人很推崇核心开发人员的多样性。作为曾经的 BDFL,你觉得自己的离开会不会吓跑一些 Python 爱好者?van Rossum:我认为不至于。Python 社区非常健康,Python 核心团队非常强大且充满活力。我相信他们能够克服这点小困难,并在未来几十年里继续推动 Python 前进,如果连这点自信都没有,我也不会辞职。尽管
Py_lover
2018-08-04
6180
Python学习----小白成长必备路线图
来源:马哥教育链接:www.magedu.com马哥教育历经近十年发展,以“匠心精神,良心教育”为宗旨,以国际“MVP”体系为标准,培养了数万名资深、专业的高端IT人才,80%以上学员在互联网排名前300的企业高薪就业,拥有Linux运维、Python开发、云计算等多个高端学科。凭借马哥教育职业IT培训的高品质和毕业学员的良好口碑,其已经成为业内知名互联网公司重要人才战略合作伙伴,获得了百度、腾讯、阿里、中兴、科大讯飞、大众点评、51CTO、唯品会、京东、中国移动、 新浪、红帽等互联网巨头的人才合作支持,2013年成为51CTO官方推荐合作机构,与多家IT互联网企业签订专项人才培养计划,毕业学员平均薪资达10K以上。我们将让您从0基础的小白一步步变成:自动化运维工程师、数据挖掘工程师、全栈开发工程师。Python是创始人吉多·范罗苏姆(Guido van Rossum)在1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,而在给自己新创造的计算机语言起名字的时候,由于其是,自于七十年代风靡全球的英国六人喜剧团体,巨蟒剧团(Monty Python)的忠实粉丝,所以,就把此计算机语言的名字叫做:Python。Python是一种脚本语言。脚本,对应的英文是:script。普通人,看到script这个英文单词,或许想到的更多的是:电影的剧本,就是一段段的脚本,所组成的电影剧本的脚本,决定了电影中的人和物,都做哪些事情,怎么做。而计算机中的脚本,决定了计算机中的操作系统和各种软件工具,要做哪些事情,以及具体怎么做。其实,脚本这个词还有另外一种感觉:随性因为,现实中,写电影脚本,那直接拿张纸和笔,就可以写了,写完了,就可以拿去用,拿去拍电影了而计算机中的脚本,其实就是普通的文本,就是写到文本文件中的代码而已,其也是有随性这个特点,写完了,直接就可以(在某种具有解释功能的环境中)运行了比如:Linux中的shell脚本,就是直接弄个文本文件,写上shell脚本代码,然后保存文件,然后就可以,在Linux的Shell这个带有shell的解释功能的shell环境中,运行了与此相对的,不那么随性的是:其他的,非脚本语言,常叫做编译性语言,比如C语言,往往都是需要额外加上编译这个步骤,才能执行的。Python拥有功能丰富的自带的库以及种类和数量繁多且强大的第三方库,除了本身Python语言本身自带的标准库之外由于Python语言本身很好用,促使很多其他人,前前后后,写了N多个库积累至今,就成了:Python拥有数量巨大的,各种各样的,功能强大的,第三方的库函数。此特点,对于Python语言的使用者来说,有着显而易见的好处:当你去实现很多各种功能的时候,往往不需要重复造轮子,往往是可以找到,现成的,已有的,内置Python库,或第三方的Python的库,去帮你实现你要的功能换句话说:你去实现一个复杂的功能的时候,往往变成了,找到合适的库,并使用,即可。与此相对的,用其他语言去实现同样的功能的时候,由于缺少好用的库,而使得你需要重头到尾,全新的实现对应的功能所需的代码。由此对比出,Python的好用和强大。许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。当然Python也有它的缺点,最大的缺点就是性能,这也是为什么python在年近30岁的时候才火起来的原因,因为Python解释性语言都是需要翻译的,这个过程比较浪费时间,在以前计算机硬件性能低下的情况下,都是靠计算机语言的高性能来提高效率的,不过在现在计算机的硬件速度已经非常快了,硬件的性能问题已经不是瓶颈,而要处理大数据和类似人工智能等的超复杂的算法成立程序员编程的瓶颈,所以Python以其简介的语言风格和强大的第三方库能够节省程序员很多操作和步骤,使Python大放异彩。添加描述习----小白成长必备路线图
Py_lover
2018-08-04
5840
linux哪家好,亲历Linux学员给你推荐
很有幸能够参加到马帮,因为这天还要工作,所以就没有到教室去,只是当天晚上看了开课的视频。马老师(我习惯于这么叫他,因为他的确是我的大学老师)风采依旧,而且还是那么的脱俗。看过很多做计算机培训的机构很少有像马老师这样讲课吐字清晰,发音标准的人很少,甚至有些人认为只要技术精湛说方言好像更加的了不起。但我始终认为作为一名教育工作者具有一口流利标准的普通话是必要的基础条件,方言可以说但不可以用来讲课,更不应该不以为耻反以为荣。这也是我选择马哥教育的一个重要因素。因为是课堂的环境准备所以这一天就没有太多与Linux相关的实质性内容,主要是讲解了一下FTP上各文件夹的作用,上课的纪律等日常学习的注意事项,不再赘举。其中马老师依然讲述了百谈不厌的王国维的人生三境界,以激励我们好好学习不可放弃。而令我非常感兴趣的是马老师提到了一个名叫“王守仁”的人,这个人我是很崇拜的,原因与大多数人应该相同就是读了一本名叫《明朝那些事儿》的书。这位可以说是距离我们最近的一位圣人了,他被当年明月推崇为明朝第一人,是中华史上为数极少的达到“立德”、“立功”、“立言”三不朽境界的人之一,马老师通过王守仁“知行合一”的理论告诉我们要坚持,对于大多数人来讲我们还没有到达靠拼智商来战胜对手的层次,所以这也就是这些年情商得到重视的原因,而持之以恒正是情商高的一个重要表现。马老师也提到了多读书,当然这个“书”是指博览群书,我一向认同“书无禁忌”的说法,不管好的坏的都应该去尝试着读一下(当然是指成年人)。马老师还提到一个浅尝辄止的问题,对我来说绝对是一语中的了,之前的学习可以说都是不求甚解的,以至于自己成了一个“煎饼型人才”,所以从现在开始我要打造自己的深度,完成自我的突破,加油,加油!众所周知,写博客是马哥教育的传统,仅以此篇作为我的开篇吧,监督自己坚持把以后的博客写下去。
Py_lover
2018-08-04
4.4K0
Linux学习----在Linux环境下如何使用XFS文件系统
来源:马哥教育链接:https://mp.weixin.qq.com/s/UupllldADYE0sHbRs0uouQXfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Linux系统中。在linux环境下。目前版本可用的最新XFS文件系统的为1.2版本,可以很好地工作在2.4核心下。XFS文件系统简介主要特性包括以下几点:数据完全性采用XFS文件系统,当意想不到的宕机发生后,首先,由于文件系统开启了日志功能,所以你磁盘上的文件不再会意外宕机而遭到破坏了。不论目前文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件内容。传输特性XFS文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS查询与分配存储空间非常快。xfs文件系统能连续提供快速的反应时间。笔者曾经对XFS、JFS、Ext3、ReiserFS文件系统进行过测试,XFS文件文件系统的性能表现相当出众。可扩展性XFS 是一个全64-bit的文件系统,它可以支持上百万T字节的存储空间。对特大文件及小尺寸文件的支持都表现出众,支持特大数量的目录。最大可支持的文件大小为263 = 9 x 1018 = 9 exabytes,最大文件系统尺寸为18 exabytes。XFS使用高的表结构(B+树),保证了文件系统可以快速搜索与快速空间分配。XFS能够持续提供高速操作,文件系统的性能不受目录中目录及文件数量的限制。传输带宽XFS 能以接近裸设备I/O的性能存储数据。在单个文件系统的测试中,其吞吐量最高可达7GB每秒,对单个文件的读写操作,其吞吐量可达4GB每秒。XFS文件系统的使用下载与编译内核下载相应版本的内核补丁,解压补丁软件包,对系统核心打补丁下载地址:ftp://oss.sgi.com/projects/xfs/d … .4.18-all.patch.bz2对核心打补丁,下载解压后,得到一个文件:xfs-1.1-2.4.18-all.patch文件。对核心进行修补如下:# cd /usr/src/linux # patch -p1 < /path/to/xfs-1.1-2.4.18-all.patch修补工作完成后,下一步要进行的工作是编译核心,将XFS编译进Linux核心可中。首先运行以下命令,选择核心支持XFS文件系统:#make menuconfig在“文件系统“菜单中选择:<*> SGI XFS filesystem support ##说明:将XFS文件系统的支持编译进核心或 SGI XFS filesystem support ##说明:以动态加载模块的方式支持XFS文件系统另外还有两个选择:Enable XFS DMAPI ##说明:对磁盘管理的API,存储管理应用程序使用 Enable XFS Quota ##说明:支持配合Quota对用户使用磁盘空间大小管理完成以上工作后,退出并保存核心选择配置之后,然后编译内核,安装核心:#make bzImage #make module #make module_install #make install如果你对以上复杂繁琐的工作没有耐心或没有把握,那么可以直接从SGI的站点上下载已经打好补丁的核心,其版本为2.4.18。它是一个rpm软件包,你只要简单地安装即可。SGI提交的核心有两种,分别供smp及单处理器的机器使用。创建XFS文件系统完成对核心的编译后,还应下载与之配套的XFSprogs工具软件包,也即mkfs.xfs工具。不然我们无法完成对分区的格式化:即无法将一个分区格式化成XFS文件系统的格式。要下载的软件包名称:xfsprogs-2.0.3。将所下载的XFSProgs工具解压,安装,mkfs.xfs自动安装在/sbin目录下。#tar –xvf xfsprogs-2.0.3.src.tar.gz #cd xfsprogs-2.0.3src #./configure #make #make install使用mkfs.xfs格式化磁盘为xfs文件系统,方法如下:# /sbin/mkfs.xfs /dev/sda6 #说明:将分区格式化为xfs文件系统,以下为显示内容: meta-data=/dev/sda6 isize=256 agcount=8, agsize=128017 blks data = bsize=4096 blocks=1024135, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=0 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=1200 realtime =none
Py_lover
2018-08-03
2.9K0
Python自动化测试框架有哪些?
来源:马哥教育链接:https://mp.weixin.qq.com/s/PvlaRmPmGc5b1XIMqMMslA令开发者万分高兴的是,开发自己的测试框架的日子终于结束了。以前,开发团队接手一个项目并开始开发时,除了项目模块的实际开发之外,他们不得不为这个项目构建一个自动化测试框架。一个测试框架应该具有最佳的测试用例、假设(assumptions)、脚本和技术来运行每一处代码和模块,从而发现代码缺陷和不足。不同的项目需要不同的测试用例、假设和脚本,而这也是为什么会在这些开发中花费大量时间。随着技术的进步和自动化技术的出现,市面上出现了一些自动化测试框架,你可以使用这些框架,在调整特定测试适用性和效率参数后,测试你项目的任何模块。这节省了时间,而且由于这些框架被广泛使用,它们非常稳健,具有广泛多样的用例集和技术来轻易发现微小的缺陷。今天,我们将看一看可用的Python自动化测试框架。Robot FrameworkRobot Framework是最流行的Python自动化测试框架。它是完全用Python开发的,对于验收测试非常有用。这个框架可以运行在Java和.NET环境。它还支持跨平台,例如Windows、MacOS和Linux。这个产品是由世界上一些著名的测试人员创建的,拥有关键词驱动方案。它有如此多可用的工具和库,使得这个框架非常先进和健壮。它是一个开源框架,并且留有API扩展空间。表格式的测试数据语法和关键词驱动测试使得它在全球的测试人员中非常流行。它无疑是最易用的自动化测试框架,并且允许你进行并行测试。RedwoodHQRedwoodHQ是一个流行的自动化测试工具,它的流行是由于大部分流行的编程语言都可以用来编写测试,例如Java、Python、C#和likewise。它有一个网站界面,在那里多个测试人员可以在一个平台上协作和运行测试用例。在RedwoodHQ中出现的action关键字可以用来毫不费力地创建和修改测试用例。你所需要做的只是找到你需要的action,将它拖到你的测试盒中,然后输入参数并改变它们的值来生成一份完整的测试报告。它有一个内置的IDE(集成开发环境),你可以在那里创建和修改测试用例,并且并行运行它们。它是对用户最友好或对测试人员最友好的平台之一,它关注一个重大项目的全部测试过程。JasmineJasmine对于JavaScript单元测试使用行为驱动开发框架。它适用于任何使用JavaScript的地方。除了JavaScript之外,它还被用于Python和Ruby自动化测试。因此,它使得你可以并行运行客户端测试用例和服务端测试用例。它是一个将客户端和服务端单元测试结合起来的完美的测试框架,而且被认为是测试领域的未来。它现成可用,除了需要一个名为Karma的测试运行器之外,不需要其它外部依赖。Pytest如果你的项目比较小、复杂度比较低,Pytest是最适合的自动化测试平台。非常多的Python开发者都喜欢它,他们大部分用它来进行单元测试。它也具有Robot Framework所闻名的验收测试能力。Pytest最好的特性之一是,它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的Python。它还兼容unittest、doctest和nose,开箱即用。它还有包含更多功能的插件和多样化的现有测试技术和测试用例。事实上,有300多个可用插件来自它的活跃社区。该平台设计用于编写更简单错误率更小的代码。你可以将Pytest与诸如Selenium和Splinter之类的图形用户界面一起使用,来使得测试工作更轻松。结论对于任何编程语言来说,都没有绝对理想的测试框架。它取决于开发者的舒适度、项目需求和项目中特定模块所需的测试类型。可用的自动化测试框架有线性自动化、基于模块的测试、函数库框架测试、混合测试、关键词驱动和数据驱动测试等。每个框架都有它的优点和缺点。上面列举的python框架是性能最全面的自动化测试框架。添加描述动化测试框架有哪些?
Py_lover
2018-08-03
7300
Linux 之父如何定义 Linux?
来源:马哥教育链接:https://mp.weixin.qq.com/s/wwBt5H68tHmf_lHXrd_eSQ本文是 Linus 写于 1991年10月10日LINUX是什么?LINUX是一个免费类unix内核,适用于386-AT计算机,附带完整源代码。主要让黑客、计算机科学学生使用,学习和享受。它大部分用C编写,但是一小部分是用gnu格式汇编,而且引导序列用的是因特尔086汇编语言。C代码是相对ANSI的,使用一些GNU增强特性(大多为 __asm__ 和 inline)。然而有很多可用于386电脑的unices,他们大部分要花很多钱,而且不附带源码。因此他们是使用计算机的理想选择,但是如果你想了解他们如何工作,那是不可能的。也有一些 Unix 是附带源码的。Minix,Andrew S. Tanenbaum编写的学习工具,已经在大学中作为教学工具使用了很多年了。BSD-386系统是附带源码的,但是有版权限制,而且要花很多钱(我记得起始价格为$995)。GNU内核(Hurd)将会是免费的,但是现在还没有准备好,而且对于了解和学习它们来说有点庞大。LINUX与Minix是最相似的,由于它很小而且不是非常复杂,因此易于理解(嗯…)。LINUX是基于Minix编写的,因此有相当多的相同点,任何Minix黑客在使用LINUX的时候都感觉非常熟悉。不过,没有在项目中使用Minix代码,因此Minix版权没有限制到这个新系统。它也是完全免费的,而且它的版权非常宽松。因此不像使用Minix,它不需要几兆字节大小的区别。LINUX版权虽然是免费的发布版,我还是从以下几个方面限制了LINUX的使用:你可以自由复制和重新发布源码和二进制,只要是:1. 完全开源。因此不能单独发布二进制,即使你只修改了一点。2. 你不能从发布版获取利益。事实上甚至“装卸费用”都是不被接受的。3. 你要保持完整的适当版权。· 根据需要你可能会修改源码,但是如果你发布了新系统的一部分(或者只有二进制),必须将新的代码包含进去。· 除了不包含版权的代码之外,你可能会做一些小的修改。这由你来定,但是如果能将相关内容或者代码告诉我,将不胜感激。对任何使用或者扩展系统的人来说,这应该足够宽松而不会引起任何担忧。如果你有朋友真的不想要源码,只想要一个能运行的二进制,你当然可以给他而不用担心我会起诉你。不过最好只在朋友之间这么做。LINUX运行所需的硬件/软件LINUX是在一个运行Minix的386-AT上开发的。由于LINUX是一个真正的操作系统,而且需要直接与硬件交互来做一些事情,你必须有一个非常相似的系统来让他顺利运行:· 386-AT(PS/2之类是不同的,不能正常运行)· VGA或者EGA屏幕硬件。· 标准AT硬盘接口,IDE盘可以运行(实际上我用的就是这个)。· 正常实模式BIOS。一些机器看起来是用虚-86模式运行启动程序,而且在这样的机器LINUX不会启动和正常运行。LINUX会发展成为一个自给自足的系统,现在需要Minix-386才能正常运行。你需要Minix让初始化启动文件系统,和编译OS二进制。在那之后LINUX是一个自给自足的系统,但是为了做文件系统检查(fsck)和修改之后重编译系统,推荐使用Minix。获取LINUXLINUX现在可以使用匿名ftp从‘nic.funet.fi’的‘/pub/OS/Linux’目录获取。这个目录包含操作系统的所有源码,还有一些二进制文件,因此你可以真正使用系统了。注意!二进制大多是GNU软件,而且版权比LINUX的严格(GNU非盈利性版权)。因此你不能在不发布他们源码的情况下重新发布他们,可以在/pub/GNU中找到。关于GNU非盈利性版权,从任何GNU软件包了解更多。此目录中各类文件如下:· linux-0.03.tar.Z–系统的完全源码,16位tar压缩文件格式。· Linux.tex–这个文件的LATEX源码。· bash.Z–在LINUX下运行的bash二进制文件。这个二进制文件应该放到预留给LINUX文件系统中的/bin/sh下(参见installation)。· update.Z–更新二进制文件,要放到/bin/update。· gccbin.tar.Z–GNU cc二进制文件需要由一个可运行的编译器。这个tar压缩包含有编译器,加载器,汇编程序和支持程序(nm,strip等)。它还包含一个小型的库,可用于大部分程序。· include.tar.Z–让gcc运行的必要include文件。· unistd.tar.Z–unistd库程序的源码(即系统调用接口)。通过这个你可以使用系统独立库源码编译一个大一些的库。· utilbin.tar.Z–各种GNU工具的二进制文件,包括GNU的fileutils,make和tar。也包含克隆emacs的uemacs。· README, RELNOTES-
Py_lover
2018-08-02
15.1K0
Python学习干货 史上最全的 Python 爬虫工具列表大全
链接:https://mp.weixin.qq.com/s/UkXT20Oko6oYbeo7zavCNA
Py_lover
2018-08-02
1.8K0
如何保住运维这个铁饭碗?Linux系统运维之修炼秘法
来源:马哥教育链接:https://mp.weixin.qq.com/s/727F4B_uL2aAPqJUsdRtfw在这个现如今的互联网高速发展的时代,如何才能保持住一门铁的饭碗。无疑最稳妥的自然就是选择一门任何时代都不会落伍的技能,来选择深入学习研究。大家可能觉得这一期的Linux就该这么学的话题比较世俗。但是不得不说,当下时代唯有一定的经济能力,才可稳当的在这个社会上立足。而接下来要给大家介绍的就是一门发展延伸了很多年且越来越火的技能,那就是我们今天的猪脚——Linux运维。而想要拿到铁饭碗乃至高薪。那唯有将Linux运维这部功法修炼到至高境界。才有拿到高薪的机会。而本期讨论的就是如何修炼Linux运维。首先先给大家看一下Linux运维工程师必备技能:1. Linux系统基础2. 网络服务3. Shell脚本语言4. 数据库5. 防火墙6. 监控工具7. 集群于热备8. 数据备份9. 文本处理10. 正则表达式然后在这里给大家罗列出几条Linux运维修炼心经:1、从思维上摆脱传统Windows系统思维模式。相信绝大部分人使用计算机时所接触到的首个操作系统仍然是Windows系列操作系统,而且可能在接触Linux操作系统之前已经使用了很长时间的Windows系统操作系统了。这样,就很容易在我们的脑海里形式Windows系统操作系统的操作习惯和思维习惯。虽说Linux和Windows均是操作系统,功能上没有太大的差别。但是,Linux的操作习惯和思维方式与Windows还是有很大差别的。如,笔者第一次安装好“蓝点”后就为找不到D盘而疑惑。同时,笔者接触到Linux新手大部分都有一个习惯:学习Linux习惯于在图形化界面上操作,估计就是受Windows影响的缘故。2、多动手,勤于实践。本人也经常遇到初学者问我有什么好的方法学好Linux。我基本上每次都类似回答他们:没有什么好办法,只有多动手,勤于实践。学习计算机有一个非常好的优势就是,你测试环境下或虚拟机上搞测试不需要太担心把机器搞坏,即使把系统搞坏了,大不了重装系统就是了。计算机方面的知识很多都是非常抽象的,很多时候如果我们只是看书,往往是看得云里雾里,只有通过不断的实践,测试,验证才能真正搞懂一个概念。3、要有不畏惧困难和强烈的研究精神。经常看到许多新手一遇到问题就论坛上去发帖,向高手求教。而且许多时候这些人似乎要求所谓的高手拥有灵丹妙药,对于他们的问题给出详细的解决方法甚至完善的步骤。其实这是最要不得的对待问题的态度。虽然,高手给我们提供的解决问题的建议或许对我们有很大的参考价值,但是仅仅只能作为参考,我们不能不加思考的照搬他们的方法。4、善于整理和总结知识是要通过不断的整理和总结才能升化和系列化的。当我们每次遇到问题时,都能记录当时的场景以及解决方法,随着我们学习的不断深入,那么我们所积累的知识也就越来越丰富。5、要有很强的责任心和使命感。基本上运维是系统对外提供服务的最后的把关者。因此,一个系统对用户来说是不是稳定跟运维有很大的关系。特别是,当系统不出现问题的时候,许多运维都不重视容灾备份和数据安全,这样一旦系统出现了故障,系统的恢复就需要花很长的时间。6、要有不断的学习精神计算机的发展真是太快了,新的知识、新的技术层出不穷。如果不持续的保持不断学习,那么很快知识就会老化,跟不上时代发展的需要。7、要有精益求精的精神应该说运维的工作的弹性还是很大的。即可以非常粗造的运维一个系统,也可以持续改进、优化系统,使系统越来越高效的运行。而如何让一个系统越来越高效的运行,就需要我们具有精益求精的精神,持继地进行改进。这几条里,最重要的是第2和第4条,一定要养成动手和总结的习惯!除此之外,了解一下职位的必须技能,在学习的时候针对性的进行强化。去一些招聘网站,搜集一下运维工程师的职位要求,将这些职位要求进行汇总后,得出一条学习路线。学习最忌心焦气燥,调整一下心态,多和同道交流,争取早日成为一名Linux运维工程师! ��}ު�I!个铁饭碗?Linux系统运维之修炼秘法
Py_lover
2018-07-29
2.3K0
运维工程师---互联网的幕后英雄
来源:马哥教育链接:https://mp.weixin.qq.com/s/q5wzRrXzJn42SQqveiJ8mA作为互联网的幕后英雄,运维工程师长期隐匿在大众认知范围之外,关于运维的讨论仍旧是一片无人涉足的荒漠。在某知名行业研究调查结果中,非互联网从业者对于运维相关问题的回复有三个高频词汇是:不知道、没听过、网管。当调查人员告诉他们科幻电影中展示黑客高超技巧时的命令行界面正是大多数运维工程师每日工作环境时,他们发出极其一致的惊叹。相对于普罗大众的一无所知,技术圈对运维的态度则更偏向于黑色幽默。相较于开发等工作岗位,7*24小时待命的运维工程师往往到手薪水比前者低上一两成,同时还要接受“背锅侠”这一艰巨使命。作为运维职业的分支,桌面运维、机房运维等基础运维工作从业者还必须额外承受无法升职的压力和低于开发一半以上的薪水。所幸,精于Linux的运维工程师还能为运维行业争一口气。Linux占领了90%以上的企业市场,也为善于维护Linux环境的运维工程师提供了职业道路的转机。借Linux市占率之威,Linux运维工程师的收入水平在从业经验达到两年后即与开发相差无几,同时无需承受开发的“34岁危机”。他们仍旧站在幕后,但已有资格摆脱行业的种种不公,成为有高薪、有逼格的高端从业者。当然,高端意味着极高的学习成本和时间成本,也让许多希望进入Linux运维行业的人望而却步。为了帮助有志于从事Linux运维工作的爱好者,马哥教育坚持从事了长达八年的Linux运维教育,由浅入深引领学员进入最前沿科技领域。-互联网的幕后英雄
Py_lover
2018-07-29
4960
我为什么说Python是全栈式开发语言?
链接:https://mp.weixin.qq.com/s/gwZtzuw1QXRIDApSPaIDag
Py_lover
2018-07-29
8940
2017年Python开发大事件年度盘点
在马哥Python的万人学习社群做了个调研,盘点了一下2017年Python的重要事件,希望抛砖引玉。
Py_lover
2018-07-28
5420
什么是爬虫?python爬虫基本知识
把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。 网络蜘蛛是通过网页的链接地址来寻找网页的。
Py_lover
2018-07-26
8170
python初学必备 学习路线图
本人从事python工作已经有5年的历史了,最早大学里面接触python,毕业后开始从事python相关的工作,现在从事伪全栈开发:这里为什么说伪呢,因为我不光写web,还有运维开发,爬虫,数据分析,深度学习等我都写过,除了web开发稍微熟练些,别的也只是简单的会写,知道什么情况下用什么,学习没有捷径,唯有多写,多练,多想。废话少说,进入正题。
Py_lover
2018-07-26
4640
想要成为年薪30W的运维工程师,需要做哪些努力?
我在大学读的是计算机专业,但大学毕业之后,进入到一家私企进行工作,工作的内容类似于网管,会经常的去修电脑,去做水晶头等内容。刚开始工作,也没想太多,最想的是丰富自己的工作经验和社会经验。大概工作了几个月之后,和朋友聊天也会聊到工作,还会自黑的笑着说,到时候回家开个网吧。其实自己心里还是希望能够多学点东西,突破自己。
Py_lover
2018-07-26
6250
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档