﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Fingki 's Blog-随笔分类-About linux</title><link>http://www.blogjava.net/fingki/category/36827.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 09 Jun 2010 07:53:55 GMT</lastBuildDate><pubDate>Wed, 09 Jun 2010 07:53:55 GMT</pubDate><ttl>60</ttl><item><title>linux (ubuntu 9.04) 下，vmware中方向键失效问题</title><link>http://www.blogjava.net/fingki/archive/2010/06/09/323162.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Wed, 09 Jun 2010 07:39:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2010/06/09/323162.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/323162.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2010/06/09/323162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/323162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/323162.html</trackback:ping><description><![CDATA[<br />
sudo vim /etc/vmware/config<br />
<br />
在最下面添加一句话：<br />
<cite>xkeymap.nokeycodeMap = true</cite><br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/323162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2010-06-09 15:39 <a href="http://www.blogjava.net/fingki/archive/2010/06/09/323162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 时区时间设置：</title><link>http://www.blogjava.net/fingki/archive/2010/03/02/314265.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 02 Mar 2010 03:51:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2010/03/02/314265.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/314265.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2010/03/02/314265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/314265.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/314265.html</trackback:ping><description><![CDATA[Ubuntu 时区时间设置：<br />
执行<br />
<code>tzselect</code>（有的版本用tzconfig）<br />
按照提示进行选择时区<br />
<code>sudo cp /usr/share/zoneinfo/Asia/ShangHai /etc/localtime</code><br />
执行<br />
<code>sudo ntpdate cn.pool.ntp.org</code><br />
cn.pool.ntp.org是位于中国的公共NTP服务器，用来同步你的时间<br />
<br />
时间<br />
sudo date
<img src ="http://www.blogjava.net/fingki/aggbug/314265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2010-03-02 11:51 <a href="http://www.blogjava.net/fingki/archive/2010/03/02/314265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 9.04 Error about apt-get install </title><link>http://www.blogjava.net/fingki/archive/2009/11/23/303350.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Mon, 23 Nov 2009 07:57:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2009/11/23/303350.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/303350.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2009/11/23/303350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/303350.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/303350.html</trackback:ping><description><![CDATA[Error info:<br />
E:Dynamic MMap ran out of room. Please increase the size of
APT::Cache-Limit. Current value: 25165824. (man 5 apt.conf), E:Dynamic ...<br />
<br />
Reason: sources.list is wrong. (/etc/apt/sources.list)<br />
<br />
For example: the ubuntu 9.04 with the sources.list of the ubuntu 8.10, the error will be there.<br />
<br />
Others cases:<br />
<strong>Error :Synaptic Package Manager <br />
</strong>Error info:<br />
E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem.<br />
E:_cache-&gt;open() failed, please report.<br />
<br />
please run 'dpkg --configure -a'.<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/303350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2009-11-23 15:57 <a href="http://www.blogjava.net/fingki/archive/2009/11/23/303350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux设置开机启动慎用nohup</title><link>http://www.blogjava.net/fingki/archive/2009/08/11/290693.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 11 Aug 2009 09:38:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2009/08/11/290693.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/290693.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2009/08/11/290693.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/290693.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/290693.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/fingki/archive/2009/08/11/290693.html'>阅读全文</a><img src ="http://www.blogjava.net/fingki/aggbug/290693.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2009-08-11 17:38 <a href="http://www.blogjava.net/fingki/archive/2009/08/11/290693.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>500 OOPS: vsftpd: refusing to run with writable anonymous root </title><link>http://www.blogjava.net/fingki/archive/2009/07/13/286526.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Mon, 13 Jul 2009 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2009/07/13/286526.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/286526.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2009/07/13/286526.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/286526.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/286526.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: vsftpd 有关错误 500 OOPS: vsftpd: refusing to run with writable anonymous root &nbsp;&nbsp;<a href='http://www.blogjava.net/fingki/archive/2009/07/13/286526.html'>阅读全文</a><img src ="http://www.blogjava.net/fingki/aggbug/286526.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2009-07-13 10:58 <a href="http://www.blogjava.net/fingki/archive/2009/07/13/286526.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux（ubuntu）下使用jconsole</title><link>http://www.blogjava.net/fingki/archive/2009/03/24/261664.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 24 Mar 2009 03:45:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2009/03/24/261664.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/261664.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2009/03/24/261664.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/261664.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/261664.html</trackback:ping><description><![CDATA[从JDK5开始就已经增加了对VM的监控功能jconsole,JDK1.6也有了进一步的改进。<br />
然而对linux特别是Ubuntu用户来说，会碰到一些小问题。<br />
在终端进入java_home/bin目录下，<br />
＃ jconsole<br />
结果报错如下：<br />
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException<br />
<br />
原因就是在ubuntu下用java写Swing应用程序时不能使用<font id="zoom" class="zw_txt">SystemLookAndFeel</font>。<br />
<font id="zoom" class="zw_txt">实际上出现这个问题是因为swing的默认laf采用systemlaf，而Ubuntu里却没有定义这个laf。</font><br />
一种很方便的解决方法就是把语言环境改成英文： <br />
＃ export LANG=en<br />
但对中文用户很不方便（尽管swing程序可以运行）。<br />
另一种方法就是程序启动时加上jvm运行时参数，比如 运行jconsole ：<br />
＃ jconsole -J-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel<br />
<br />
另外，jconsole对于hostname也有要求，如果执行：<br />
＃ hostname -i<br />
显时 127.0.0.1，则需要在 /etc/hosts中把127.0.0.1改成机器的外网IP。<br />
这下，我们就又多了一个jvm分析的利器。<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/261664.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2009-03-24 11:45 <a href="http://www.blogjava.net/fingki/archive/2009/03/24/261664.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Commands under linux view cpu information and OS information.</title><link>http://www.blogjava.net/fingki/archive/2009/02/26/256762.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Thu, 26 Feb 2009 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2009/02/26/256762.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/256762.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2009/02/26/256762.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/256762.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/256762.html</trackback:ping><description><![CDATA[View cpu information command:<br />
1 # dmesg | grep CPU<br />
2 # cat /proc/cpuinfo<br />
<br />
you can find the following from the show :AMD Athlon(tm) 64 X2 Dual Core Processor 4000+ <br />
It tell you :64bit cpu<br />
<br />
View OS version:<br />
# cat /proc/version<br />
you can see information similar to the following:<br />
Linux version 2.6.24-21-generic (buildd@palmer) (gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)) #1 SMP Tue Oct 21 23:43:45 UTC 2008<br />
<br />
View OS bit num:<br />
# getconf LONG_BIT<br />
you can see :32 or 64.<br />
<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/256762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2009-02-26 10:42 <a href="http://www.blogjava.net/fingki/archive/2009/02/26/256762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>On Ubuntu，run applications as sudo via Application Launcher</title><link>http://www.blogjava.net/fingki/archive/2009/02/23/256199.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Mon, 23 Feb 2009 04:33:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2009/02/23/256199.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/256199.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2009/02/23/256199.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/256199.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/256199.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: sudoer application Launcher<br>On Ubuntu，run applications as sudo via Application Launcher&nbsp;&nbsp;<a href='http://www.blogjava.net/fingki/archive/2009/02/23/256199.html'>阅读全文</a><img src ="http://www.blogjava.net/fingki/aggbug/256199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2009-02-23 12:33 <a href="http://www.blogjava.net/fingki/archive/2009/02/23/256199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CentOS 无法访问 port 80</title><link>http://www.blogjava.net/fingki/archive/2008/11/25/242604.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 25 Nov 2008 09:44:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/11/25/242604.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/242604.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/11/25/242604.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/242604.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/242604.html</trackback:ping><description><![CDATA[<div>通过/etc/init.d/iptables status命令查询是否有打开80端口，如果没有可通过两种方式处理：</div>
<div>1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口</div>
<div>-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT<br />
</div>
<div>2.关闭防火墙</div>
<div>/etc/init.d/iptables stop&nbsp;</div>
<div>#start 开启&nbsp;</div>
<div>#restart 重启</div>
<img src ="http://www.blogjava.net/fingki/aggbug/242604.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-11-25 17:44 <a href="http://www.blogjava.net/fingki/archive/2008/11/25/242604.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>postgres命令行下备份 恢复数据库</title><link>http://www.blogjava.net/fingki/archive/2008/11/25/242457.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 25 Nov 2008 02:13:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/11/25/242457.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/242457.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/11/25/242457.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/242457.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/242457.html</trackback:ping><description><![CDATA[Backup to Script:<br />
首先切换到postgres用户：<br />
liqingfeng@liqingfeng:~$ su postgres<br />
口令： 输入密码<br />
postgres@liqingfeng:/home/liqingfeng$ <br />
然后输入backup命令：<br />
pg_dump -U[username] -d -f[way of script file] [database name]<br />
例如：pg_dump -Upostgres -d -f/home/liqingfeng/test.sql testdb<br />
这样数据库testdb将以sql脚本形式backup到/home/liqingfeng/test.sql中。<br />
Restore from Script:<br />
还是首先要切换到postgres用户下，输入命令：<br />
psql -U[username] -d[database name] -f[way to an existing script file]<br />
例如：<br />
psql -Upostgres -dtestdb -f/home/liqingfeng/test.sql<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/242457.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-11-25 10:13 <a href="http://www.blogjava.net/fingki/archive/2008/11/25/242457.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于 Exception : Too many open files</title><link>http://www.blogjava.net/fingki/archive/2008/10/22/236000.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Wed, 22 Oct 2008 11:13:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/10/22/236000.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/236000.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/10/22/236000.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/236000.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/236000.html</trackback:ping><description><![CDATA[当进行大并发的压力测试时，经常会出现如下Exception：Too many open files.<br />
查阅资料，google baidu.<br />
首先感谢demo的评论，使我对这个问题有了新的认识。<br />
经过再次查找，发现这个问题的出现原因是system对打开files数量的限制问题。<br />
用 ulimit -a 命令可以查看当前所有资源限制<br />
fingki@ubuntu:~$ ulimit -a<br />
core file size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (blocks, -c) 0<br />
data seg size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (kbytes, -d) unlimited<br />
scheduling priority&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-e) 0<br />
file size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (blocks, -f) unlimited<br />
pending signals&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-i) 15863<br />
max locked memory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (kbytes, -l) 32<br />
max memory size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (kbytes, -m) unlimited<br />
open files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-n) 1024<br />
pipe size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (512 bytes, -p) 8<br />
POSIX message queues&nbsp;&nbsp;&nbsp;&nbsp; (bytes, -q) 819200<br />
real-time priority&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-r) 0<br />
stack size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (kbytes, -s) 8192<br />
cpu time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (seconds, -t) unlimited<br />
max user processes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-u) 15863<br />
virtual memory&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (kbytes, -v) unlimited<br />
file locks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-x) unlimited<br />
fingki@ubuntu:~$ <br />
可以看出，对open files的限制数是1024，我们可以通过修改这个值来增加可以打开的文件数。<br />
最简单的修改方式就是用ulimit -n 命令，<br />
比如我打算将其改为2048，用 ulimit -n 2048.<br />
当你把open files的值增大到一定程度，你的Too many open files就不会再出现了。<br />
<br />
而对于tcp_fin_timeout，是合tcp连接相关的，当你有大量tcp连接时，或许有些性能改善；<br />
tcp_fin_timeout，默认情况下，win为4 min,linux为60 sec.<br />
可以把其相应设置短一些，以增加系统性能。<br />
<h4>in Windows</h4>
<ol>
    <li>Run regedit to start the Registry Editor</li>
    <li>Locate the following key: HKEY_LOCAL_MACHINE"System"CurrentControlSet"Services"tcpip"Parameters</li>
    <li>Add a new value named TcpTimedWaitDelay asa  decimal and set the desired timeout in seconds (30-300)</li>
    <li>Reboot<br />
    </li>
</ol>
<h4>in Linux</h4>
<ol>
    <li>Update the configuration value by running (30 seconds used in the example)
    <pre>echo 30 &gt; /proc/sys/net/ipv4/tcp_fin_timeout</pre>
    </li>
    <li>Restart the networking component, for example by running
    <pre>/etc/init.d/networking restart  or  service network restart</pre>
    </li>
</ol>
在linux下，经常会有权限问题使设置不能成功，尽管你用了sudo。<br />
解决办法就是先 su root，在root用户下来执行操作，这样就ok了。<br />
再有就是可能忘记root密码了，那就 sudo passwd root，来设置一个新密码。<br />
<br />
根据进一步的研究发现：服务器默认情况下对进程的处理也是有限制的，要想server处理更多用户进程就需要调整相应参数。<br />
这里面有两个文件要特别注意，<br />
一个是&nbsp;&nbsp;&nbsp; /etc/security/limits.conf <br />
另一个&nbsp;&nbsp;&nbsp; /etc/sysctl.conf <br />
<br />
当我们用ulimit -a命令可以查看 open files(默认为1024)和max user processes（默认也为1024），<br />
所以默认情况下这个server只允许同时打开1024个文件，处理1024个用户进程，<br />
若要 临时 改变这两个参数值，可以使用 ulimit -n 10240 ,ulimit -u 10240,<br />
若要 长久 改变这两个参数值，就要修改/ect/security/limits.conf,在文件中加上两行：<br />
* - nofile 102400<br />
* - nproc 102400<br />
<br />
而对于大量使用tcp连接的应用来说，也需要对/etc/sysctl.conf中的参数进行相应优化：<br />
net/ipv4/ip_always_defrag = 1<br />
net.ipv4.ip_local_port_range = 1024&nbsp;&nbsp;&nbsp; 65000<br />
net.ipv4.tcp_max_syn_backlog = 102400<br />
net.ipv4.tcp_tw_reuse = 1<br />
net.ipv4.tcp_tw_recycle = 1<br />
上面是我根据我的需求的一些参数调整，你可以根据你的需求来调整相应参数值。<br />
然后执行 <font face="Courier New">sysctl -p命令可立即生效。sysctl -a可查看参数值。</font><br />
<br />
参考 ：http://www.javaeye.com/topic/65175<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/236000.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-10-22 19:13 <a href="http://www.blogjava.net/fingki/archive/2008/10/22/236000.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 命令</title><link>http://www.blogjava.net/fingki/archive/2008/09/18/229753.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Thu, 18 Sep 2008 09:31:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/09/18/229753.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/229753.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/09/18/229753.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/229753.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/229753.html</trackback:ping><description><![CDATA[<br />
1、Scp 很好用的远程文件安全传输命令<br />
&nbsp;&nbsp; 命令格式：scp [-r] 源文件路径 目标文件路径<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 源文件路径：username@hostname:文件路径 For example:fingki2@192.168.0.2:test/a.txt （如果是本地可直接写相应路径）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目标文件路径：username@hostname:文件路径 For example:fingki3@192.168.0.3:test/a.txt （如果是本地可直接写相应路径）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -r：如果是传目录 就要加上这个参数 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要求：远程机器必须打开22端口<br />
2、ssh 很好的linux服务器登录命令 secure shell<br />
&nbsp;&nbsp;&nbsp; 简易命令格式：ssh username@hostname 然后输入密码即可进入系统。 <br />
&nbsp;&nbsp;&nbsp; 有时你会遇到如下问题：<br />
<font size="3"><font color="#000000"><font face="MS Sans Serif">The authenticity of host '172.0.x.xxx (172.0.x.xxx)' can't be established.
<br />
RSA key fingerprint is 1f:c9:78:0a:ce:e2:e5:10:2c:b5:f4:33:19:fa:be:ec.
<br />
Are you sure you want to continue connecting (yes/no)? </font></font></font><br />
&nbsp;&nbsp;&nbsp; 如果你是第一次在这台机器上使用ssh命令，输入yes回车后，就可以输入密码登录了。<br />
&nbsp;&nbsp;&nbsp; 如果输入yes后仍有问题，你可以到 ~/.ssh/下找到文件known_hosts，清除文件里面的内容，重试即可。<br />
<br />
3、vi列模式编辑：<br />
<br />
&nbsp; 用命令打开文本：vim test.txt<br />
&nbsp; 按 Esc 取消当前模式，<br />
&nbsp; 按Ctrl ＋ v 进入这种模式，<br />
&nbsp; 将光标移到指定列位置，<br />
&nbsp; 然后按方向键选定指定列，进行编辑（删除等）<br />
<br />
4. 批量删除<br />
如：删除所有名字包含test的文件<br />
find ./ -name *test* | xargs rm -f<br />
<img src ="http://www.blogjava.net/fingki/aggbug/229753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-09-18 17:31 <a href="http://www.blogjava.net/fingki/archive/2008/09/18/229753.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>phppgadmin安装问题</title><link>http://www.blogjava.net/fingki/archive/2008/07/31/219120.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Thu, 31 Jul 2008 09:43:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/07/31/219120.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/219120.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/07/31/219120.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/219120.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/219120.html</trackback:ping><description><![CDATA[在ubuntu-server下安装phppgadmin遇到如下问题，记录如下：<br />
首先安装postgresql很简单，sudo apt-get instatll postgresql <br />
安装完成后，可能需要更改默认用户postgre的密码，这个可以查看我之前的文章。<br />
然后，安装client,我打算使用phppgadmin,<br />
命令行下：sudo apt-get install phppgadmin<br />
完成后，默认同时安装了它所依赖的apache2。<br />
在浏览器中输入：http://localhost，显示 It works.这说明apache2在正常工作。<br />
但输入http://localhost/phppgadmin,显示无法找到该页，<br />
进入 /var/www中查看，只有index.html，所以肯定找不到phpgpadmin,<br />
所以需要做link,<br />
执行：sudo find / -name phppgadmin，查找出phppgadmin的位置，<br />
然后做连接： sudo ln -s /usr/share/phppgadmin phppgadmin<br />
之后再试浏览器中访问http://localhost/phppgadmin,这次可以找到文件了，但提示是否下载php文件。<br />
一同事说遇到过这样问题，说是少个libapache2-mod-php5，查看一下已经安装了。<br />
于是google一番，得知：如果当您浏览PHP网页的时候，浏览器提示您是否下载PHP文件而不是去显示它的时候，就可能是您没有安装libapache2-mod-php5。当您
安装PHP5的时候，它会被默认的安装进去的，如果您不小心的将它遗忘了。您就需要去将它打开，sudo a2enmod php5，然后使用sudo
/etc/init.d/apache2 restart来重新启动APACHE。<br />
果然重启apache2后，可以正常访问了。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/219120.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-07-31 17:43 <a href="http://www.blogjava.net/fingki/archive/2008/07/31/219120.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>从Hsql中转数据到postgresql时遇到的问题</title><link>http://www.blogjava.net/fingki/archive/2008/07/04/212611.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Fri, 04 Jul 2008 07:09:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/07/04/212611.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/212611.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/07/04/212611.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/212611.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/212611.html</trackback:ping><description><![CDATA[工作中的需要，将一个软件应用的数据库由hsql转为postgresql.<br />
从Hsql中转数据到postgresql时，我采用的是从 dbname.script中获取数据的脚本，写成新的dbname.sql，然后在postgresql中执行的方法。<br />
经过一番努力，终于如愿以常成功导入了数据。<br />
大概浏览一下数据，没有什么问题，就放心的让同事去测试了。<br />
不到一会儿的工夫，同事就找过来，说软件应用中的原用户无法登录，报错为用户的privatekey无法解开（此应用采用数字证书认证，并且加密了privatekey存于数据库）。<br />
我很是奇怪。<br />
让同事新创建用户，正常 ，也可以正常登录。<br />
于是断定为数据有问题。<br />
打开数据库查看用户信息表，发现privatekeyinfo字段中的数据中有好多 u000a，感觉不对，再查看一下新创建的用户，这个字段中没有。<br />
找来dbname.sql查看，果真里面有好多\u000a，实际上这一位置应为回车.替换所有的\u000a为回车，重新导入数据。<br />
一切OK了。<br />
个人感觉原因是：hsql的sql脚本不支持回车符，所以用\u000a代替；而在postgresql中，数据库不认\u000a，导致数据被修改。<br />
从而privatekey无法正常解开。<br />
希望朋友们不要再走进这个误区。<br />
<img src ="http://www.blogjava.net/fingki/aggbug/212611.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-07-04 15:09 <a href="http://www.blogjava.net/fingki/archive/2008/07/04/212611.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>PostgreSQL安装和简单使用(OS:ubuntu8)</title><link>http://www.blogjava.net/fingki/archive/2008/07/04/212477.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Fri, 04 Jul 2008 01:12:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/07/04/212477.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/212477.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/07/04/212477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/212477.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/212477.html</trackback:ping><description><![CDATA[1 安装：<br />
<span class="pg" id="xydwtext">软件其实很简单，用新立得软件包管理器搜索psql便能查到postgresql-client-8.2(同时可以搜到8.1版本，哪一个都可以)，选中-应用即可。或者在终端下输入<br />
xiaop@localhost$ sudo apt-get install postgresql-8.2</span><span class="pg" id="xydwtext">在Ubuntu系统中，服务器启动脚本放在 /etc/init.d目录中，您可以用下面的方法来启动，对于Fedora和Gentoo 也是类似的;<br />
2 </span><span class="pg" id="xydwtext">启动PostgreSQL 数据库服务器</span><br />
<span class="pg" id="xydwtext">
xiaop@localhost~# /etc/init.d/postgresql-8.2 start 注：启动；<br />
xiaop@localhost~# /etc/init.d/postgresql-8.2 restart 注：重启;<br />
xiaop@localhost~# /etc/init.d/postgresql-8.2 stop 注：停止；<br />
xiaop@localhost~# /etc/init.d/postgresql-8.2 status 注：查看状态；</span><br />
<span class="pg" id="xydwtext">3.创建用户<br />
<br />
<br />
添加用户命令格式。<br />
<br />
createuser 是 SQL 命令 CREATE USER的封装。<br />
命令：createuser [-a] [-A] [-d] [-D] [-e] [-P] [-h 主机名] [-p port] 用户名<br />
<br />
<br />
参数说明：<br />
<br />
[-a]：允许创建其他用户，相当于创建一个超级用户；<br />
[-A]：不允许此用户创建其他用户；<br />
[-d]：允许此用户创建数据库；<br />
[-D]：不允许此用户创建数据库；<br />
[-e]：将执行过程显示到Shell上；<br />
[-P]：创建用户时，同时设置密码；<br />
[-h 主机名]：为某个主机上的Postgres创建用户；<br />
[-p port]：与-h参数一同使用，指定主机的端口。<br />
<br />
<br />
3.1添加用户;<br />
<br />
<br />
3.1.1不带参数的创建用户;<br />
<br />
xiaop@localhost~$ createuser testuser<br />
Shall the new user be allowed to create databases? (y/n) n --------是否可以创建数据库：否<br />
Shall the new user be allowed to create more new users? (y/n) n ---------是否可以创建新用户：否<br />
CREATE USER<br />
<br />
注：不带参数创建用户时，Postgres会询问此用户的权限，上面的例子创建了一个普通用户;<br />
<br />
<br />
3.1.2 为指定的主机和端口上创建用户 ;<br />
<br />
xiaop@localhost~$ createuser -h 172.28.18.51 -p 5000 -D -A -e testuser<br />
CREATE USER joe NOCREATEDB NOCREATEUSER;<br />
CREATE USER<br />
<br />
注：这个命令为主机172.28.18.51的5000端口创建用户testuser， 此用户不可以创建数据库和其他用户。<br />
<br />
<br />
3.1.3创建超级用户;<br />
<br />
test@localhost~$ createuser -P -d -a -e testuser<br />
Enter password for new user: testuser<br />
Enter it again: testuser<br />
CREATE USER joe PASSWORD 'testuser' CREATEDB CREATEUSER;<br />
CREATE USER<br />
<br />
注：这个命令在本地创建一个超级用户(-a)，可以创建数据库(-d)， 同时要求设置密码。<br />
<br />
<br />
3.2 删除用户：<br />
<br />
命令：dropuser [-i] [-h] [-p] [-e] 用户名<br />
<br />
参数说明：<br />
[ -i]：删除用户前，要求确认；<br />
[-h 主机名]：删除某个主机上的Postgres用户；<br />
[-p port]：与-h参数一同使用，指定主机的端口；<br />
[-e]：将执行过程显示到Shell上。<br />
<br />
<br />
3.2.1 删除本地的Postgres用户;<br />
<br />
test@localhost~$ dropuser testuser<br />
DROP USER<br />
<br />
<br />
3.2.2 删除远程Postgres服务器上的用户;<br />
<br />
test@localhost~$ dropuser -p 5000 -h 172.28.18.51 -i -e testuser<br />
User "testuser" and any owned databases will be permanently deleted.<br />
Are you sure? (y/n) y<br />
DROP USER "testuser"<br />
DROP USER<br />
<br />
注：此命令删除主机172.28.18.51(-h)的5000端口(-p)的用户testuser，并且需要确认(-i);<br />
<br />
<br />
4. 创建和删除数据库；<br />
<br />
<br />
4.1创建数据库<br />
<br />
看看您能否访问数据库服务器的第一个例子就是试着创建一个数据库;<br />
要创建一个新的数据库，在我们这个例子里叫 mydb，您可以使用下面的命令：<br />
<br />
test@localhost~$ createdb mydb<br />
<br />
它应该生成下面这样的响应：<br />
<br />
CREATE DATABASE<br />
<br />
如果这样，那么这一步就成功了，如果您看到类似下面这样的信息<br />
<br />
createdb: command not found<br />
<br />
那么就是PostgreSQL没有安装好,要么是就根本没装上;<br />
您还可以用其它名字创建数据库。 PostgreSQL 允许您在一个节点上创建任意数量的数据库。 数据库名必须是以字母开头并且小于 63
个字符长。 一个方便的做法是创建和您当前用户名同名的数据库。
许多工具假设该数据库名为缺省数据库名，所以这样可以节省您的敲键。要创建这样的数据库，只需要键入 :<br />
<br />
test@localhost~$ createdb<br />
<br />
<br />
4.2 删除数据库<br />
<br />
如果您再也不想使用您的数据库了，那么您可以删除它。 比如，如果您是数据库 mydb 的所有人（创建人）， 那么您就可以用下面的命令删除它：<br />
test@localhost~$ dropdb mydb<br />
<br />
注:（对于这条命令而言，数据库名不是缺省的用户名。这样您就必须声明它。） 这个动作物理上将所有与该数据库相关的文件都删除并且不可取消， 因此做这件事之前一定要想清楚;<br />
<br />
<br />
5.访问数据库<br />
<br />
一旦您创建了数据库，您就可以访问它，您可以运行PostgreSQL交互的终端程序，叫psql，它允许您交互地输入，编辑，和执行 SQL 命令。（图形化登录请参见6. Postgresql图形化管理工具pgAdmin3）<br />
<br />
<br />
5.1 激活数据库<br />
<br />
您需要启动psql，试验刚才的例子。您可以用下面的命令为 mydb 数据库激活它：<br />
<br />
test@localhost~$ psql mydb<br />
<br />
如果您省略了数据库名字，那么它缺省就是您的用户账号名字。<br />
<br />
Welcome to psql 8.2.4, the PostgreSQL interactive terminal.<br />
Type: \copyright for distribution terms<br />
&nbsp; &nbsp;&nbsp; &nbsp; \h for help with SQL commands<br />
&nbsp; &nbsp;&nbsp; &nbsp; \? for help with psql commands<br />
&nbsp; &nbsp;&nbsp; &nbsp; \g or terminate with semicolon to execute query<br />
&nbsp; &nbsp;&nbsp; &nbsp; \q to quit<br />
mydb=#<br />
<br />
注：最后一行 mydb=#，这个提示符意味着您是数据库超级用户。<br />
<br />
<br />
5.2 帮助和退出数据库<br />
<br />
psql 程序有一些不属于 SQL 命令的内部命令。 它们以反斜杠开头，""。 有些这种命令在欢迎信息中列出。比如，您可以用下面的命令获取各种PostgreSQL SQL 命令的帮助语法：<br />
mydb=&gt; \h<br />
<br />
要退出 psql，键入<br />
mydb=&gt; \q<br />
<br />
然后 psql 就会退出并且给您返回到命令行 shell; （要获取更多有关内部命令的信息，您可以在 psql 提示符上键入 \?。）</span><br />
<span class="pg" id="xydwtext">6. Postgresql图形化管理工具pgAdmin3 ;<br />
<br />
版本：Version1.4.3<br />
<br />
<br />
6.1 安装;<br />
<br />
<br />
6.1.1 Ubuntu安装 ;<br />
<br />
有两种方法：<br />
<br />
1.在新立得软件包管理器中搜索pgadmin3，找到pgadmin3--应用<br />
<br />
2.终端下输入命令：<br />
test@localhost:~$ sudo apt-get install pgadmin3<br />
<br />
<br />
6.1.2 其它系统的安装;<br />
<br />
您可以参考其它系统正常的软件的安装方法，起本类似，这里就不多做介绍了;<br />
<br />
<br />
6.2 pgAdmin3的简单使用;<br />
<br />
图形化管理系统相对比较直观，您可以在命令行下操作，然后在pgAdmin3下查看效果;<br />
<br />
<br />
6.2.1 pgAdmin3的启动<br />
<br />
您可以在应用程序---系统工具中找到pgAdmin3的启动项;<br />
也可以在命令行下输入：<br />
</span><span class="pg" id="xydwtext">test@localhost</span><span class="pg" id="xydwtext">:~$ /usr/bin/pgadmin3 start<br />
<br />
<br />
6.2.2 连接已创建的数据库mydb ;<br />
<br />
点击档案-----新增服务器，然后在跳出的窗口下输入：<br />
地址：localhost<br />
描述：服务器名称（随意填写）<br />
维护数据库：postgres<br />
用户名：自己创建一个（详情参见创建用户）<br />
密码：和用户名对应（创建用户时自己创建）<br />
<br />
点击确定后大家便可以查看postsql已有的数据库了;<br />
注：pgAdmin3的数据库和终端下创建的数据库是完全同步的（可以用刷新查看效果），
pgAdmin3是比较方便的图形化管理工具，它可以创建图表，管理数据库等，有关pgAdmin3的详细介绍我们在以后讨论，本文主要介绍命令行下的操
作。图形化管理工具能做到的命令行都可以做到，您可以在命令行下创建表，在pgAdmin3上查看是否同步：<br />
<br />
7. 创建和删除表;<br />
<br />
<br />
7.1 创建新表;<br />
<br />
创建完数据库之后，您就可以创建新表了，可以通过声明表的名字和所有字段的名字及其类型来创建表，例如：<br />
mydb#CREATE TABLE weather (<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; city varchar(80),<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; temp_lo int, -- 最低气温<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; temp_hi int, -- 最高气温<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; prcp real, -- 降水量<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; date date<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;);<br />
<br />
注：您可以在 psql 里连换行符一起键入这些东西。 psql 可以识别该命令直到分号才结束,不要忘记&#8220;;&#8221;<br />
您可以在 SQL 命令中自由使用空白（也就是空格，tab，和换行符）。 这就意味着您可以用和上面不同的对齐方式键入命令。 两个划线("--")
引入注释。 任何跟在它后面的东西直到该行的结尾都被忽略。 SQL
是对关键字和标识符大小写不敏感的语言，只有在标识符用双引号包围时才能保留它们的大小写属性。<br />
<br />
<br />
7.2 数据类型;<br />
<br />
上面例子中的varchar(80) 声明一个可以存储最长 80 个字符的任意字符串的数据类型。 int 是普通的整数类型。 real 是一种用于存储单精度浮点数的类型。 date 类型应该可以自解释。<br />
PostgresSQL 支持标准的 SQL 类型 int，smallint， real，double precision， char(N)，
varchar(N)，date， time，timestamp 和 interval，还支持其他的通用类型和丰富的几何类型。
PostgreSQL 可以客户化为定制任意的用户定义的数据类型，您可以参考PostgreSQL的中文文档来查询;<br />
<br />
<br />
7.3 删除表;<br />
<br />
如果您不再需要某个表，或者您想创建一个不同的表，那么您可以用下面的命令删除它：<br />
mydb#DROP TABLE tablename<br />
<br />
<br />
8. 向表中添加行;<br />
<br />
<br />
8.1 INSERT;<br />
<br />
INSERT 用于向表中添加行,您可以输入（在数据库中操作）：<br />
mydb#INSERT INTO weather VALUES ('San Francisco', 46, 50, 0.25, '1994-11-27');<br />
<br />
注：所有数据类型都使用了相当明了的输入格式。 那些不是简单数字值的常量必需用单引号(')包围， 就象在例子里一样。<br />
<br />
<br />
8.2 point类型输入;<br />
<br />
point 类型要求一个座标对作为输入，如下：<br />
mydb#INSERT INTO cities VALUES ('San Francisco', '(-194.0, 53.0)');<br />
<br />
<br />
8.3 COPY;<br />
<br />
您还可以使用 COPY 从文本文件中装载大量数据。 这么干通常更快，因为 COPY 命令就是为这类应用优化的， 只是比 INSERT 少一些灵活性．比如：<br />
mydb#COPY weather FROM '/home/user/weather.txt';<br />
<br />
注：weather.txt是您提前写好的符合格式标准的表格内容文档;<br />
<br />
<br />
9. 查询一个表;<br />
<br />
<br />
9.1 SELECT;<br />
<br />
要从一个表中检索数据就是查询这个表。 SQL 的 SELECT 就是做这个用途的。 该语句分为选择列表（列出要返回的字段部分），表列表（列出从中检索数据的表的部分）， 以及可选的条件（声明任意限制的部分）。比如，要检索表 weather 的所有行，键入：<br />
SELECT * FROM weather;<br />
&lt;code&gt;<br />
输出结果：<br />
&lt;code&gt;<br />
&nbsp; &nbsp;&nbsp;&nbsp;city | temp_lo | temp_hi | prcp | date<br />
---------------+---------+---------+------+------------<br />
San Francisco | 46 | 50 | 0.25 | 1994-11-27<br />
San Francisco | 43 | 57 | 0 | 1994-11-29<br />
Hayward | 37 | 54 | | 1994-11-29<br />
(3 rows)<br />
<br />
您可以在选择列表中写任意表达式，而不仅仅是字段列表。比如，您可以：<br />
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;<br />
<br />
这样应该得出：<br />
&nbsp; &nbsp;&nbsp;&nbsp;city | temp_avg | date<br />
---------------+----------+------------<br />
San Francisco | 48 | 1994-11-27<br />
San Francisco | 50 | 1994-11-29<br />
Hayward | 45 | 1994-11-29<br />
(3 rows)<br />
<br />
请注意这里的 AS 子句是如何给输出字段重新命名的。（AS 子句是可选的。）<br />
<br />
<br />
9.2 WHERE;<br />
<br />
一个查询可以使用 WHERE 子句"修饰"，声明需要哪些行。 WHERE 子句包含一个布尔（真值）表达式，只有那些布尔表达式为真的行才会被返回。 允许您在条件中使用常用的布尔操作符（AND，OR， 和 NOT）。 比如，下面的查询检索旧金山的下雨天的天气：<br />
mydb#SELECT * FROM weather<br />
&nbsp; &nbsp; WHERE city = 'San Francisco' AND prcp &gt; 0.0;<br />
<br />
结果：<br />
&nbsp; &nbsp;&nbsp;&nbsp;city | temp_lo | temp_hi | prcp | date<br />
---------------+---------+---------+------+------------<br />
San Francisco | 46 | 50 | 0.25 | 1994-11-27<br />
(1 row)<br />
<br />
<br />
9.3 排序;<br />
<br />
您可以要求返回的查询是排好序的：<br />
mydb#SELECT * FROM weather<br />
&nbsp; &nbsp; ORDER BY city;<br />
<br />
得出结果：<br />
&nbsp; &nbsp;&nbsp;&nbsp;city | temp_lo | temp_hi | prcp | date<br />
---------------+---------+---------+------+------------<br />
Hayward | 37 | 54 | | 1994-11-29<br />
San Francisco | 43 | 57 | 0 | 1994-11-29<br />
San Francisco | 46 | 50 | 0.25 | 1994-11-27<br />
<br />
在这个例子里，排序的顺序并非绝对清晰的，因此您可能看到 San Francisco 行随机的排序。 但是如果您使用下面的语句，那么就总是会得到上面的结果<br />
SELECT * FROM weather<br />
&nbsp; &nbsp; ORDER BY city, temp_lo;<br />
<br />
您可以要求查询的结果按照某种顺序排序， 并且消除重复的行输出：<br />
mydb#SELECT DISTINCT city<br />
&nbsp; &nbsp; FROM weather;<br />
<br />
得出结果：<br />
&nbsp; &nbsp;&nbsp;&nbsp;city<br />
---------------<br />
Hayward<br />
San Francisco<br />
(2 rows)<br />
<br />
再次声明，结果行的顺序可能是随机的。<br />
<br />
<br />
10. 视图;<br />
<br />
假设您的应用对天气记录和城市位置的组合列表特别感兴趣， 而您又不想每次键入这些查询。那么您可以在这个查询上创建一个视图， 它给这个查询一个名字，您可以像普通表那样引用它。<br />
<br />
进入数据库后输入：<br />
mydb#CREATE VIEW myview AS<br />
&nbsp; &nbsp; SELECT city, temp_lo, temp_hi, prcp, date, location<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;FROM weather, cities<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;WHERE city = name;<br />
<br />
建立视图;<br />
<br />
然后选择建好的视图：<br />
SELECT * FROM myview;<br />
<br />
结果如下：<br />
&nbsp; &nbsp;&nbsp;&nbsp;city | temp_lo | temp_hi | prcp | date | location<br />
---------------+---------+---------+------+------------+-----------<br />
San Francisco | 46 | 50 | 0.25 | 1994-11-27 | (-194,53)<br />
San Francisco | 43 | 57 | 0 | 1994-11-29 | (-194,53)<br />
(2 rows)<br />
<br />
<br />
11. 更新行;<br />
<br />
您可以用 UPDATE 命令更新现有的行。 假设您发现所有 11 月 28 日的温度计数都低了两度，那么您就可以用下面的方式更新数据：<br />
mydb#UPDATE weather<br />
&nbsp; &nbsp; SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2<br />
&nbsp; &nbsp; WHERE date &gt; '1994-11-28';<br />
<br />
看看数据的新状态：<br />
SELECT * FROM weather;<br />
<br />
结果为：<br />
&nbsp; &nbsp;&nbsp;&nbsp;city | temp_lo | temp_hi | prcp | date<br />
---------------+---------+---------+------+------------<br />
San Francisco | 46 | 50 | 0.25 | 1994-11-27<br />
San Francisco | 41 | 55 | 0 | 1994-11-29<br />
Hayward | 35 | 52 | | 1994-11-29<br />
(3 rows)<br />
<br />
<br />
12. 删除行;<br />
<br />
数据行可以用 DELETE 命令从表中删除。假设您对Hayward的天气不再感兴趣，那么您可以用下面的方法把那些行从表中删除：<br />
mydb#DELETE FROM weather WHERE city = 'Hayward';<br />
<br />
我们用下面形式的语句的时候一定要小心<br />
DELETE FROM tablename;<br />
<br />
如果没有条件，DELETE 将从指定表中删除所有行，把它清空。做这些之前系统不会请求您确认！</span><br />
<br />
部分参考自：http://www.chinalinuxpub.com/read.php?wid=1552<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/212477.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-07-04 09:12 <a href="http://www.blogjava.net/fingki/archive/2008/07/04/212477.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 8.04下安装VMware 6.0.3出错及解决</title><link>http://www.blogjava.net/fingki/archive/2008/05/13/200250.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 13 May 2008 09:21:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/05/13/200250.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/200250.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/05/13/200250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/200250.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/200250.html</trackback:ping><description><![CDATA[今天升级系统到ubuntu8，重装vmware时，发现一些问题，浪费我不少时间，记录下来，希望大家可以省些时间。<br />
1、下载vmware:http://www.vmware.com/download/eula.doVMware 6.0.3 build-80004<br />
2、解压<br />
3、执行安装<br />
&nbsp;&nbsp; 在其解压目录中执行：sudo ./vmware-install.pl<br />
&nbsp;&nbsp; 一路回车，最后报错：<br />
在包含自 include/asm/bitops.h：2 的文件中，<br />
&nbsp;&nbsp;&nbsp; 从 /tmp/vmware-config1/vmmon-only/./include/vcpuset.h：74，<br />
&nbsp;&nbsp;&nbsp; 从 /tmp/vmware-config1/vmmon-only/./include/modulecall.h：23，<br />
&nbsp;&nbsp;&nbsp; 从 /tmp/vmware-config1/vmmon-only/common/vmx86.h：18，<br />
&nbsp;&nbsp;&nbsp; 从 /tmp/vmware-config1/vmmon-only/common/hostif.h：18，<br />
&nbsp;&nbsp;&nbsp; 从 /tmp/vmware-config1/vmmon-only/common/cpuid.c：14:<br />
&nbsp;&nbsp;&nbsp; include/asm/bitops_32.h:9:2: 错误： #error only<br />
&nbsp;&nbsp;&nbsp; can be included directly<br />
&nbsp;&nbsp;&nbsp; make[2]: *** [/tmp/vmware-config1/vmmon-only/common/cpuid.o] 错误 1<br />
&nbsp;&nbsp;&nbsp; make[1]: *** [_module_/tmp/vmware-config1/vmmon-only] 错误 2<br />
&nbsp;&nbsp;&nbsp; make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic&#8217;<br />
&nbsp;&nbsp;&nbsp; make: *** [vmmon.ko] 错误 2<br />
&nbsp;&nbsp;&nbsp; make: Leaving directory `/tmp/vmware-config1/vmmon-only&#8217;<br />
&nbsp;&nbsp;&nbsp; Unable to build the vmmon module.<br />
<br />
&nbsp;&nbsp;&nbsp; For more information on how to troubleshoot module-related problems, please<br />
&nbsp;&nbsp;&nbsp; visit our Web site at &#8220;http://www.vmware.com/download/modules/modules.html&#8221; and<br />
&nbsp;&nbsp;&nbsp; &#8220;http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html&#8221;.<br />
&nbsp;&nbsp;&nbsp; Execution aborted.<br />
4、网上搜了一下，找到解决办法如下：<br />
&nbsp; 4.1<br />
&nbsp;&nbsp;&nbsp; cd /usr/lib/vmware/modules/source<br />
&nbsp;&nbsp;&nbsp; sudo cp vmmon.tar vmmon.tar.backup<br />
&nbsp;&nbsp;&nbsp; sudo tar xvf vmmon.tar<br />
&nbsp;&nbsp;&nbsp; sudo gedit vmmon-only/include/vcpuset.h<br />
&nbsp; 4.2<br />
&nbsp;&nbsp;&nbsp; 将# #include &#8220;asm/bitops.h&#8221; 改为 #include &#8220;linux/bitops.h&#8221;<br />
&nbsp; 4.3<br />
&nbsp;&nbsp;&nbsp; sudo tar cvf vmmon.tar vmmon-only<br />
&nbsp;&nbsp;&nbsp; sudo rm -rf vmmon-only<br />
5、接下来可以正常安装了。<br />
你可能还会遇到这样的出错信息：<br />
Version mismatch with vmmon module: expecting 167.0, got 161.0.Version mismatch with vmmon module<br />
这可能是因为你运行了vmware-any-any-update-115，你需要运行vmware-any-any-update-116（可以在这下载：http://vmkernelnewbies.googlegroups.com/web/vmware-any-any-update-116.tgz）<br />
（网上有说可以用vmware-any-any-update来解决第一个报错，但不能用115，而应用vmware-any-any-update116）<br />
****************************************<br />
后续问题：<br />
当ubuntu更新一些软件包后，有时vmware就无法启动。这时按照 step 4 查看相关文件，无异常，（#include "linux/bitops.h"）.<br />
此时只需再执行一下vmware-any-any-update116就可以了。（至少我是这样解决的，呵呵）<br />
<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/200250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-05-13 17:21 <a href="http://www.blogjava.net/fingki/archive/2008/05/13/200250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>postgres安装后无法登录问题</title><link>http://www.blogjava.net/fingki/archive/2008/03/26/188689.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Wed, 26 Mar 2008 03:49:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/03/26/188689.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/188689.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/03/26/188689.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/188689.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/188689.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 在linux下（我用的是ubuntu7），用新立得软件包安装好postgres数据库和pgAdmin后，在pgAdmin中用默认的postgres用户无法登录。<br />
&nbsp;&nbsp;&nbsp; 上网google了一下，没找到解决方法，后一朋友告诉我要新建一个用户才行，具体做法如下：<br />
&nbsp;&nbsp;&nbsp; 1、在命令行下修改用户postgres的密码：sudo passwd postgres <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 然后输入你要设置的密码<br />
&nbsp;&nbsp;&nbsp; 2、在命令行下切换到postgres用户：su postgres<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  然后输入刚才设置的密码，登录。<br />
&nbsp;&nbsp;&nbsp; 3、在postgres用户下创建新的超级用户：createuser －P testuser<br />
&nbsp;&nbsp;&nbsp; 具体过程如下：<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;  postgres@liqingfeng:/$ createuser -P testuser <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Enter password for new role: <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 再输入一遍: <br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Shall the new role be a superuser? (y/n) y<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; CREATE ROLE<br />
&nbsp;&nbsp;&nbsp; 4、这样就可以在pgAdmin在用新建的用户testuser来登录了。<br />
&nbsp;&nbsp;&nbsp; 之后可以在pgAdmin中做你想做的一切。<br />
&nbsp;&nbsp;&nbsp; （关于createuser这个命令具体其他参数，可以在终端输入：man createuser 来查看细节）<br />
<br />
<br />
<img src ="http://www.blogjava.net/fingki/aggbug/188689.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-03-26 11:49 <a href="http://www.blogjava.net/fingki/archive/2008/03/26/188689.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nohup实现守护进程</title><link>http://www.blogjava.net/fingki/archive/2008/03/18/187018.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Tue, 18 Mar 2008 07:44:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/03/18/187018.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/187018.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/03/18/187018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/187018.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/187018.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 在UNIX/LINUX中，普通进程用&amp;符号放到后台运行，如果启动该程序的控制台logout，则该进程随即终止。<br />
&nbsp;&nbsp;&nbsp; 要实现守护进程，一种方法是按守护进程的规则去编程；另一种方法是仍然用普通方法编程，然后用nohup命令启动程序：<br />
&nbsp;&nbsp;&nbsp; nohup＜程序名＞&amp;<br />
&nbsp;&nbsp;&nbsp; 则控制台logout后，进程仍然继续运行，起到守护进程的作用（虽然它不是严格意义上的守护进程）。<br />
&nbsp;&nbsp;&nbsp; 使用nohup命令后，原程序的的标准输出被自动改向到当前目录下的nohup.out文件，起到了log的作用，实现了完整的守护进程功能。<br />
<br />
&nbsp;&nbsp;&nbsp; For example:<br />
&nbsp;&nbsp;&nbsp; 用telnet远程控制服务器，远程启动Tomcat服务，启动后关闭telnet，Tomcat服务也跟着停止，这是因为使用telnet启动的进程会随着telnet进程的关闭而关闭。所以我们可以使用一些UNIX/LINUX下的命令来做到不关闭。
<p>　　使用如下命令： </p>
<p>　　nohup startup.sh&amp; </p>
<p>　　如果想要监控标准输出可以使用： </p>
<p>　　tail -f nohup.out </p>
<br />
&nbsp;&nbsp;&nbsp; <br />
<img src ="http://www.blogjava.net/fingki/aggbug/187018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-03-18 15:44 <a href="http://www.blogjava.net/fingki/archive/2008/03/18/187018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下的环境变量设置</title><link>http://www.blogjava.net/fingki/archive/2008/03/17/fingki.html</link><dc:creator>Fingki.li</dc:creator><author>Fingki.li</author><pubDate>Mon, 17 Mar 2008 09:13:00 GMT</pubDate><guid>http://www.blogjava.net/fingki/archive/2008/03/17/fingki.html</guid><wfw:comment>http://www.blogjava.net/fingki/comments/186802.html</wfw:comment><comments>http://www.blogjava.net/fingki/archive/2008/03/17/fingki.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fingki/comments/commentRss/186802.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fingki/services/trackbacks/186802.html</trackback:ping><description><![CDATA[下面以增加PATH为例<br />
第一种方法：在命令行执行 sudo gedit /etc/profile<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在 /etc/profile中增加<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PATH="$PATH:/home/fingki/bin"<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; export PATH<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;  保存文件后，在命令行执行：. /etc/profile,设置生效。<br />
第二种方法：在命令行执行sudo gedit /etc/environment<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在 /etc/environment中增加<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; PATH="$PATH:/home/fingki/bin"<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; 保存文件后，在命令行执行：. environment,设置生效。<br />
注意：变量中以冒号（:）分隔，如需用到其他变量格式为（$变量名）如：$PATH.<br />
<p style="text-indent: 2em;" align="left"><br />
</p>
<p style="text-indent: 2em;"><br />
</p>
<img src ="http://www.blogjava.net/fingki/aggbug/186802.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fingki/" target="_blank">Fingki.li</a> 2008-03-17 17:13 <a href="http://www.blogjava.net/fingki/archive/2008/03/17/fingki.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>