Archive for the ‘linux’ Category

安装 ntop 提示 Missing Dependency: librrd_th.so.2 错误

星期五, 九月 2nd, 2011

centos 5.6 x64 安装 ntop 提示以下错误 Resolving Dependencies –> Running transaction check —> Package ntop.x86_64 0:3.3.9-7.el5 set to be updated –> Processing Dependency: graphviz for package: ntop –> Processing Dependency: librrd_th.so.2()(64bit) for package: ntop –> Processing Dependency: libnetsnmp.so.10()(64bit) for package: ntop –> Processing Dependency: libGeoIP.so.1()(64bit) for package: ntop –> Running transaction check —> Package geoip.x86_64 [...]

centos 5.6 x64 同步时间 更改时区

星期五, 九月 2nd, 2011

ntpdate pool.ntp.org 如无 ntpdate 命令安装  ntp 即可 执行 yum install -y ntp   更改时区 cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

mysql my.cnf 详解

星期四, 十二月 31st, 2009

Mysql my.ini 配置文件详解 #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大 #TYPE: SYSTEM #END CONFIG INFO # # 此mysql配置文件例子针对4G内存 # 主要使用INNODB #处理复杂队列并且连接数量较少的mysql服务器 # # 将此文件复制到/etc/my.cnf 作为全局设置, # mysql-data-dir/my.cnf 作为服务器指定设置 # (@localstatedir@ for this installation) 或者放入 # ~/.my.cnf 作为用户设置. # # 在此配置文件中, 你可以使用所有程序支持的长选项. # 如果想获悉程序支持的所有选项 # 请在程序后加上"–help"参数运行程序. # # 关于独立选项更多的细节信息可以在手册内找到 # # # 以下选项会被MySQL客户端应用读取. [...]

memcachedb

星期二, 十二月 8th, 2009

memcachedb是为了持久化而产生的一个分布式 “key-value”存储系统,你可以认为是memcached+berkeley DB+sina的一些东西的一个集成,这个东西主要是为了提高持久化对象的访问效率,而不是一个缓存,他的特点是: 比传统的RDBMS速度快效率高 高并发环境下访问安全可靠,效率很不错 存储的数据比较小 总之:高效、安全的事物机制、memcached的分布式协议支持 是他的几大亮点. 你可以将一些数据量不大,读写却很频繁的数据放再这里面,而不用往mysql等数据库里写,据说“sohu”的在线用户是存在这里面的,可见这东西还是挺可靠的。 在官方文档里明确指出,只提倡用此数据库保存如下类型的数据: Index, Counter, Flags Identity Management(Account, Profile, User config info, Score) Messaging Personal domain name meta data of distributed system Other non-relatonal data ………………….. 即,要求访问数据快、数据量不大,并且需要持久化到数据库中,却不需要sql查询的数据. 下面我们来说应用: 如果你看过了上一片文章,并且已经成功安装memcachedb的话,那么,现在请启动你的memcachedb,命令如下: memcachedb -p21201 -d -r -u root -f 21201.db -H /data1/demo -N -P /data1/logs/21201.pid 参数说明如下: ‘-p ’ TCP port number [...]

freebsd下python程序打包工具 ── cx_Freeze

星期五, 十二月 4th, 2009

cx_Freeze是一个类似py2exe的工具,它们区别是py2exe是将python程序打包成windows下可以执行的exe文件的,而cx_Freeze则是将python程序打包为linux下可以直接执行的ELF格式的二进制可执行文件(看说明好像也能生成windows的可执行文件,号称跨平台)。 cx_Freeze的作用就是让你的python程序可以脱离python运行环境,在没有安装python的微型linux系统(例如cdlinux、tinycore等)里,方便地运行你的python程序。从功能上来说,也可以将其理解为一个python程序的编译器,将你的源码隐藏起来。 安装 cd /usr/ports/devel/cx_Freeze make install clean 打包程序 cxfreeze 你的程序文件.py –target-dir dist

进程信号

星期一, 十一月 30th, 2009

转载:http://blog.csdn.net/ljx0305/archive/2008/09/09/2904056.aspx SIGHUP 终止进程 终端线路挂断 SIGINT 终止进程 中断进程 SIGQUIT 建立CORE文件终止进程,并且生成core文件 SIGILL 建立CORE文件 非法指令 SIGTRAP 建立CORE文件 跟踪自陷 SIGBUS 建立CORE文件 总线错误 SIGSEGV 建立CORE文件 段非法错误 SIGFPE 建立CORE文件 浮点异常 SIGIOT 建立CORE文件 执行I/O自陷 SIGKILL 终止进程 杀死进程 SIGPIPE 终止进程 向一个没有读进程的管道写数据 SIGALARM 终止进程 计时器到时 SIGTERM 终止进程 软件终止信号 SIGSTOP 停止进程 非终端来的停止信号 SIGTSTP 停止进程 终端来的停止信号 SIGCONT 忽略信号 继续执行一个停止的进程 SIGURG 忽略信号 I/O紧急信号 SIGIO 忽略信号 描述符上可以进行I/O SIGCHLD [...]

用Python写简单守护进程【转】

星期六, 十一月 28th, 2009

[转载自]http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/ I’ve written a simple Python class for creating daemons on unix/linux systems. It was pieced together for various other examples, mostly corrections to various Python Cookbook articles and a couple of examples posted to the Python mailing lists. It has support for a pidfile to keep track of the process. I hope it’s useful [...]

Django and Memcached

星期六, 十一月 28th, 2009

just ran into several problems while setting up memcached for a django installation, that is replicated over several servers. One of the problems was the compiling of cmemcache, a python extension for libmemcache, where I received the following error: ‘CmemcacheObject’ has no member named ‘mc_ctxt’ First I didn’t realized the additional file, that resides at [...]

TCP连接状态

星期日, 十一月 22nd, 2009

CLOSED: 表示初始状态。 LISTEN: 表示服务器端的某个SOCKET处于监听状态,可以接受连接。 SYN_SENT:在服务端监听后,客户端SOCKET执行CONNECT连接时,客户端发送SYN报文,此时客户端就进入SYN_SENT状态,等待服务端的确认 SYN_RCVD: 表示服务端接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。 ESTABLISHED:表示连接已经建立了。 FIN_WAIT_1: 这个是已经建立连接之后,其中一方请求终止连接,等待对方的FIN报文。FIN_WAIT_1状态是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。 FIN_WAIT_2:实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。 TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。 CLOSING: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。 CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。 LAST_ACK: 这个状态还是比较容易好理解的,它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。

mydns-ng mydns 的后继版

星期三, 九月 30th, 2009

无意间在 ports 看到 mydns-ng MyDNS-ng is a free DNS server for UNIX. It was implemented from scratch and is designed to serve records directly from an SQL database (currently either MySQL or PostgreSQL). MyDNS-ng is based on MyDNS originaly writen by Don Moore bboy@bboy.net Oficial Site http://mydns.bboy.net. MyDNS is licensed under the GNU General Public [...]

nginx做透明代理

星期三, 九月 23rd, 2009

resolver 208.67.222.222;   server { listen 8080; location / { proxy_pass http://$http_host$request_uri; } } 真是简单了,

BOM–字节序标记

星期三, 九月 23rd, 2009

读代码的时候看到这样一段 $template_content = str_replace(“\xEF\xBB\xBF”, ”, $template_content); 不知道是何作用,经过一番查找资料,终于解开了这个疑问 资料如下: 在window下面用记事本编辑文件的时候,如果保存为UNICODE或UTF-8,分别会在文件的开头加上两个字节“\xFF\xFE”和三个字节“\xEF\xBB\xBF”。在读取的时候就可能会遇到问题,但是不同的环境对这几个多于字符的处理也不一样。(其他的文本编辑工具也存在这个问题,但是可以选择去除bom,如editplus的设置:参数选择->文件->utf-8, 选择总是删除签名) 如果前面三个字符“\xef\xbb\xbf”则保存格式是utf-8 如果前两个字符是“\xff\xfe”则保存格式是Unicode Unicode规范中有一个BOM的概念。 BOM——Byte Order Mark,就是字节序标记。在这里找到一段关于BOM的说明: 在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。 UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。Windows就是使用BOM来标记文本文件的编码方式的。 容易导致header session_star ob_start的问题,utf-8编码的文件中,BOM占3个字节,由于php设计时没有考虑BOM的问题,这三个字节会直接输出,如果这时在程序里调用了session函数,就会出问题了 附:文件应该使用 Unicode (UTF-8) 编码保存。同时不要使用 字节序标记(BOM) 。与 UTF-16 和 UTF-32 不同,UTF-8 编码的文件不需要指明字节序,而且 字节序标记(BOM) 在PHP中会产生预期之外的输出,阻止了应用程序设置它自己的 头信息。应该使用Unix 格式的行结束符(LF)。

rpmbuild command not found

星期三, 六月 24th, 2009

yum install rpm-build 安装 rpm-build 组件

Extmail1.1登录显示:Unix::Syslog not found

星期二, 六月 23rd, 2009

Unix::Syslog not found, please install it first! (in cleanup) Undefined subroutine &Ext::Logger::do_closelog called at /var/www/extsuite/extmail/libs/Ext/Logger.pm line 87. 没装perl-Unix-Syslog包, 安装方法 perl -MCPAN -e shell cpan>install Unix::Syslog

freebsd下 nginx 日志每天分割

星期四, 五月 14th, 2009

#!/bin/sh date today=`date +"%Y_%m_%d"` logdir=/pub/log daydir=/pub/log/$today expdays=7 if [ ! -d $daydir ] ; then mkdir -p $daydir fi   cp /pub/log/wwwlogs.log $daydir/wwwlogs.log   #清空当前日志 /usr/bin/true > /pub/log/wwwlogs.log #删除7天前的过期文件 #find $daydir -type d -mtime +$expdays -maxdepth 1 | xargs rm -rf #每天12点运行 #0 0 * * * /cut_nginx_log.sh