<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>wolfg&#039;s Weblog</title>
	<link>http://guoyong.org</link>
	<description>wolfg&#039;s journey with open source, linux, programming, sysadm ...</description>
	<lastBuildDate>Thu, 04 Aug 2011 15:02:53 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	<!-- generator="WordPress/3.1.1" -->

	<item>
		<title>九点验证doubanclaim3a434b2969bb75b4</title>
		<description><![CDATA[doubanclaim3a434b2969bb75b4]]></description>
		<link>http://guoyong.org/2011/08/04/640</link>
			</item>
	<item>
		<title>MongoDB日志回滚</title>
		<description><![CDATA[# kill -SIGUSR1 `cat /var/run/mongodb.pid` 用在shell脚本里时，命令要改成这样： kill -USR1 `cat /var/run/mongodb.pid` 参考：http://www.mongodb.org/display/DOCS/Logging#Logging-Rotatingthelogfiles]]></description>
		<link>http://guoyong.org/2011/06/02/641</link>
			</item>
	<item>
		<title>RHEL5下编译MongoDB</title>
		<description><![CDATA[很多人都说自己编译的稳定好用，我也来试试： 1. 参考官方文档，手工编译Spider Monkey # curl -O ftp://ftp.mozilla.org/pub/mozilla.org/js/js-1.7.0.tar.gz# tar zxvf js-1.7.0.tar.gz# cd js/src# export CFLAGS=&#34;-DJS_C_STRINGS_ARE_UTF8&#34;# make -f Makefile.ref# JS_DIST=/usr make -f Makefile.ref export 2. 安装scons，用官网的rpm包就行。 3. 重新编译pcre。自带的编译时没带&#8211;enable-unicode-properties参数，mongdb启动时会提示：warning: some regex utf8 things will not work. pcre build doesn&#8217;t have &#8211;enable-unicode-properties. RPMS包是在这里找到的。 # rpm -ivh pcre-6.6-2.el5_1.7.src.rpm# vi /usr/src/redhat/SPECS/pcre.spec%configure --enable-utf8修改成%configure --enable-utf8 --enable-unicode-properties# rpmbuild -ba /usr/src/redhat/SPECS/pcre.spec# rpm -Uvh /usr/src/redhat/RPMS/x86_64/pcre*.rpm [...]]]></description>
		<link>http://guoyong.org/2011/06/01/630</link>
			</item>
	<item>
		<title>在MacOS下使用天翼3G上网卡(华为EC1260)</title>
		<description><![CDATA[关键是升级为华为的固件。 下载华为固件： 通用版客户端软件 中国电信（EC1260/EC1261/EC 189/EC8189/EC169/EC169C/EC122），下载页面 在使用Windows系统的电脑上运行升级程序。 在Mac电脑上插入上网卡，会自动运行，提示安装Mobile Partner这个应用程序。 运行Mobile Partner，在工具菜单里打开设置窗口，新建一个连接配置。号码是#777，用户名和密码都是card。 保存配置，就可以连接了。]]></description>
		<link>http://guoyong.org/2011/04/05/603</link>
			</item>
	<item>
		<title>Using Postgresql</title>
		<description><![CDATA[1. create tablespace $ mkdir -p /home/postgresql/data $ sudo chown -R postres:postres /home/postgresql/data $ sudo chmod -R og-rx /home/postgresql/data $ sudo su &#8211; postgres $ psql postgres=# create tablespace newspace location &#8216;/home/postgresql/data&#8217;; 2. move a database to this new tablespace use a php script from here to generate sql $ sudo yum install php-pgsql $ [...]]]></description>
		<link>http://guoyong.org/2010/08/24/595</link>
			</item>
	<item>
		<title>给虚拟机的虚拟硬盘增加容量(vmdk file)</title>
		<description><![CDATA[我使用虚拟机主要是为了使用Windows XP系统来访问网银、进行在线支付。当初安装时是用VMWare Player的，后来换成了VirtualBox 3。Windows XP越来越臃肿，虚拟机硬盘空间不够了。在网上搜索后找到了增加虚拟硬盘容量的方法：使用QEMN和GParted，不用安装“庞大”的VMWare软件。特别说明一下最初创建虚拟硬盘时也是使用的QEMU工具。 具体步骤如下： 1. VMDK格式转成RAW格式 $ qemu-img convert -f vmdk winxp.vmdk -O raw winxp.raw 2. 新建一个RAW格式的文件，后面会用到 $ qemu-img create -f raw temp.img 512M 3. 用cat命令把temp.img多次追加到winxp.raw文件后，达到扩容的目的。 $ cat winxp.raw temp.img temp.img temp.img temp.img temp.img temp.img temp.img temp.img &#62; winxp.img 4. 再转成原来的VMDK格式 $ qemu-img convert -f raw winxp.img -O vmdk winxp.vmdk 5. 用下载Gparted Live [...]]]></description>
		<link>http://guoyong.org/2010/03/04/576</link>
			</item>
	<item>
		<title>再谈使用Commons HttpClient产生大量CLOSE_WAIT</title>
		<description><![CDATA[默认情况下(即用默认构造方法建立HttpClient对象)，httpMethod.releaseConnection()方法并不会关闭连接的Socket，目的是可以重用这个连接。网上有不少讨论： Re: CLOSE_WAIT, logging Re: [httpclient] CLOSE_WAIT sticking around Re: tcp connections left with CLOSE_WAIT apache httpclient与close_wait 这些讨论里提出了关闭Socket的方法，即在请求头里加上&#8221;Connection: close&#8221;，具体可见HTTP协议规范里的说明。 其实HttpClient 3.x 里还可以通过下面的方式建立HttpClient对象，来保证关闭Socket连接： HttpClient httpClient = new HttpClient(new SimpleHttpConnectionManager(true)); 具体可见HttpClient源码和API文档。 当然，使用HttpClient的多线程连接管理器时就不用这么做了。]]></description>
		<link>http://guoyong.org/2010/02/02/572</link>
			</item>
	<item>
		<title>SSH:不用密码登录</title>
		<description><![CDATA[用SSH登录远程主机，每次都输入密码挺麻烦的，其实可以用密钥文件来登录： 1. 用ssh-keygen命令生成private/public密钥对，提示问题都用默认回答即可。 $ ssh-keygenGenerating public/private rsa key pair.Enter file in which to save the key (/home/guoyong/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/guoyong/.ssh/id_rsa.Your public key has been saved in /home/guoyong/.ssh/id_rsa.pub. 2. 用ssh-copy-id命令把公钥复制到远程主机上，user就是你登录用的用户名 $ ssh-cody-id user@remotehost 3. 验证一下吧 $ ssh user@remotehost echo &#34;it works&#34;]]></description>
		<link>http://guoyong.org/2010/01/30/569</link>
			</item>
	<item>
		<title>nrpe使用一例</title>
		<description><![CDATA[NRPE的作用是在远程主机上运行Nagios插件，以便监控远程主机。 Ubuntu Server下安装NRPE很方便： $ sudo apt-get install nagios-nrpe-server nagios-plugins 默认的几个检查命令(check_users, check_load等)都已经在/etc/naigos/nrpe.cfg和/etc/nagios/nrpe_local.cfg配置好了。在Nagios里配置监控服务使用类似如下的监控命令就可以了： check_command&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;check_nrpe!check_load 如果需要自定义监控命令，只需在/etc/nagios/nrpe_local.cfg里设置，重启NRPE服务，再在Nagios里配置监控服务即可。比如，要添加一个监控TCP各种状态的命令，步骤如下： @remotehost$ cd /usr/lib/nagios/plugins$ sudo wget http://www.tuschy.com/nagios/plugins/check_tcp_count$ sudo chmod +x check_tcp_count$ cd /etc/nagios$ sudo vi nrpe_local.cfgcommand[check_tcp_count]=/usr/lib/nagios/plugins/check_tcp_count$ sudo service nagios-nrpe-server restart@nagioshost$ sudo vi remotehost.cfgdefine service{&#160;&#160; &#160; &#160; &#160;use&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; [...]]]></description>
		<link>http://guoyong.org/2010/01/28/548</link>
			</item>
	<item>
		<title>使用Cacti监控JVM</title>
		<description><![CDATA[Cacti官方论坛里有几个监控JVM的模板： http://forums.cacti.net/about19761.html http://forums.cacti.net/post-112268.html 导入到Cacti后，需要启用JVM的SNMP Agent，方法如下： 1. 启动JVM的参数里加入-Dcom.sun.management.snmp.port=9998 这个是指定SNMP Agent的监听端口。 2. 设置访问权限 $ sudo cp $JRE_HOME/lib/management/snmp.acl.template $JRE_HOME/lib/management/snmp.acl$ sudo vi $JRE_HOME/lib/management/snmp.aclacl = {&#160; {&#160;&#160; &#160;communities = public, private&#160;&#160; &#160;access = read-only&#160;&#160; &#160;managers = localhost&#160; }}trap = {&#160; {&#160;&#160; &#160;trap-community = public&#160;&#160; &#160;hosts = localhost&#160; }} 3. 设置配置文件的权限，必须只能为启用JVM的用户只读，否则不能工作。(management.properties不用修改，使用默认配置即可) $ sudo chmod 600 management.properties snmp.acl$ sudo chown jetty management.properties [...]]]></description>
		<link>http://guoyong.org/2010/01/27/512</link>
			</item>
	<item>
		<title>登录窗口有多个Xfce会话供选择，怎么回事？</title>
		<description><![CDATA[登录窗口里选择会话的地方，一直有两个Xfce Session，登录后似乎略有不同。其实是在/usr/share/xsessions目录有一个符号链接default.desktop指向了xfce.desktop，删掉它后就可以了，也不影响什么。]]></description>
		<link>http://guoyong.org/2010/01/26/558</link>
			</item>
	<item>
		<title>找回消失的Notification Area(Xubuntu)</title>
		<description><![CDATA[美化桌面的时候会遇到通知区域(Notification Area)Applet不见了的情况，试图再加一个到面板上也会报类似“通知区域已经存在”的错误。 解决办法是检查~/.config/xfce4/panel目录下有没有名字以systray开头的文件，删掉这些文件。 rm ~/.config/xfce4/panel/systray* 再编辑~/.config/xfce4/panel/panels.xml这个文件，如果有一行包含systray的，也删掉。 再次登入后，重新添加通知区域到面板就可以了。]]></description>
		<link>http://guoyong.org/2010/01/26/556</link>
			</item>
	<item>
		<title>再次遭遇大量CLOSE_WAIT</title>
		<description><![CDATA[今天下午线上的Jetty服务又停止响应了。不过与上次不同的是，日志里没有Too many open files的问题（看来ulimit设置管用了），看不出任何问题。于是用netstat检查网络连接，发现了大量CLOSE_WAIT状态的连接，而且都是连接到同一个IP地址。联想到程序里有调用外部网站服务的部分，检查这个IP，正是其中的一个服务。检查代码，发现开发人员使用Commons HttpClient时出了问题，居然忘记关闭连接了(method.releaseConnection();)！！后果就是对方关闭了连接，连接不断地变成CLOSE_WAIT状态，直到耗尽所有的网络资源，没法再建立连接了。 从这个教训看出，项目的研发管理真是没有到位啊！快速反复的需求、几乎可以忽略的设计、缺少代码走查、没有单元测试，怎能保证上线前发现这样的问题！]]></description>
		<link>http://guoyong.org/2010/01/22/543</link>
			</item>
	<item>
		<title>Services not starting on boot</title>
		<description><![CDATA[前一段时间笔记本升级到Ubuntu 9.10后遇到了系统服务没有启动的问题，后来得知是upstart的一个bug。具体情况看看我在ServerFault回答的同样问题吧。]]></description>
		<link>http://guoyong.org/2010/01/21/524</link>
			</item>
	<item>
		<title>遭遇&#8221;java.io.IOException: Too many open files&#8221;</title>
		<description><![CDATA[今天下午，线上的Jetty服务宕机了，日志里大量的&#8221;java.io.IOException: Too many open files&#8221;错误。搜索到Freddy Chu的博客里正好有关于此的解决办法。 $ sysctl fs.file-max$ lsof -u jetty -nn &#124; wc -l$ ulimit -a$ sudo vi /etc/security/limits.conf* soft nofile 65535* hard nofile 65535 同时发现了系统里也有Freddy Chu提到的&#8221;Too many CLOSE_WAIT&#8221;问题，谢谢Freddy Chu。 $ sudo vi /etc/sysctl.confnet.ipv4.tcp_fin_timeout = 30net.ipv4.tcp_keepalive_intvl = 2net.ipv4.tcp_keepalive_probes = 2net.ipv4.tcp_keepalive_time = 1800$ sudo sysctl -p Update(2010-01-21): root用户要特殊设置 $ sudo vi /etc/security/limits.confroot soft nofile [...]]]></description>
		<link>http://guoyong.org/2010/01/20/520</link>
			</item>
</channel>
</rss>

