摘要:
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究"(用此一词让我觉得颇有成就感)之后,基本解决了日常所需。主要记录使用过程的常见问题及解决。
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。可从这里下载https://pypi.python.org/pypi。下面分别记录python读和写excel.
python读excel——xlrd python读excel——xlwt
写excel的难点可能不在构造一个workbook的本身,而是填充的数据,不过这不在范围内。在写excel的操作中也有棘手的问题,比如写入合并的单元格就是比较麻烦的,另外写入还有不同的样式。这些要看源码才能研究的透。 阅读全文
摘要:
今天坐在右边的同事忽然欣喜的跟我说:嘿,推荐你个好东西,用PM2试试,比forever高端多了。表示一向落后于时尚的科技前沿的我认真的回答:什么?PM2.5还这么严重,PM2又出来了!
要不是都已习惯了我的二,这气氛还真要囧好一会儿~~呵呵……
先说说平时我都是怎么部署程序的吧
1、最常用的属nohup了,其实就是在后台执行进程,末尾加个&
[zhoujie@ops-dev ~]$ nohup node /home/zhoujie/ops/app.js &
[1] 31490
nohup: ignoring input and appending output to `nohup.out'
即此时程序已启动,直接访问即可,原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。
该命令的一般形式为:nohup command &
这个不太靠谱的样子,经常默默的进程在后台就挂了 阅读全文
摘要:
呵呵呵……今天,微信、微博、QQ空间甚至博客园都被"再见2014,你好2015"刷屏,哈哈哈……
我静静的想了想,这一年着实太过平淡,实在没有什么可以记录,瞬间怀恋起了轰轰烈烈的2012和2013
回望2014
如果硬要说点什么,我用复杂的心情宣布下:我暂时告别了单身,哇哈哈哈,23.5岁的初恋是不是太晚,哈哈
如果硬要说点什么,我下半年换工作了,依然混迹在互联网的江湖,哈哈,简单又内敛的我就适合这种工作
如果硬要说点什么,我上半年去了5个地方旅游,哈哈,但是下半年哪里都没去(后悔没珍惜单身生活),呜呜
如果硬要说点什么,我更了解自己了,以为很成熟可还是很任性,生活上考虑的太少
如果硬要说点什么,我深刻体会到锻炼身体、旅游、天天开心的重要性 阅读全文
摘要:
关于nodejs读取中文文件真是折腾了不少时间,网上各种方案,最后没有一个适用我,好在解决了。
下面的三个知识点都是从项目中抽出的,要单独运行脚本的话需要用全局模式来安装模块,比如安装中文转换模块(后续其它的也需要这么做npm install -g iconv-lite
npm install -g nodemailer
npm install -g node-schedule
My goal for 2015 is to accomplish the goals of 2014 which I should have done in 2013 because I made a promise in 2012 & planned in 2011 阅读全文
摘要:
每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见http://nodejs.org/api/child_process.html,NodeJS子进程提供了与系统交互的重要接口,其主要API有: 标准输入、标准输出及标准错误输出的接口。
NodeJS 子进程提供了与系统交互的重要接口,其主要 API 有:
标准输入、标准输出及标准错误输出的接口
child.stdin 获取标准输入
child.stdout 获取标准输出
child.stderr 获取标准错误输出
获取子进程的PID:child.pid
提供生成子进程的方法:child_process.spawn(cmd, args=[], [options])
提供直接执行系统命令的方法:child_process.exec(cmd, [options], callback)
提供调用脚本文件的方法:child_process.execFile(file, [args], [options] 阅读全文
摘要:
好想在2014结束前再赶出个10篇博文来,~(_)~,不写博客真不是一个好兆头,至少说明对学习的欲望和对知识的研究都不是那么积极了,如果说这1天的时间我能赶出几篇精致的博文,你们信不信,哈哈,反正我是信了。。。
python检测服务器是否ping通的2种方法
1、第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百台已经很慢了(当然是说python同步的方法,要是nodejs异步方式还是很快的,但是nodejs CPU计算不行,所以尝试了下只能200台左右的服务器可以同时ping,再多的话程序也会崩掉) 阅读全文
摘要:
# -*-coding:utf-8 -*-
import MySQLdb #首先必须装这两个包
import ConfigParser
cf=ConfigParser.ConfigParser()
cf.read("conf.ini")
DATABASE=cf.get("app_info","DATABASE")
USER=cf.get("app_info","USER")
PASSWORD=cf.get("app_info","PASSWORD")
HOST=cf.get("app_info","HOST")
PORT=cf.get("app_info","PORT")
def mysql(sql):
try:
conn=MySQLdb.connect(host=HOST,user=USER,passwd=PASSWORD,db=DATABASE,port=PORT)
cur = conn.cursor()
cur.execute(sql)
rows = cur. 阅读全文
摘要:
第一最好不相见,如此便可不相恋。
第二最好不相知,如此便可不相思。
第三最好不相伴,如此便可不相欠。
第四最好不相惜,如此便可不相忆。
第五最好不相爱,如此便可不相弃。
第六最好不相对,如此便可不相会。
第七最好不相误,如此便可不相负。
第八最好不相许,如此便可不相续。
第九最好不相依,如此便可不相偎。
第十最好不相遇,如此便可不相聚。
但曾相见便相知,相见何如不见时。
安得与君相诀绝,免教生死作相思。 阅读全文
摘要:
我问佛:为何不给所有女子羞花闭月的容颜?
佛曰:那只是昙花的一现,用来蒙蔽世俗的眼
没有什么美可以抵过一颗纯净仁爱的心
我把它赐给每一个女子
可有人让它蒙上了灰
我问佛:世间为何有那么多遗憾?
佛曰:这是一个婆娑世界,婆娑即遗憾
没有遗憾,给你再多幸福也不会体会快乐
我问佛:如何让人们的心不再感到孤单?
佛曰:每一颗心生来就是孤单而残缺的
多数带着这种残缺度过一生
只因与能使它圆满的另一半相遇时
不是疏忽错过,就是已失去了拥有它的资格
我问佛:如果遇到了可以爱的人,却又怕不能把握该怎么办?
佛曰:留人间多少爱,迎浮世千重变
和有情人,做快乐事
别问是劫是缘
我问佛:如何才能如你般睿智?
佛曰:佛是过来人,人是未来佛 佛把世间万物分为十界:佛,菩萨,声闻,缘觉,天,阿修罗,人,畜生,饿鬼,地狱;
天,阿修罗,人,畜生,饿鬼,地狱.为六道众生;
六道众生要经历因果轮回,从中体验痛苦。
在体验痛苦的过程中,只有参透生命的真谛,才能得到永生。 阅读全文
摘要:
1.作用
使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。
2.格式
crontab [-u user] {-l | -r | -e}
3.主要参数
-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi
-r:删除目前的时程表
-l列出目前的时程表。
Crontab文件的格式为”M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。Cmd表示要运行的程序,它被送入sh执行,这个shell只有USER、HOME、SHELL三个环境变量。
使用cron服务,用server crond status查看cron服务状态,如果没有启动则service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或编辑需要定时执行的任务:
crontab –u //设定某个用户的cron服务,一般root用户在执行这个命令的时候 阅读全文