python实现p2p文件传输—适用大文件传输 2015-09-03 | perl/php/python/gawk/sed 一、需求及应用场景 考虑到我手上的服务器逐渐的增多,有时候需要大规模的部署同一个文件,例如因为方便使用systemtap这个工具定位问题,需要把手上几百台服务器同时安装kernel-debuginfo这个包,原有的方式采用一个源服务器,采用rsync或者scp之类的文件传输方式只能…… Continue reading
python smtplib发送多个email联系人 2015-09-01 | perl/php/python/gawk/sed 使用python下的stmpmail 模块,可以实现邮件的轻松和定制化发送,不过在发给多用户时,可能会对该模块理解不到位,造成发送异常或信息缺失,这里就针对发给多个收件人,说说其中的两个可能遇到的坑。 问题1:发给多个收件人不成功 1tolist=['[email protected]', '[email protected]', '[email protected]'] 2msg = MIMEMultipart() 3msg['from'] = fromuser 4msg['subject'] = subject 5msg['to'] = ','.join(tolist) //此处也有用 msg['to'] = ';'.join(tolist) 的 6server.sendmail(msg['from'],…… Continue reading
手机APP自动签到—python实现 2015-08-13 | perl/php/python/gawk/sed 当今是移动APP的天下,很多APP软件为了吸引客户每天登录使用,设置的有每天签到送一些奖励的活动。这里以一个挺火的网络电话软件呼应(每天签到送长)为例,通过python 实现自动签到。 一、Fiddler 抓包 Fiddler不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机…… Continue reading
python和shell读取文件某一行 2015-08-07 | perl/php/python/gawk/sed python和shell(awk命令) 可以实现直接读取文件的某一行,按行号进行读取 。并可以精准的取得该行的某个字段,这个有点类似于x轴、y轴定位某个点的操作。 一、awk取某行某列值 awk 可以设置条件来输出文件中m行到n行中每行的指定的k字段,使用格式如下: 1awk 'NR==m,NR==n {print $k}' path/filename m,n,k表示实在…… Continue reading
输出包含特定字符的列 2015-08-07 | perl/php/python/gawk/sed 公司的一个同事在写shell 的时候,提了这么一个需求,sar的输出中,将idle列输出 ,而且要求适用不同的平台 。在linux下通过awk打印$NF列就是ilde列,假设在其他平台下,如freebsd下idle列是$(NF-1)列,hp-unix下是$1列 (只是假设,请勿直接对号入…… Continue reading
python文件操作(一)ConfigParser模块读写ini文件 2015-07-24 | perl/php/python/gawk/sed Python的ConfigParser Module 中定义了3个类对INI文件进行操作。分别是RawConfigParser、ConfigParser、SafeConfigParser。 RawCnfigParser是最基础的INI文件读取类,ConfigParser、SafeConfigPa…… Continue reading
python队列模块Queue 2015-07-15 | perl/php/python/gawk/sed 一、初识Queue模块 Queue模块实现了多生产者、多消费者队列。它特别适用于信息必须在多个线程间安全地交换的多线程程序中。这个模块中的Queue类实现了所有必须的锁语义。它依赖于Python中线程支持的可用性;参见threading模块。 模块实现了三类队列:FIFO(First…… Continue reading
python threading之Condition 2015-07-15 | perl/php/python/gawk/sed Python提供的Condition对象提供了对复杂线程同步问题的支持。Condition被称为条件变量,除了提供与Lock类似的acquire和release方法外,还提供了wait和notify方法。线程首先acquire一个条件变量,然后判断一些条件。如果条件不满足则wai…… Continue reading
python threading之死锁和可重入锁 2015-07-14 | perl/php/python/gawk/sed 一、死锁 简单来说,死锁是一个资源被多次调用,而多次调用方都未能释放该资源就会造成死锁,这里结合例子说明下两种常见的死锁情况。 1、迭代死锁 该情况是一个线程“迭代”请求同一个资源,直接就会造成死锁: 1import threading 2import time 3class MyThread(threading.Thread): 4 def run(self): 5 global num 6 time.sleep(1) 7 if mutex.acquire(1): 8 num = num+1 9 msg = self.name+' set num to '+str(num) 10 print msg 11 mutex.acquire() 12 mutex.release() 13 mutex.release() 14num = 0 15mutex =…… Continue reading
python threading之互斥锁 2015-07-13 | perl/php/python/gawk/sed python threading模块有两类锁:互斥锁(threading.Lock )和可重用锁(threading.RLock)。两者的用法基本相同,具体如下: 1lock = threading.Lock() 2lock.acquire() 3dosomething…… 4lock.release() RLock的用法是将threading.Lock()修改为threading.RLock()。…… Continue reading