一见

2012年7月24日 #

不再担心日志文件过大:通用日志滚动脚本

摘要: #!/bin/sh# https://github.com/eyjian/mooon/blob/master/mooon/shell/log_rotater.sh# Writed by yijian on 2012/7/22## Linux自带的工具logrotate... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(436) 评论(1) 推荐(0) 编辑

改进后的日志类CLogger

摘要: 在原有的基础上增加了module_name,表示模块名,当一个系统由多模块组成时,输出的日志将更加清晰,使用方法,以MOOON-agent中的为例:点击(此处)折叠或打开#define AGENT_MODULE_NAME "AGENT"#define AGENT_LO... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(300) 评论(0) 推荐(0) 编辑

开发理念和用户体验

摘要: 开发理念:要有追求美的意识,简就是美。要形成自己的思想,设计需要灵魂。模式模式有时是恶魔,它容易让你走上抄袭模仿之路。把职责单一作为第一原则,并努力遵守,将让你柳暗花明又一村。一切源于生活,多和生活类比,能让理解更为深刻透彻。始终抱严谨心态,用心思考,细节决定品质。用... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(158) 评论(0) 推荐(0) 编辑

怎么做自动化

摘要: 在做系统时,不应当盲目地去做自动化,原因有两点:1.有些自动化的代价非常高,反不如人工简单实在2.有些自动化不能保证系统的正确性,它需要人工确认不过,这些也并不应当成为推进自动化的理由,自动化它可以带来两方面巨大的好处:1.大大降低运维工作量2.快速的进行故障恢复所以... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(204) 评论(0) 推荐(0) 编辑

来自mooon的最简单的日志类CSimpleLogger

摘要: /** * 单个头文件,可即时独立使用,只要定义了宏NOT_WITH_MOOON,即不依赖于mooon * 简单的写日志类,非线程安全,提供按大小滚动功能 * 不追求功能,也不追求性能,只求简单,若要功能强、性能高,可以使用CLogger * * 使用方法: * 1)... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(145) 评论(0) 推荐(0) 编辑

优雅的让一个类在线程安全和线程非安全间切换

摘要: 一个良好的多线程库,不应当一刀切的全加锁。因为有些时候,虽然是多线程环境,但可能依照设计一个类只会被一个线程操作,这个时候加锁是多余的,纯浪费性能,但另一些场景又需要它是线程安全的。假设有一个类X:class X{public: void xoo();};这里总... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(152) 评论(0) 推荐(0) 编辑

简单的主备切换方案

摘要: 主备切换是很多高可用性系统都必须解决的问题,方法有很多,象基于ZooKeeper的主备切换就是一个很好的选择。在这里提供一种更简单但不完美的主备切换方法:1) 假设A和B是集群中的主控(Master)节点2) 1~7是工作节点(如HDFS中的DataNode)... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(890) 评论(0) 推荐(0) 编辑

内网软件设计要领

摘要: 内网软件指的是只为一个企业内部提供服务的软件,它和外网软件有个很大不同 —— 即节点数是相对稳定的而且是非常有限的,在设计时可以充分利用这一特点进行简化。比如设计一款在各IDC间传输数据(文件或消息)的软件时,完全可以建立一对一的连接(为支持重连,可以为会话Sessi... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(132) 评论(0) 推荐(0) 编辑

Linux与网卡相关的几个命名

摘要: ifup - start a preconfigured net interface.ifdown - stop a (preconfigured) net interface.ifstatus - show the state of a (preconfigured... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(121) 评论(0) 推荐(0) 编辑

细节决定品质:不良的if/else使用习惯

摘要: 代码重构无处不在,重点滴做起。经常见到一些下面这样的代码:1、不要拿bool和false直接比if (false == IsXXX()){}这是画蛇添足,费力不会讨好,直接了当即可:if (!IsXXX())2、太多的if/else嵌套,导致过多缩进,造成眼花缭乱,阅... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(200) 评论(0) 推荐(0) 编辑

源于生活的设计之一:职责问题

摘要: 我相信大家在工作时,都厌烦手上同时有多个项目,特别是运维多个项目,那么我们在做软件设计时,也应当如此,我们不能给一个对象赋予太多责任,并尽量将主要的剥离出来单独实现(比如mooon中将异步收发数据的状态机剥离出来成了单独可复用的类CRecvMachine和CSendM... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(97) 评论(0) 推荐(0) 编辑

Linux下显示目录树的源代码包

摘要: 作者:Steve Baker (ice@mama.indstate.edu) tree-1.5.1.rar tree-1.5.1.zip 解压后,执行make即可编译成功,并生成可执行文件tree。 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(147) 评论(0) 推荐(0) 编辑

Linux下select使用陷阱

摘要: Select函数使用简单,其工作原理大家通常也知道,但是在实际的使用过程中可能并没有严格遵守,而且确实也比较难以完全遵守,除非不使用它。Select采用一个bit表,每个fd对应表中的一个bit位,宏FD_SETSIZE为表的大小,添加到fd_set中的fd值必须小于... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(773) 评论(0) 推荐(0) 编辑

MOOON-scheduler设计图更新

摘要: 初稿设计:http://blog.chinaunix.net/uid-20682147-id-3252602.html在上一版本的基础上,进行了细化和关系调整,并考虑了Service在线升级,升级过程中,会同时存在两个不同版本的Service,这可以从CService... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(69) 评论(0) 推荐(0) 编辑

基于/proc统计网络流量的脚本

摘要: #!/bin/sh# 下载:https://github.com/eyjian/libmooon/tree/master/shell# 流量统计工具# 可带一个两个:# 参数1:网卡名,如eth0或eth1等# 参数2:统计次数# 参数3:统计间隔(秒)# 输出格式:... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(124) 评论(0) 推荐(0) 编辑

简单的统计指定进程ID(或进程名)CPU、内存脚本

摘要: 仅一行脚本,复制粘贴即可使用。按进程名:while true; do ps h -o pcpu,vsize,rss -C 进程名; sleep 2; done按进程ID:while true; do ps h -o pcpu,vsize,rss -p 进程ID; sl... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(178) 评论(0) 推荐(0) 编辑

linux下文件数、目录数、文件名长度的各种限制

摘要: 以下测试都是在没有优化或修改内核的前提下测试的结果1. 测试目的:ext3文件系统下filename最大字符长度 测试平台:RHEL5U3_x64 测试过程:LENTH=`for i in {1..255};do for x in a;do echo -n $x;... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(929) 评论(0) 推荐(0) 编辑

ssh/ssh2登录

摘要: SSH2登录:现在确认能否不输入口令就用ssh登录localhost:$ ssh localhost如果不输入口令就无法用ssh登陆localhost,执行下面的命令:$ cd ~/.ssh2$ ssh-keygen2 -t rsa $ echo "I... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(169) 评论(0) 推荐(0) 编辑

SuSE上配置DNS客户端方法

摘要: 环境:SuSE10.1配置DNS客户端的方法非常简单,现将方法总结如下:1、修改/etc/resolv.conf在这个文件里增加DNS服务器的IP地址,格式为:nameserver DNS服务器IP地址如:nameserver 192.168.1.46可以有多行na... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(412) 评论(0) 推荐(0) 编辑

Linux下进程的各种状态

摘要: D Uninterruptible sleep (usually IO)不可中断的深度睡眠,一般由IO引起,同步IO在做读或写操作时,cpu不能做其它事情,只能等待,这时进程处于这种状态,如果程序采用异步IO,这种状态应该就很少见到了一般不思考R Running or... 阅读全文

posted @ 2012-07-24 16:19 -见 阅读(172) 评论(0) 推荐(0) 编辑

导航