2013-04-07 刘太华
rsyslog的一个高级点的用法, 根据programname做日志文件分离, 使用template功能根据系统时间切割日志文件: *.info;mail.none;authpriv.none;cron.none;!local1;!local3;!local2; /var/log/messages 继续阅读 »
2013-03-07 刘太华
zmq push--pull 方式 在ZMQ中是淡化服务端和客户端的概念的: 相对的服务端: 创建一个SUBer订阅者bind一个端口, 用来接收数据 创建一个zmq.PUSH 创建一个zmq poller轮询对象, 将sub注册到poller, 并赋予zmq.POLLIN意味轮询进来的msg 创建sock=poller.poll()开始轮询 当有msg发送到suber订阅者的监听端口后, sock.recv()方法将会收到msg, 最后使用之前创建的pusher, 使用pusher.send(msg)将消息推送到连接到的puller, 如果无puller, 此msg将被丢弃 继续阅读 »
2013-04-26 刘太华
hubot 机器人, 居然今天才去了解了下它, 用nodejs运行, coffee javascrpit写的. 记录下安装方式 如果是redhat系列的linux, 使用yum 安装即可, centos6后的nodejs版本已经很新了. 实在不行就搞源码安装. 继续阅读 »
2013-03-12 刘太华
使用datetime, 构造一个cron task定期执行给定的函数方法 一个Plan类, 包含next_datatime, execute, 两个方法, init方法指明在实例化的时候,需要给定一个func作为参数, 其他参数可以是时间间隔, 或具体的时间点, 继续阅读 »
2013-04-18 刘太华
说起来题目比较拗口, 比较常见到的是IP地址, 由8个2进制位, 转换成十进制最大为255, 这都知道. 以前学网络的时候, 经常碰到, 一个ip的一段, 比如 192.168.1.211中的211, 211转换成2进制是11010011, 继续阅读 »
2013-02-18 刘太华
FlameGraph的例图,解释如下: 图中每一个方块代表栈里的一个函数。 Y轴代表调用深度,最上面的是当前正在CPU上执行的函数,下面的都是其祖先。每个函数都是由它下方的函数调用的。 X轴不是按照时间先后排列的,它只代表样本数目。方块越宽,代表该函数出现的次数越多。 在有多个并发线程同时被采样,样本总数可能超过采样所用的时间。 继续阅读 »
2013-04-18 刘太华
源码里的结构: tornado ├── auth.py ├── autoreload.py ├── ca-certificates.crt ├── curl_httpclient.py ├── database.py ├── escape.py ├── gen.py ├── httpclient.py ├── httpserver.py ├── httputil.py ├── init.py ├── ioloop.py ├── iostream.py ├── locale.py ├── netutil.py ├── options.py ├── platform │ ├── auto.py │ ├── common.py 继续阅读 »
2013-03-07 刘太华
kvm的guest镜像可以mount到本地 首先使用qemu-img info img_file查看镜像使用的文件格式, 通常默认的是raw [root@ttt data]# qemu-img info vm1.img 继续阅读 »
2013-04-29 刘太华
hubot的announce通知所有在线联系人 hubot在使用挂接到其他平台时, 是支持room的方式了, 这样就支持了由一个用户发送announce通知所有在线联系人的方式了. 因为想到以后或许可以使用hubot来作为监控通知, 当你指定的监控项目告警时, 使用hubot把信息发送到所有在线订阅人. 继续阅读 »
2013-04-25 刘太华
2.6.16后的内核, 对于查看进程内存使用分布, 更方便了. 在/proc/{pid} 路径下有一个smaps文件, 记录了进程内存使用情况, 在老的内核系统上, 这个文件是maps或memap , 而且老的内核下maps或memap文件记录的数据真不是人读的. 继续阅读 »