﻿<?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-于吉吉的技术博客-随笔分类-linux</title><link>http://www.blogjava.net/dongbule/category/46251.html</link><description>建造高性能门户网</description><language>zh-cn</language><lastBuildDate>Wed, 06 Apr 2011 09:25:52 GMT</lastBuildDate><pubDate>Wed, 06 Apr 2011 09:25:52 GMT</pubDate><ttl>60</ttl><item><title>在debian安装nfs-server出现的bug处理</title><link>http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 06 Apr 2011 09:13:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/347718.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/347718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/347718.html</trackback:ping><description><![CDATA[<br />
<a id="viewpost1_TitleUrl" href="../archive/2011/04/06/347716.html">nfs安装与配置（debian）</a><br />
好吧，这个错误浪费了我今天几个小时的时间，必须把它记录下来。<br />
问题是这样的，在启动更新了portmap，exportfs，一些没问题后，在做/etc/init.d/nfs-kernel-server restart 出现<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">/etc/init.d/nfs-kernel-server&nbsp;start<br />
Exporting&nbsp;directories&nbsp;for&nbsp;NFS&nbsp;kernel&nbsp;daemon<img src="http://www.blogjava.net/Images/dot.gif"  alt="" />exportfs:&nbsp;/etc/exports&nbsp;</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">1</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #000000;">:<br />
Neither&nbsp;'subtree_check'&nbsp;or&nbsp;'no_subtree_check'&nbsp;specified&nbsp;for&nbsp;export<br />
</span><span style="color: #000000;">"</span><span style="color: #000000;">foobar</span><span style="color: #000000;">"</span><span style="color: #000000;">.<br />
&nbsp;&nbsp;Assuming&nbsp;default&nbsp;behaviour&nbsp;('no_subtree_check').<br />
&nbsp;&nbsp;NOTE:&nbsp;this&nbsp;default&nbsp;has&nbsp;changed&nbsp;since&nbsp;nfs-utils&nbsp;version&nbsp;</span><span style="color: #000000;">1.0</span><span style="color: #000000;">.x<br />
<br />
.<br />
Starting&nbsp;NFS&nbsp;kernel&nbsp;daemon:&nbsp;nfsd<br />
Not&nbsp;starting:&nbsp;portmap&nbsp;daemon&nbsp;is&nbsp;not&nbsp;running&nbsp;(warning).</span></div>
<br />
<br />
警告提示portmap is not running<br />
<br />
好吧，检查一下portmap<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">/home/mnt/index#&nbsp;ps&nbsp;aux&nbsp;|&nbsp;grep&nbsp;portmap<br />
daemon&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">31478</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">0.0</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">0.0</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">2052</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">624</span><span style="color: #000000;">&nbsp;?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ss&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">13</span><span style="color: #000000;">:</span><span style="color: #000000;">59</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">:</span><span style="color: #000000;">00</span><span style="color: #000000;">&nbsp;/sbin/portmap</span></div>
<br />
<br />
portmap的状态已经是running，在googling后，发现网上有人说是<br />
This is the problem, portmap is not actually running, causing rpc.statd<br />
<br />
看来问题还是出现rpc上，最主要的进程rpc.mountd无法启动<br />
<br />
好吧，接下来打开/etc/init.d/nfs-kernel-server这个启动脚本进行查看<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;See&nbsp;if&nbsp;portmap&nbsp;or&nbsp;rpcbind&nbsp;are&nbsp;running<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(cat&nbsp;&lt;/dev/null&nbsp;&gt;/dev/tcp/localhost/</span><span style="color: #000000;">111</span><span style="color: #000000;">)&nbsp;</span><span style="color: #000000;">2</span><span style="color: #000000;">&gt;/dev/null<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RET</span><span style="color: #000000;">=</span><span style="color: #000000;">$?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;</span><span style="color: #800000; font-weight: bold;">[</span><span style="color: #800000;">&nbsp;$RET&nbsp;!=&nbsp;0&nbsp;</span><span style="color: #800000; font-weight: bold;">]</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;then</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;log_warning_msg&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Not&nbsp;starting:&nbsp;portmap&nbsp;daemon&nbsp;is&nbsp;not&nbsp;running</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi</span></div>
<br />
<br />
看来问题就出来这个，什么叫&#8220;/dev/tcp/localhost/111&#8221;，还是googling，网上有人说<br />
<br />
I find that this is a bashism, but the init-script is marked as a bash script at the<br />
top:<br />
!/bin/bash<br />
再man Bash，发现<br />
Bash, as packaged for Debian, does not support using the /dev/tcp and /dev/udp files<br />
<br />
应该很清楚了，如果按照这里的分析，那么我们需要对上面的这个启动脚本进行一下修改就可以完成我们的目的，最直接的就是把exit 0注释掉，另外说一点，这个脚本也有些写得不大合理，既然是log_warning_msg，一个warning，就不应该直接的exit 0<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/347718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-04-06 17:13 <a href="http://www.blogjava.net/dongbule/archive/2011/04/06/347718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nfs安装与配置（debian）</title><link>http://www.blogjava.net/dongbule/archive/2011/04/06/347716.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 06 Apr 2011 09:09:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/04/06/347716.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/347716.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/04/06/347716.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/347716.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/347716.html</trackback:ping><description><![CDATA[<br />
<br />
<strong>NFS服务器端</strong><br />
apt-get install nfs-kernel-server nfs-common portmap<br />
<br />
vi /etc/hosts.allow<br />
portmap： 192.168.0.<br />
lockd：&nbsp;&nbsp; 192.168.0.<br />
rquotad： 192.168.0.<br />
mountd：&nbsp; 192.168.0.<br />
statd：&nbsp;&nbsp; 192.168.0.<br />
<br />
vi /etc/hosts.deny<br />
portmap:ALL<br />
lockd:ALL<br />
mountd:ALL<br />
rquotad:ALL<br />
statd:ALL<br />
<br />
vi /etc/default/portmap<br />
将 -i 127.0.0.1 注释掉<br />
<br />
/etc/init.d/portmap restart&nbsp;&nbsp; 重启portmap daemon<br />
<br />
vi /etc/exports<br />
/home/zp/share&nbsp; 220.181.8.*(rw,sync,no_root_squash)&nbsp;&nbsp; 若更改了/etc/exports， 运行 $sudo exportfs -r 更新<br />
<br />
/etc/init.d/nfs-kernel-server restart &nbsp;<br />
（可以到/var/log/messages里面查看是否正确激活）<br />
<br />
showmount -e ip&nbsp; 查看NFS server的export list. <br />
<br />
<strong>NFS客户端</strong><br />
apt-get install nfs-common portmap nfs-client<br />
<br />
mount 192.168.86.111:/home/mnt/share /home/mnt 挂起<br />
如果出现<br />
mount.nfs: rpc.statd is not running but is required for remote locking.<br />
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.<br />
mount.nfs: an incorrect mount option was specified<br />
<br />
那么<br />
mount 192.168.86.111:/home/mnt/share /home/mnt -o nolock&nbsp; 挂起<br />
<br />
umount /home/mnt 撤销
<img src ="http://www.blogjava.net/dongbule/aggbug/347716.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-04-06 17:09 <a href="http://www.blogjava.net/dongbule/archive/2011/04/06/347716.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令系列《进程管理》</title><link>http://www.blogjava.net/dongbule/archive/2011/01/21/343344.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Fri, 21 Jan 2011 09:56:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/21/343344.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/343344.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/21/343344.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/343344.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/343344.html</trackback:ping><description><![CDATA[对于进程管理工具平时大多用的是ps，kill，top，sleep等等这些命令，平时linux的一些指令我都会做一些记录，本着好记性不如烂博客的精神，也把进程管理的命令做一点系统性的记录，参考资料基本是鸟哥还有网上的一些文章。<br />
<br />
<strong>ps</strong><br />
ps命令主要是查看系统进程的状态，平时最常用的命令是ps aux，然后再使用管道导向到grep查找特定的进程，然后进此特定进程进行操作。<br />
要对进程进行操作必须先了解到当前进程的情况，ps命令体现了现实当前运行进程的快照，ps和top和相似，但ps提供了更多的信息，可以确定哪些进程正在运行，哪些进程被挂起，运行了多长时间，以及进行使用的资源和进程的优先级，这些信息对我们都有很重要的作用，当我们使用ps aux可以获得终端所有用户的有关进程信息。<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/linux/ps.png" alt="" width="668" border="0" height="444" /><br />
<br />
逐列记录：<br />
USER&nbsp;&nbsp; 表示启动进程的用户<br />
PID&nbsp;&nbsp;&nbsp; 表示进程标志号<br />
%CPU&nbsp;&nbsp; 表示该进程占用CPU的时间和进程总运行时间比例<br />
%MEM&nbsp;&nbsp; 表示该进程占用内存的时间和进程总运行时间比例<br />
VSZ&nbsp;&nbsp;&nbsp; 表示占用虚拟内存的大小<br />
RSS&nbsp;&nbsp;&nbsp; 表示占用物理内存的大小<br />
TTY&nbsp;&nbsp;&nbsp; 表示对应的终端号，其中&#8220;？&#8221;表示不占用终端<br />
STAT&nbsp;&nbsp; 表示进程的几种运行状态，D：不可中断uninterruptible sleep；R：运行runnable；S：睡眠sleeping ；T：停止traced or stopped；Z：僵死a defunct (&#8221;zombie&#8221;) process；W：没有足够的内存进行分配；&lt;：高优先序的进程；N：低优先序的进程；L：实时系统或I/O<br />
START&nbsp; 表示开始时间<br />
TIME&nbsp;&nbsp; 表示运行了多少时间<br />
COMMAND表示所执行的指令<br />
<br />
分享一些常用的ps指令<br />
查看chenyz用户名所运行的进程<br />
root@tech163:/home/chenyz# ps -U chenyz -u chenyz u<br />
<br />
查看nginx的进程<br />
root@tech163:/home/chenyz# ps aux | grep nginx<br />
<br />
查看使用内存最多的前10个进程<br />
root@tech163:/home/chenyz# ps auxf | sort -nr -k 4 | head -10<br />
<br />
查看使用CPU最多的前10个进程<br />
root@tech163:/home/chenyz# ps auxf | sort -nr -k 3 | head -10<br />
<br />
<strong>pstree</strong><br />
ps能够得到精确的数据，但是数据庞大，这对于掌握系统整体的概括来说不是很容易。pstree刚好可以弥补这个缺憾，进程启动的时候可能会产生自己的一个子进程，使用pstree就能够将当前的程序以树形结构呈现。<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/linux/pstree.png" alt="" border="0" /><br />
<br />
<br />
<strong>kill</strong><br />
kill的工作原理是：想linux系统的内核发送一个系统操作信号和某个程序的进程标识号，然后系统内核就可以对进程标识号指定的进程进行操作，当需要终端一个前台进程的时候，可以使用ctrl+C进行结束，但对于一个后台进程，一个组合键是无法进行中断的，这个时候就必须使用kill命令。<br />
当我们启动一个后端程序<br />
<br />
root@tech163:/home/chenyz# nohup ./hello.sh &amp;<br />
[1] 15100<br />
<br />
可以使用ps来查看该进程<br />
<br />
root@tech163:/home/chenyz# ps aux | grep hello<br />
root&nbsp;&nbsp;&nbsp;&nbsp; 15100&nbsp; 0.0&nbsp; 0.0&nbsp;&nbsp; 1840&nbsp;&nbsp; 540 pts/0&nbsp;&nbsp;&nbsp; S&nbsp;&nbsp;&nbsp; 14:57&nbsp;&nbsp; 0:00 /bin/sh ./hello.sh<br />
<br />
使用kill %1 或者 kill 15100 来终止该进程。<br />
如果一个程序已经彻底死掉，如果kill pid也没法终止，则需要加上信号强度，最好的办法是加上信号强度 -9 直接杀死父进程。<br />
跟kill相关的还有killall，killall通过程序名来直接杀死所有进程。<br />
<br />
<strong>top</strong><br />
与ps提供的快照不同的是，top提供了一个当前运行系统实时动态的视图，也就是正在运行的进程，在默认情况下，显示系统中CPU使用率最高的任务，并每5秒刷新一次。<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/linux/top.png" alt="" border="0" /><br />
<br />
第一行显示了当前时间，登录的用户数，平均负载<br />
第二行显示了所有进程数，运行（running），挂起（sleeping），停止（stopped），无用（zombie）的进程数<br />
第三行显示了CPU的使用情况，用户占得百分比，系统占得百分比，空闲的百分比<br />
第四行显示了物理内存的使用情况，包括可以使用内存，已使用内存，空闲内存，缓冲区内存<br />
第五行显示了交换区的使用情况，包括了总的交换区，使用的，空闲的，用于高速缓存的交换区<br />
第六行重启一段再解释<br />
<br />
PID&nbsp;&nbsp;&nbsp; 表示进程标识号<br />
USER&nbsp;&nbsp;&nbsp; 表示该进程的用户名<br />
PR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示进程的优先级<br />
NI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示进程的优先级别数值<br />
VIRT&nbsp;&nbsp;&nbsp; 表示进程占用的虚拟内存<br />
RES&nbsp;&nbsp;&nbsp; 表示进程占用的物理内存<br />
SHR&nbsp;&nbsp;&nbsp; 表示进程使用的共享内存值<br />
S&nbsp;&nbsp;&nbsp; 表示进程的状态，运行（running），挂起（sleeping），停止（stopped），无用（zombie）<br />
%CPU&nbsp;&nbsp;&nbsp; 表示占用CPU的使用率<br />
%MEM&nbsp;&nbsp;&nbsp; 表示占用物理内存的使用率<br />
TIME+&nbsp;&nbsp;&nbsp; 表示该进程占用CPU的总时间<br />
COMMAND 表示进程的命名名称<br />
<br />
top是功能非常强大的监控系统，但是它的缺点是消耗很多的系统资源，在系统负载过高的时候查看进程尽量避免使用top。<br />
<br />
<strong>jobs</strong><br />
如果你想知道有多少进程在后台运行中，那就用jobs的指令吧，如果想知道进程的pid那就是用job -l<br />
先使一个进程运行在后台<br />
root@tech163:/home/chenyz#./hello.sh &amp;<br />
[1] 17299<br />
root@tech163:/home/chenyz# jobs -l<br />
[1]+ 17299 Running&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./hello.sh &amp;<br />
因为当前只有一个后台任务在运行，所以后台任务的号码是[1],如果有第二个任务进入后端执行，那么[1]会跟着动态变化。<br />
<br />
<strong>fg</strong><br />
刚刚我们将./hello.sh &amp;进程放入后端执行，如果想要将后端的进程拿到前端来可以使用fg来处理<br />
<br />
root@tech163:/home/chenyz# jobs -l<br />
[1]+ 17299 Running&nbsp;&nbsp; <br />
root@tech163:/home/chenyz# fg %1<br />
./hello.sh<br />
<br />
<strong>bg</strong><br />
与fg相反的是bg，如果想看到后端程序的运行情况，可以使用fg命令把它调到前台，，bg可以使得多个进程放到后台中执行。<br />
启动一个进程，然后使用ctrl+z暂停，然后使用bg将该进程放入后台执行<br />
<br />
root@tech163:/home/chenyz#&nbsp; ./hello.sh <br />
^Z&nbsp;&nbsp; //{ctrl+z}暂停<br />
[1]+&nbsp; Stopped&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./hello.sh<br />
root@tech163:/home/chenyz# jobs;bg %1<br />
[1]+&nbsp; Stopped&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./hello.sh<br />
[1]+ ./hello.sh &amp;<br />
root@tech163:/home/chenyz# jobs<br />
[1]+&nbsp; Running&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./hello.sh &amp;<br />
<br />
跟进程管理相关的命令还有很多如nohup，sleep，nice，renice...后续再记录<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/343344.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-21 17:56 <a href="http://www.blogjava.net/dongbule/archive/2011/01/21/343344.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[收藏] 100个常见的linux守护进程</title><link>http://www.blogjava.net/dongbule/archive/2011/01/21/343312.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Fri, 21 Jan 2011 04:34:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/21/343312.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/343312.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/21/343312.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/343312.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/343312.html</trackback:ping><description><![CDATA[<img src="file:///C:/DOCUME%7E1/ADMINI%7E1/LOCALS%7E1/Temp/moz-screenshot.png" alt="" />1．alsasound：Alsa声卡驱动守护程序。Alsa声卡驱动程序本来是为了一种声卡Gravis UltraSound（GUS)而写的，该程序被证明很优秀，于是作者就开始为一般的声卡写驱动程序。Alsa和OSS/Free及OSS/Linux兼容，但是有自己的接口，甚至比OSS优秀。<br />
<br />
2．acpid：acpid（Advanced Configuration and Power Interface）是为替代传统的APM电源管理标准而推出的新型电源管理标准。通常笔记本电脑需要启动电源进行管理。<br />
<br />
3．atalk：AppleTalk网络守护进程。注意不要在后台运行该程序，该程序的数据结构必须在运行其他进程前先花一定时间初始化。<br />
<br />
4．amd：自动安装NFS守护进程。<br />
<br />
5．anacron：一个自动化运行任务守护进程。Red Hat Linux随带四个自动化任务的工具：cron、anacron、at和batc。当你的Linux服务器并不是全天运行时，这个anacron就可以帮你执行在"crontab"设定的时间内没有执行的工作。<br />
<br />
6．apmd：apmd（Advanced Power Management）是高级电源管理。传统的电源管理标准，对于笔记本电脑比较有用，可以了解系统的电池电量信息。并将相关信息通过syslogd写入日志。也可以用来在电源不足时关机。<br />
<br />
7．arptables_jf：为arptables网络的用户控制过滤的守护进程。<br />
<br />
8．arpwatch：记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库。<br />
<br />
9．atd：at和batch命令守护进程，用户用at命令调度的任务。batch用于在系统负荷比较低时运行批处理任务。<br />
<br />
10．autofs：自动安装管理进程automount，与NFS相关，依赖于NIS服务器。<br />
<br />
11．bootparamd：引导参数服务器，为LAN上的无盘工作站提供引导所需的相关信息。<br />
<br />
12．bluetooch：蓝牙服务器守护进程。<br />
<br />
13．crond：cron是UNIX下的一个传统程序，该程序周期性地运行用户调度的任务。比起传统的UNIX版本，Linux版本添加了不少属性，而且更安全，配置更简单。类似于计划任务。<br />
<br />
14．chargen：使用tcp协议的chargen server，chargen（Character Generator Protocol）是一种网络服务，主要功能是提供类似于远程打字的功能。<br />
<br />
15．chargen-udp：使用UDP协议的chargen server。<br />
<br />
16．cpuspeed：监测系统空闲百分比，降低或加快CPU时钟速度和电压，从而在系统空闲时将能源消耗降为最小，而在系统繁忙时最大化加快系统执行速度。<br />
<br />
17．dhcpd：动态主机控制协议（Dynamic Host Control Protocol）的服务守护进程。<br />
<br />
18．cups：cups(Common UNIX Printing System)是通用UNIX打印守护进程，为Linux提供第三代打印功能。<br />
<br />
19．cups－config－daemons：cups打印系统切换守护进程。<br />
<br />
20．cups-lpd：cups行打印守护进程。<br />
<br />
21．daytime：使用TCP协议的Daytime守护进程，该协议为客户机实现从远程服务器获取日期和时间的功能。预设端口：13。<br />
<br />
22．daytime-udp：使用UDP协议的Daytime守护进程。<br />
<br />
23．dc_server：使用SSL安全套接字的代理服务器守护进程。<br />
<br />
24．dc_client：使用SSL安全套接字的客户端守护进程。<br />
<br />
25．diskdump：服务器磁盘备份守护进程。<br />
<br />
26．echo：服务器回显客户数据服务守护进程。<br />
<br />
27．echo-udp：使用UDP协议的服务器回显客户数据服务守护进程。<br />
<br />
28．eklogin：接受rlogin会话鉴证和用kerberos5加密的一种服务的守护进程。<br />
<br />
29．gated：网关路由守护进程。它支持各种路由协议，包括RIP版本1和2、DCN HELLO协议、OSPF版本2，以及EGP版本2到4。<br />
<br />
30．gpm：gpm（General Purpose Mouse Daemon）守护进程为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标的复制、粘贴操作，以及弹出式菜单。<br />
<br />
31．gssftp：使用kerberos 5认证的FTP守护进程。<br />
<br />
32．httpd：Web服务器Apache守护进程，可用来提供HTML文件及CGI动态内容服务。<br />
<br />
33．inetd：因特网操作守护程序。监控网络对各种它管理的服务的需求，并在必要的时候启动相应的服务程序。在Redhat和Mandrake linux中被xinetd代替。Debian，Slackware，SuSE仍然使用。<br />
<br />
34．innd：Usenet新闻服务器守护进程。<br />
<br />
35．iiim：中文输入法服务器守护进程。<br />
<br />
36．iptables：iptables防火墙守护进程。<br />
<br />
37．irda：红外端口守护进程。<br />
<br />
38．isdn：isdn启动和中止服务守护进程。<br />
<br />
39．krb5－telnet：使用kerberos 5认证的Telnet守护进程。<br />
<br />
40．klogin：远程登录守护进程。<br />
<br />
41．keytable：该进程的功能是转载在/etc/sysconfig/keyboards里定义的键盘映射表，该表可以通过kbdconfig工具进行选择。你应该使该程序处于激活状态。<br />
<br />
42．irqbalance：对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU，就不需要加载这个守护程序。<br />
<br />
43．kshell：kshell守护进程。<br />
<br />
44．kudzu：硬件自动检测程序，会自动检测硬件是否发生变动，并相应进行硬件的添加、删除工作。当系统启动时，kudzu会对当前的硬件进行检测，并且和存储在/etc/sysconfig/hwconf中的硬件信息进行对照，如果某个硬件从系统中被添加或者删除时，那么kudzu就会察觉到，并且通知用户是否进行相关配置，然后修改etc/sysconfig/hwconf，使硬件资料与系统保持同步。如果/etc/sysconfig /hwconf这个文件不存在，那么kudzu将会从/etc/modprobe.conf，/etc/sysconfig/network- scripts/和etc/X11/XF86Config中探测已经存在的硬件。如果你不打算增加新硬件，那么就可以关闭这个启动服务，以加快系统启动时间。<br />
<br />
45．ldap：ldap（Lightweight Directory Access Protocol）目录访问协议服务器守护进程。<br />
<br />
46．lm_seroems：检测主板工作情况守护进程。<br />
<br />
47．lpd：lpd是老式打印守护程序，负责将lpr等程序提交给打印作业。<br />
<br />
48．mdmonitor：RAID相关设备的守护程序。<br />
<br />
49．messagebus：D-BUS是一个库，为两个或两个以上的应用程序提供一对一的通信。dbus-daemon-1是一个应用程序，它使用这个库来实现messagebus守护程序。多个应用程序通过连接messagebus守护程序可以实现与其他程序交换信息。<br />
<br />
50．microcode_ctl：可编码及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。<br />
<br />
51．mysqld：一个快速、高效、可靠的轻型SQL数据库引擎守护进程。<br />
<br />
52．named：DNS（BIND）服务器守护进程。<br />
<br />
53．netplugd：netplugd（network cable hotplug management daemon）守护程序，用于监控一个或多个网络接口的状态，当某些事件触发时运行一个外部脚本程序。<br />
<br />
54．netdump：远程网络备份服务器守护进程。<br />
<br />
55．netfs：Network Filesystem Mounter，该进程安装和卸载NFS、SAMBA和NCP网络文件系统。<br />
<br />
56．nfs：网络文件系统守护进程。<br />
<br />
57．nfslock：NFS是一个流行的通过TCP/IP网络共享文件的协议，此守护进程提供了NFS文件锁定功能。<br />
<br />
58．ntpd：Network Time Protocol Daemon（网络时间校正协议）。ntpd是用来使系统和一个精确的时间源保持时间同步的协议守护进程。<br />
<br />
59．network：激活/关闭启动时的各个网络接口守护进程。<br />
<br />
60．psacct：该守护进程包括几个工具用来监控进程活动的工具，包括ac，lastcomm，accton和sa。<br />
<br />
61．pcmcia：主要用于支持笔记本电脑接口守护进程。<br />
<br />
62．portmap：该守护进程用来支持RPC连接，RPC被用于NFS及NIS等服务。<br />
<br />
63．postgresql：postgreSQL关系数据库引擎。<br />
<br />
64．postfix：postfix是邮件传输代理的守护进程。<br />
<br />
65．proftpd：proftpd是UNIX下的一个配置灵活的FTP服务器的守护程序。<br />
<br />
66．pppoe：ADSL连接守护进程。<br />
<br />
67．random：保存和恢复系统的高质量随机数生成器，这些随机数是系统一些随机行为提供的。<br />
<br />
68．rawdevices：在使用集群文件系统时用于加载raw设备的守护进程。<br />
<br />
69．readahead、readahead_early：readahead和readahead_early是在Fedora core 2中最新推出的两个后台运行的守护程序。其作用是在启动系统期间，将启动系统所要用到的文件首先读取到内存中，然后在内存中执行，以加快系统的启动速度。<br />
<br />
70．rhnsd：Red Hat网络服务守护进程。通知官方的安全信息及为系统打补丁。<br />
<br />
71．routed：该守护程序支持RIP协议的自动IP路由表维护。RIP主要使用在小型网络上，大一点的网络就需要复杂一点的协议。<br />
<br />
72．rsync：remote sync远程数据备份守护进程。<br />
<br />
73．rsh：远程主机上启动一个shell，并执行用户命令。<br />
<br />
74．rwhod：允许远程用户获得运行rwho守护程序的机器上所有已登录用户的列表。<br />
<br />
75．rstatd：一个为LAN上的其他机器收集和提供系统信息的守候进程。<br />
<br />
76．ruserd：远程用户定位服务，这是一个基于RPC的服务，它提供关于当前记录到LAN上一个机器日志中的用户信息<br />
<br />
77．rwalld：激活rpc.rwall服务进程，这是一项基于RPC的服务，允许用户给每个注册到LAN机器上的其他终端写消息。<br />
<br />
78．rwhod：激活rwhod服务进程，它支持LAN的rwho和ruptime服务。<br />
<br />
79．saslauthd：使用SASL的认证守护进程。<br />
<br />
80．sendmail：邮件服务器sendmail守护进程。<br />
<br />
81．smb：Samba文件共享/打印服务守护进程。<br />
<br />
82．snmpd：本地简单网络管理守护进程。<br />
<br />
83．squid：代理服务器squid守护进程。<br />
<br />
84．sshd：OpenSSH服务器守护进程。Secure Shell Protocol可以实现安全地远程管理主机。<br />
<br />
85．smartd：Self Monitor Analysis and Reporting Technology System，监控你的硬盘是否出现故障。<br />
<br />
86．syslog：一个让系统引导时启动syslog和klogd系统日志守候进程的脚本。<br />
<br />
87．time：该守护进程从远程主机获取时间和日期，采用TCP协议。<br />
<br />
88．time-udp：该守护进程从远程主机获取时间和日期，采用UDP协议。<br />
<br />
89．tux：在Linux内核中运行Apache服务器的守护进程。<br />
<br />
90．vsftpd：vsftpd服务器的守护进程。<br />
<br />
91．vncserver：VNC（Virtual Network Computing，虚拟网络计算），它提供了一种在本地系统上显示远程计算机整个"桌面"的轻量型协议。<br />
<br />
92．vtun：VPN守护进程。<br />
<br />
93．xfs：X Window字型服务器守护进程，为本地和远程X服务器提供字型集。<br />
<br />
94．xinetd：支持多种网络服务的核心守护进程。<br />
<br />
95．ypbind：为NIS（网络信息系统）客户机激活ypbind服务进程。<br />
<br />
96．yppasswdd：NIS密码服务器守护进程。<br />
<br />
97．ypserv：NIS主服务器守护进程。<br />
<br />
98．yum：RPM操作系统自动升级和软件包管理守护进程。<br />
<br />
99．ypxfrd：更快地传输NIS地图。<br />
<br />
100．zebra：路由管理守护进程。
<img src ="http://www.blogjava.net/dongbule/aggbug/343312.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-21 12:34 <a href="http://www.blogjava.net/dongbule/archive/2011/01/21/343312.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让linux定时执行秒级任务</title><link>http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 19 Jan 2011 09:47:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/343227.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/343227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/343227.html</trackback:ping><description><![CDATA[<br />
问题是这样的，有个脚本需要10秒钟执行一次，脚本具体功能就不细说，定时任务自然选用crontab，但是crontab最小的执行时间为分钟，最后决定选用死循环进行实现。<br />
<br />
脚本 <br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">vi&nbsp;hello</span><span style="color: #000000;">.</span><span style="color: #000000;">sh<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">!/bin/sh</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">:</span><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">do</span><span style="color: #000000;"><br />
echo&nbsp;`date`&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">home</span><span style="color: #000000;">/</span><span style="color: #000000;">chenyz</span><span style="color: #000000;">/</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">//</span><span style="color: #000000;">这里是任务的实现<br />
</span><span style="color: #0000ff;">sleep</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">10</span><span style="color: #000000;"><br />
done</span></div>
<br />
这里的程序运行时间间隔是10s，小心咯，如果没有加sleep 10，你的机器很快就会耗尽资源，负载会狂飙。<br />
<br />
接着需要把脚本用后台守护进程来运行，避免用户退出而导致脚本失效<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">nohup&nbsp;sh&nbsp;hello</span><span style="color: #000000;">.</span><span style="color: #000000;">sh&nbsp;</span><span style="color: #000000;">&amp;</span></div>
<br />
btw，nohup就是no hang up（不挂起）<br />
<br />
最后检查一下执行用户退出后相应的进程是否继续在运行<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">root</span><span style="color: #800080;">@tech163</span><span style="color: #000000;">:/</span><span style="color: #000000;">home</span><span style="color: #000000;">/</span><span style="color: #000000;">chenyz</span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;ps&nbsp;-aux&nbsp;|&nbsp;grep&nbsp;hello</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">Warning</span><span style="color: #000000;">:</span><span style="color: #000000;">&nbsp;bad&nbsp;ps&nbsp;syntax</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;perhaps&nbsp;a&nbsp;bogus&nbsp;</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">-</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">?</span><span style="color: #000000;">&nbsp;See&nbsp;http</span><span style="color: #000000;">://</span><span style="color: #000000;">procps</span><span style="color: #000000;">.</span><span style="color: #000000;">sf</span><span style="color: #000000;">.</span><span style="color: #000000;">net</span><span style="color: #000000;">/</span><span style="color: #000000;">faq</span><span style="color: #000000;">.</span><span style="color: #000000;">html<br />
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">17275</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #800000;">0.0</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #800000;">0.1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">1840</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">544</span><span style="color: #000000;">&nbsp;pts</span><span style="color: #000000;">/</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;S&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">33</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;</span><span style="color: #800000;">0</span><span style="color: #000000;">:</span><span style="color: #800000;">00</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">sh&nbsp;</span><span style="color: #000000;">./</span><span style="color: #000000;">hello</span><span style="color: #000000;">.</span><span style="color: #000000;">sh<br />
<br />
root</span><span style="color: #800080;">@tech163</span><span style="color: #000000;">:/</span><span style="color: #000000;">home</span><span style="color: #000000;">/</span><span style="color: #000000;">chenyz</span><span style="color: #008000;">#</span><span style="color: #008000;">&nbsp;&nbsp;vi&nbsp;1</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">02</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">12</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">22</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">32</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">42</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
Wed&nbsp;Jan&nbsp;</span><span style="color: #800000;">19</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">17</span><span style="color: #000000;">:</span><span style="color: #800000;">09</span><span style="color: #000000;">:</span><span style="color: #800000;">52</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2011</span><span style="color: #000000;"><br />
</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span></div>
<br />
<br />
如果有更好的办法和想法，虚心请教，欢迎讨论<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/343227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-19 17:47 <a href="http://www.blogjava.net/dongbule/archive/2011/01/19/343227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令系列《用户与用户组管理》</title><link>http://www.blogjava.net/dongbule/archive/2011/01/19/343214.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 19 Jan 2011 07:36:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/19/343214.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/343214.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/19/343214.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/343214.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/343214.html</trackback:ping><description><![CDATA[对于用户管理工具平时大多用的是groupadd，useradd，usermod等等这些命令，平时linux的一些指令我都会做一些记录，本着好记性不如烂博客的精神，也把用户管理的命令做一点系统性的记录，参考资料基本是鸟哥还有网上的一些文章。<br />
<br />
<strong>用户组的管理</strong><br />
linux可以对一个用户组中的所有用户进行集中的管理，用户组的管理包括用户组添加，删除修改，实际上这些操作就是对/etc/group文件作出修改。<br />
<br />
<strong>groupadd 新增一个用户组</strong><br />
groupadd [-g gid [-o]] [-r] [-f] group<br />
-g 其中gid是指定新用户组的标识号，除非配合使用-o参数，不然该值必须是唯一的<br />
-o 标识新用户组gid可以和系统中原有的用户组的gid值相同<br />
实例：<br />
<u>groupadd chenyuzhe1<br />
groupadd -g 789 chenyuzhe2</u><br />
<strong><br />
groupdel 删除用户组</strong><br />
实例：<br />
<u>groupdel chenyuzhe1</u><br />
<br />
<strong>groupmod 修改用户组</strong><br />
实例：<br />
<u>groupmod -g 1000 chenyuzhe2<br />
groupmod -g 1000 -n chenyuzhe2 chenyuzhe3</u><br />
其中 -n 将原来的用户组进行重命名<br />
<br />
<strong>用户的管理</strong><br />
用户管理主要包括了用户账号的添加，修改和删除。<br />
<br />
<strong>useradd 添加用户账号</strong><br />
添加用户账号的操作包括了给它创建用户名，用户组，主目录和登录shell资源等等。<br />
adduser [-u uid][-g group][-G other_group][-d home][-s shell]<br />
-u 指定用户userID<br />
-g 指定指定用户所属的用户组<br />
-d 直接将根目录建立在已经存在的目录上<br />
-s 定义shell<br />
-G 指定用户所属的附加组<br />
实例：<br />
<u>useradd -d /home/chenyz chenyz<br />
useradd -s /bin/bash -d /home/chenyz -g chenyuzhe3 -G root chenyz</u><br />
添加用户实际上就是在/etc/passwd添加一条用户记录，如有指定其他的信息同时也在/etc/group,/etc/shadow文件中进行了相应的更新。<br />
<br />
<strong>userdel 删除用户账号</strong><br />
实例:<br />
<u>userdel chenyz<br />
userdel -r chenyz</u><br />
-r 连同主目录一并删除<br />
<br />
<strong>usermod 修改用户账号</strong><br />
操作项基本与useradd差不多<br />
实例：<br />
<u>usermod -l chenyz chenyz1</u><br />
<br />
<strong>相关的配置文件</strong><br />
/etc/paswd 用户账号的配置文件<br />
/etc/shadow 用户口令文件<br />
/etc/group 用户组的配置文件<br />
/etc/gshadow 用户组的口令文件<br />
<br />
<strong>有效用户和实际用户</strong><br />
在上面我们已经为系统创建了一个chenyz的账号，进行登录后我们执行以下2条指令<br />
<u>$ whoami<br />
chenyz<br />
$ who am i<br />
chenyz&nbsp;&nbsp; pts/2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Jan 19 15:24 (218.107.55.254)</u><br />
无论是whoami或是who am i用户名都是一致的，当我们使用su - 进行用户切换后再执行上面两条指令<br />
<u>gzhouse:~# whoami<br />
root<br />
gzhouse:~# who am i<br />
chenyz&nbsp;&nbsp; pts/0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2011-01-19 12:16 (113.108.224.230)</u><br />
可以说who am i 显示的是切换用户前的实际登陆的用户ID,whoami是切换后的有效的用户ID，此时此终端具有切换后用户的访问权限。<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/343214.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-19 15:36 <a href="http://www.blogjava.net/dongbule/archive/2011/01/19/343214.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux命令系列《磁盘管理(du df)》</title><link>http://www.blogjava.net/dongbule/archive/2011/01/19/343198.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Wed, 19 Jan 2011 05:08:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/19/343198.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/343198.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/19/343198.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/343198.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/343198.html</trackback:ping><description><![CDATA[对于磁盘管理工具平时大多用的是df，du这些命令，平时linux的一些指令我都会做一些记录，本着好记性不如烂博客的精神，先把磁盘管理的命令做一点系统性的记录。<br />
<br />
<strong>du</strong><br />
du的英文为:disk usage,含义是磁盘空间使用情况，功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况，如果没有指定目录，则对当前的目录进行统计。<br />
du的命令各个选项含义如下：<br />
<br />
a：显示全部目录和其次目录下的每个档案所占的磁盘空间<br />
s：只显示各档案大小的总合 <br />
b：大小用bytes来表示<br />
x：跳过在不同文件系统上的目录不予统计<br />
a：递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数<br />
...<br />
使用du进行查看<br />
root@tech163:/home/htmlfile# du<br />
16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./test<br />
60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./bbb<br />
84&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br />
<br />
其中第一列是以块为单位计的磁盘空间容量，第二列列出目录中使用这些空间的目录名称<br />
<br />
<strong>1)查看当前目录包含子目录的大小</strong><br />
root@tech163:/home/htmlfile# du -sm .<br />
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .<br />
其中的du -sm . 的&#8220;.&#8221;是代表当前目录。<br />
<br />
<strong>2)查看当前目录以及子目录的大小</strong><br />
root@tech163:/home/htmlfile# du -h<br />
16K&nbsp;&nbsp;&nbsp;&nbsp; ./test<br />
60K&nbsp;&nbsp;&nbsp;&nbsp; ./bbb<br />
84K&nbsp;&nbsp;&nbsp;&nbsp; .<br />
其中 -h 表示使用K，M，G的人性化形式显示。<br />
<br />
<strong>3)看到当前目录下的bbb目录大小，但不想查看其他目录以及子目录</strong><br />
root@tech163:/home/htmlfile# du -ch bbb | tail -n 1<br />
60K&nbsp;&nbsp;&nbsp;&nbsp; total<br />
使用了管道包含了du和tail两个命令，-c表示最后计算出所列目录的大小之和。<br />
<br />
<strong>4)列出当前目录下所有目录和文件的大小</strong><br />
root@tech163:/home/htmlfile# du -ah bbb<br />
4.0K&nbsp;&nbsp;&nbsp; bbb/mysql.php<br />
4.0K&nbsp;&nbsp;&nbsp; bbb/index.htm<br />
4.0K&nbsp;&nbsp;&nbsp; bbb/p.php<br />
28K&nbsp;&nbsp;&nbsp;&nbsp; bbb/memcache.php<br />
12K&nbsp;&nbsp;&nbsp;&nbsp; bbb/.session.php.swp<br />
4.0K&nbsp;&nbsp;&nbsp; bbb/hello.html<br />
60K&nbsp;&nbsp;&nbsp;&nbsp; bbb<br />
其中-a表示包含目录和文件<br />
<br />
<strong>5)不换行列出目录以及子目录大小的信息</strong><br />
root@tech163:/home/htmlfile# du -0h<br />
16K&nbsp;&nbsp;&nbsp;&nbsp; ./test60K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./bbb84K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .root@tech163:/home/htmlfile# <br />
其中 -0 表示列出一条信息后不换行，接着输出第二条信息。<br />
<br />
<strong>df</strong><br />
于du不同的是，du是面向文件的命令，只计算被文件占用的空间。不计算文件系统metadata 占用的空间。df则是基于文件系统总体来计算，通过文件系统中未分配空间来确定系统中已经分配空间的大小。df命令可以获取硬盘占用了多少空间，还剩下多少空间，它也可以显示所有文件系统对i节点和磁盘块的使用情况。<br />
<br />
df命令各个选择的含义如下：<br />
<br />
a：显示全部的档案系统和各分割区的磁盘使用情形<br />
i：显示i -nodes的使用量<br />
k：大小用k来表示 (默认值)<br />
t：显示某一个档案系统的所有分割区磁盘使用量<br />
x：显示不是某一个档案系统的所有分割区磁盘使用量<br />
T：显示每个分割区所属的档案系统名称 <br />
....<br />
<br />
使用df进行查看<br />
<br />
Filesystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1K-blocks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Used Available Use% Mounted on<br />
/dev/cciss/c0d0p1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2068156&nbsp;&nbsp;&nbsp; 611572&nbsp;&nbsp; 1351528&nbsp; 32% /<br />
tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1038080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp; 1038076&nbsp;&nbsp; 1% /lib/init/rw<br />
udev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10240&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 64&nbsp;&nbsp;&nbsp;&nbsp; 10176&nbsp;&nbsp; 1% /dev<br />
tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1038080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4&nbsp;&nbsp; 1038076&nbsp;&nbsp; 1% /dev/shm<br />
/dev/cciss/c0d0p9&nbsp;&nbsp;&nbsp; 130700120&nbsp; 44034236&nbsp; 86665884&nbsp; 34% /home<br />
/dev/cciss/c0d0p7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2068156&nbsp;&nbsp;&nbsp;&nbsp; 68932&nbsp;&nbsp; 1999224&nbsp;&nbsp; 4% /tmp<br />
/dev/cciss/c0d0p8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4132372&nbsp;&nbsp; 1760620&nbsp;&nbsp; 2161840&nbsp; 45% /usr<br />
/dev/cciss/c0d0p6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2068156&nbsp;&nbsp;&nbsp; 330104&nbsp;&nbsp; 1632996&nbsp; 17% /var<br />
<br />
第一行是文件系统对应的硬盘分区<br />
第二行是分区包含的数据块的数据(1数据库为1024字节)<br />
第三四行是已用和未用的数据块数组<br />
第五行是普通用户空间使用的百分比<br />
第六行是文件系统的安装点<br />
<br />
其中第三四行已用和未用数据块相加并不等于第二行总数据块，这是因为分区留了少量空间提供给<br />
<br />
系统管理员使用。<br />
<br />
<strong>1)</strong><br />
chenyz@gzhouse:~$ df -h<br />
文件系统&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 容量&nbsp; 已用 可用 已用% 挂载点<br />
/dev/cciss/c0d0p1&nbsp;&nbsp;&nbsp;&nbsp; 2.0G&nbsp; 598M&nbsp; 1.3G&nbsp; 32% /<br />
tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1014M&nbsp; 4.0K 1014M&nbsp;&nbsp; 1% /lib/init/rw<br />
udev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10M&nbsp;&nbsp; 64K&nbsp;&nbsp; 10M&nbsp;&nbsp; 1% /dev<br />
tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1014M&nbsp; 4.0K 1014M&nbsp;&nbsp; 1% /dev/shm<br />
/dev/cciss/c0d0p9&nbsp;&nbsp;&nbsp;&nbsp; 125G&nbsp;&nbsp; 42G&nbsp;&nbsp; 83G&nbsp; 34% /home<br />
/dev/cciss/c0d0p7&nbsp;&nbsp;&nbsp;&nbsp; 2.0G&nbsp;&nbsp; 68M&nbsp; 2.0G&nbsp;&nbsp; 4% /tmp<br />
/dev/cciss/c0d0p8&nbsp;&nbsp;&nbsp;&nbsp; 4.0G&nbsp; 1.7G&nbsp; 2.1G&nbsp; 45% /usr<br />
/dev/cciss/c0d0p6&nbsp;&nbsp;&nbsp;&nbsp; 2.0G&nbsp; 333M&nbsp; 1.6G&nbsp; 18% /var<br />
其中 -h 表示使用K，M，G的人性化形式显示。<br />
<br />
<strong>2)</strong><br />
chenyz@gzhouse:~$ df -ia<br />
文件系统&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inode (I)已用 (I)可用 (I)已用% 挂载点<br />
/dev/cciss/c0d0p1&nbsp;&nbsp;&nbsp;&nbsp; 262752&nbsp;&nbsp; 60150&nbsp; 202602&nbsp;&nbsp; 23% /<br />
tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 224142&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10&nbsp; 224132&nbsp;&nbsp;&nbsp; 1% /lib/init/rw<br />
proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; -&nbsp; /proc<br />
sysfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; -&nbsp; /sys<br />
procbususb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; -&nbsp; /proc/bus/usb<br />
udev&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 224142&nbsp;&nbsp;&nbsp;&nbsp; 770&nbsp; 223372&nbsp;&nbsp;&nbsp; 1% /dev<br />
tmpfs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 224142&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3&nbsp; 224139&nbsp;&nbsp;&nbsp; 1% /dev/shm<br />
devpts&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp; -&nbsp; /dev/pts<br />
/dev/cciss/c0d0p9&nbsp;&nbsp;&nbsp; 130763968 1972907 128791061&nbsp;&nbsp;&nbsp; 2% /home<br />
/dev/cciss/c0d0p7&nbsp;&nbsp;&nbsp;&nbsp; 262752&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 54&nbsp; 262698&nbsp;&nbsp;&nbsp; 1% /tmp<br />
/dev/cciss/c0d0p8&nbsp;&nbsp;&nbsp;&nbsp; 524832&nbsp;&nbsp; 35743&nbsp; 489089&nbsp;&nbsp;&nbsp; 7% /usr<br />
/dev/cciss/c0d0p6&nbsp;&nbsp;&nbsp;&nbsp; 262752&nbsp;&nbsp;&nbsp; 4896&nbsp; 257856&nbsp;&nbsp;&nbsp; 2% /var<br />
所谓的 inode 是用来存放档案及目录的基本信息,包含时间、档名、使用者及群组等。在分割扇区时，系统会先做出一堆 inode 以供以后使用，inode 的数量关系着系统中可以建立的档案及目录总数。如果要存的档案大部分都很小，则同样大小的硬盘中会有较多的档案，也就是说需要较多的 inode 来挂档案及目录<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/343198.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-19 13:08 <a href="http://www.blogjava.net/dongbule/archive/2011/01/19/343198.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[收藏]ssh: permission denied (publickey)</title><link>http://www.blogjava.net/dongbule/archive/2011/01/04/342275.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 04 Jan 2011 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2011/01/04/342275.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/342275.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2011/01/04/342275.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/342275.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/342275.html</trackback:ping><description><![CDATA[<pre style="margin: 0em;"><span style="font-family: song,Verdana; white-space: normal; border-collapse: collapse;">ssh出现permission denied (publickey)问题:<br />
修改/etc/ssh/sshd-config文件.</span></pre>
<pre style="margin: 0em;"><span style="font-family: song,Verdana; white-space: normal; border-collapse: collapse;">将其中的PermitRootLogin no修改为yes</span></pre>
<pre style="margin: 0em;"><span style="font-family: song,Verdana; white-space: normal; border-collapse: collapse;">PubkeyAuthentication yes修改为no</span></pre>
<pre style="margin: 0em;"><span style="font-family: song,Verdana; white-space: normal; border-collapse: collapse;">AuthorizedKeysFile .ssh/authorized_keys前面加上#屏蔽掉，</span></pre>
<pre style="margin: 0em;"><span style="font-family: song,Verdana; white-space: normal; border-collapse: collapse;">PasswordAuthentication no修改为yes就可以了。<br />
<br />
vi /</span><span style="font-family: song,Verdana; white-space: normal; border-collapse: collapse;">etc/ssh/sshd-config (详细说说sshd-config的配置解释)<br />
</span></pre>
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">Subsystem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sftp&nbsp;&nbsp;&nbsp;&nbsp;/usr/libexec/openssh/sftp-server<br />
Port&nbsp;22<br />
Protocol&nbsp;2<br />
PermitRootLogin&nbsp;no<br />
PubkeyAuthentication&nbsp;yes<br />
AuthorizedKeysFile&nbsp;.ssh/authorized_keys<br />
#CACertificateFile&nbsp;&nbsp;/etc/ssh/ca/ca.cert<br />
PasswordAuthentication&nbsp;no<br />
PermitEmptyPasswords&nbsp;no<br />
PrintMotd&nbsp;no<br />
ChallengeResponseAuthentication&nbsp;no<br />
UseDNS&nbsp;no<br />
ClientAliveInterval&nbsp;60</span></div>
<pre style="margin: 0em;"><br />
<br />
<strong>Port 22</strong> # SSH 预设使用 22 这个 port，您也可以使用多的 port ！亦即重复使用 port 这个设定项目即可！<br />
<br />
<strong>Protocol 2</strong>　# 选择的 SSH 协议版本，可以是 1 也可以是 2 ，如果要同时支持两者，就必须要使用 2,1 这个分隔了<br />
<strong><br />
PermitRootLogin no</strong>  # 是否允许 root 登入！预设是允许的，但是建议设定成 no！<br />
<br />
<span style="color: #000000;"><strong>PubkeyAuthentication&nbsp;yes</strong>  </span><strong><strong></strong></strong># 是否允许 Public Key<br />
<br />
<span style="color: #000000;"><strong>AuthorizedKeysFile&nbsp;.ssh/authorized_keys</strong> </span># 上面这个在设定若要使用不需要密码登入的账号时，那么那个账号的存放档案所在档名！<br />
<br />
<span style="color: #000000;"><strong>PasswordAuthentication&nbsp;no</strong> </span><strong></strong># 是否需要密码的验证<br />
<br />
<strong><span style="color: #000000;">PermitEmptyPasswords&nbsp;no</span></strong> # 若上面那一项如果设定为 yes 的话，这一项就最好设定为 no ，这个项目在是否允许以空的密码登入！当然不许！<br />
<br />
<span style="color: #000000;"><strong>PrintMotd&nbsp;no</strong> </span># <strong></strong>登入后是否显示出一些信息呢？例如上次登入的时间、地点等<br />
<br />
<span style="color: #000000;"><strong>ChallengeResponseAuthentication&nbsp;no</strong> </span># 是否启用其它的 PAM 模块！启用这个模块将会导致 PasswordAuthentication 设定失效！<br />
<br />
<strong><span style="color: #000000;">UseDNS&nbsp;no </span></strong><br />
<br />
<strong><span style="color: #000000;">ClientAliveInterval&nbsp;60 </span></strong><br />
<br />
<br />
<br />
<strong></strong><br />
<br />
<br />
<br />
</pre>
<img src ="http://www.blogjava.net/dongbule/aggbug/342275.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2011-01-04 14:10 <a href="http://www.blogjava.net/dongbule/archive/2011/01/04/342275.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>apache日志分析简介</title><link>http://www.blogjava.net/dongbule/archive/2010/12/10/340288.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Fri, 10 Dec 2010 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/12/10/340288.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/340288.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/12/10/340288.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/340288.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/340288.html</trackback:ping><description><![CDATA[上次因工作的需求对一台apache的log做了一次整体的分析,所以顺便也对apache的日志分析做下简单的介绍,主要参考apache官网的Log Files,手册参照 http://httpd.apache.org/docs/2.2/logs.html<br />
<br />
<strong>一.日志分析</strong><br />
如果apache的安装时采用默认的配置,那么在/logs目录下就会生成两个文件,分别是access_log和error_log<br />
<strong>1.access_log</strong><br />
access_log为访问日志,记录所有对apache服务器进行请求的访问,它的位置和内容由CustomLog指令控制,LogFormat指令可以用来简化该日志的内容和格式<br />
例如,我的其中一台服务器配置如下<br />
<br />
CustomLog "| /usr/sbin/rotatelogs /var/log/apache2/%Y_%m_%d_other_vhosts_access.log 86400 480" vhost_combined<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">-rw-r--r--&nbsp;1&nbsp;root&nbsp;root&nbsp;22310750&nbsp;12-05&nbsp;23:59&nbsp;2010_12_05_other_vhosts_access.log<br />
-rw-r--r--&nbsp;1&nbsp;root&nbsp;root&nbsp;26873180&nbsp;12-06&nbsp;23:59&nbsp;2010_12_06_other_vhosts_access.log<br />
-rw-r--r--&nbsp;1&nbsp;root&nbsp;root&nbsp;26810003&nbsp;12-07&nbsp;23:59&nbsp;2010_12_07_other_vhosts_access.log<br />
-rw-r--r--&nbsp;1&nbsp;root&nbsp;root&nbsp;24530219&nbsp;12-08&nbsp;23:59&nbsp;2010_12_08_other_vhosts_access.log<br />
-rw-r--r--&nbsp;1&nbsp;root&nbsp;root&nbsp;24536681&nbsp;12-09&nbsp;23:59&nbsp;2010_12_09_other_vhosts_access.log<br />
-rw-r--r--&nbsp;1&nbsp;root&nbsp;root&nbsp;14003409&nbsp;12-10&nbsp;14:57&nbsp;2010_12_10_other_vhosts_access.log</span></div>
<br />
<br />
通过CustomLog指令,每天一天生成一个独立的日志文件,同时也写了定时器将一周前的日志文件全部清除,这样可以显得更清晰,既可以分离每一天的日志又可以清除一定时间以前的日志通过制,LogFormat定义日志的记录格式<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">LogFormat&nbsp;"%h&nbsp;%l&nbsp;%u&nbsp;%t&nbsp;\"%r\"&nbsp;%&gt;s&nbsp;%b&nbsp;\"%{Referer}i\"&nbsp;\"%{User-Agent}i\""&nbsp;combined<br />
LogFormat&nbsp;"%{X-Forwarded-For}i&nbsp;%l&nbsp;%u&nbsp;%t&nbsp;\"%r\"&nbsp;%&gt;s&nbsp;%b&nbsp;\"%{Referer}i\"&nbsp;\"%{User-Agent}i\""&nbsp;combinedproxy<br />
LogFormat&nbsp;"%h&nbsp;%l&nbsp;%u&nbsp;%t&nbsp;\"%r\"&nbsp;%&gt;s&nbsp;%b"&nbsp;common<br />
LogFormat&nbsp;"%{Referer}i&nbsp;-&gt;&nbsp;%U"&nbsp;referer<br />
LogFormat&nbsp;"%{User-agent}i"&nbsp;agent</span></div>
<br />
随意的tail一个access_log文件,下面是一条经典的访问记录<br />
<br />
218.19.140.242
- - [10/Dec/2010:09:31:17 +0800] "GET
/query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml
HTTP/1.1" 200 1933 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN;
rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"<br />
<br />
一共是有9项,将他们一一拆开<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">218.19.140.242<br />
-<br />
-<br />
[10/Dec/2010:09:31:17&nbsp;+0800]<br />
"GET&nbsp;/query/trendxml/district/todayreturn/month/2009-12-14/2010-12-09/haizhu_tianhe.xml&nbsp;HTTP/1.1"<br />
200<br />
1933<br />
"-"<br />
"Mozilla/5.0&nbsp;(Windows;&nbsp;U;&nbsp;Windows&nbsp;NT&nbsp;5.1;&nbsp;zh-CN;&nbsp;rv:1.9.2.8)&nbsp;Gecko/20100722&nbsp;Firefox/3.6.8&nbsp;(.NET&nbsp;CLR&nbsp;3.5.30729)"</span></div>
<br />
<strong>1)</strong> <strong>218.19.140.242</strong>
这是一个请求到apache服务器的客户端ip,默认的情况下,第一项信息只是远程主机的ip地址,但我们如果需要apache查出主机的名字,可以将
HostnameLookups设置为on,但这种做法是不推荐使用,因为它大大的减缓了服务器.另外这里的ip地址不一定就是客户主机的ip地址,如果
客户端使用了代理服务器,那么这里的ip就是代理服务器的地址,而不是原机.<br />
<br />
<strong>2) -</strong> 这一项是空白,使用"-"来代替,这个位置是用于标注访问者的标示,这个信息是由identd的客户端存在,除非IdentityCheck为on,非则apache是不会去获取该部分的信息(ps:不太理解,基本上这一项都是为空,奉上原文)<br />
The
"hyphen" in the output indicates that the requested piece of
information is not available. In this case, the information that is not
available is the RFC 1413 identity of the client determined by identd on
the clients machine. This information is highly unreliable and should
almost never be used except on tightly controlled internal networks.
Apache httpd will not even attempt to determine this information unless
IdentityCheck is set to On.<br />
<br />
<strong>3) -</strong> 这一项又是为空白,不过这项是用户记录用户HTTP的身份验证,如果某些网站要求用户进行身份雁阵,那么这一项就是记录用户的身份信息<br />
<br />
<strong>4) [10/Dec/2010:09:31:17 +0800]</strong> 第四项是记录请求的时间,格式为[day/month/year:hour:minute:second zone],最后的+0800表示服务器所处的时区为东八区<br />
<br />
<strong>5) "GET /..haizhu_tianhe.xml HTTP/1.1"</strong> 这一项整个记录中最有用的信息,首先,它告诉我们的服务器收到的是一个GET请求,其次,是客户端请求的资源路径,第三,客户端使用的协议时HTTP/1.1,整个格式为"%m %U%q %H",即"请求方法/访问路径/协议"<br />
<br />
<strong>6) 200</strong>
这是一个状态码,由服务器端发送回客户端,它告诉我们客户端的请求是否成功,或者是重定向,或者是碰到了什么样的错误,这项值为200，表示服务器已经成
功的响应了客户端的请求,一般来说,这项值以2开头的表示请求成功,以3开头的表示重定向,以4开头的标示客户端存在某些的错误,以5开头的标示服务器端
存在某些错误,详细的可以参见 HTTP specification (RFC2616 section
10).[http://www.w3.org/Protocols/rfc2616/rfc2616.txt]<br />
<br />
<strong>7) 1933</strong> 这项表示服务器向客户端发送了多少的字节,在日志分析统计的时侯,把这些字节加起来就可以得知服务器在某点时间内总的发送数据量是多少<br />
<br />
<strong>8) -</strong> 暂不知<br />
<br />
<strong>9) "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)"</strong> 这项主要记录客户端的浏览器信息<br />
<br />
<br />
<br />
<br />
<br />
<strong>2.error_log</strong><br />
error_log为错误日志,记录下任何错误的处理请求,它的位置和内容由ErrorLog指令控制,通常服务器出现什么错误,首先对它进行查阅,是一个最重要的日志文件<br />
<br />
tail error_log,随意摘取一个记录<br />
<br />
[Fri Dec 10 15:03:59 2010] [error] [client 218.19.140.242] File does not exist: /home/htmlfile/tradedata/favicon.ico<br />
<br />
同样也是分为几个项<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">[Fri&nbsp;Dec&nbsp;10&nbsp;15:03:59&nbsp;2010]<br />
[error]<br />
[client&nbsp;218.19.140.242]<br />
File&nbsp;does&nbsp;not&nbsp;exist:&nbsp;/home/htmlfile/tradedata/favicon.ico</span></div>
<br />
<strong>1) [Fri Dec 10 15:03:59 2010]</strong> 记录错误发生的时间,注意,它跟我们上面access_log记录的时间格式是不同的<br />
<br />
<strong>2) [error]</strong> 这一项为错误的级别,根据LogLevel指令来控制错误的类别,上面的404是属于error级别<br />
<br />
<strong>3) [client 218.19.140.242]</strong> 记录客户端的ip地址<br />
<br />
<strong>4) File does not exist: /home/htmlfile/tradedata/favicon.ico</strong> 这一项首先对错误进行了描述,例如客户端访问一个不存在或路径错误的文件,就会给出404的提示错误<br />
<br />
<br />
<br />
<strong>二.实用的日志分析脚本</strong><br />
了解日志的各种定义后,这里分享一下从网上淘来的一些对日志分析的脚本<br />
<br />
1.查看apache的进程数<br />
ps -aux | grep httpd | wc -l<br />
<br />
2.分析日志查看当天的ip连接数<br />
cat default-access_log | grep "10/Dec/2010" | awk '{print $2}' | sort | uniq -c | sort -nr<br />
<br />
3.查看指定的ip在当天究竟访问了什么url<br />
cat default-access_log | grep "10/Dec/2010" | grep "218.19.140.242" | awk '{print $7}' | sort | uniq -c | sort -nr<br />
<br />
4.查看当天访问排行前10的url<br />
cat default-access_log | grep "10/Dec/2010" | awk '{print $7}' | sort | uniq -c | sort -nr | head -n 10<br />
<br />
5.看到指定的ip究竟干了什么<br />
cat default-access_log | grep 218.19.140.242 | awk '{print $1"\t"$8}' | sort | uniq -c | sort -nr | less<br />
<br />
6.查看访问次数最多的几个分钟(找到热点)<br />
awk '{print $4}' default-access_log |cut -c 14-18|sort|uniq -c|sort -nr|head<br />
<br />
<br />
<br />
<strong>三.使用awstats自动分析日志</strong><br />
当然啦,如果想最简单和最直观的分析日志还是用工具,现在网上较流行的工具是awstats,一个基于perl的web日志分析工具,功能很强大也支持IIS等服务器<br />
下载地址 http://awstats.sourceforge.net<br />
安装配置见 &lt;<a></a><a href="http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html"></a><a>安装配置整理之 awstats</a>&gt;<br />
<br />
简单的界面<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/a2.png" width="1056" height="663" /><br />
<br />
<br />
<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
QQ:34174409<br />
Mail: dongbule@163.com<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/340288.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-12-10 17:52 <a href="http://www.blogjava.net/dongbule/archive/2010/12/10/340288.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 awstats</title><link>http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Fri, 10 Dec 2010 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/340281.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/340281.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/340281.html</trackback:ping><description><![CDATA[下载地址 http://awstats.sourceforge.net<br />
下载最新版本 <br />
<br />
<strong>安装</strong><br />
cd /home/download<br />
wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz<br />
tar zxf awstats-7.0.tar.gz<br />
mv awstats-7.0 awstats<br />
perl awstats_configure.pl<br />
<br />
在[y/n]选择时,输入y<br />
接着输入你要分析的域名,输入tech163<br />
一路Enter<br />
<br />
<strong>配置</strong><br />
vi /etc/awstats/awstats.tech163.com<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">LogFile="/home/apache/logs/access_logs"<br />
DirCgi="/home/awstats/wwwroot/cgi-bin"<br />
AllowToUpdateStatsFromBrowser=1</span></div>
<br />
<br />
vi /home/apache/conf/httpd.conf<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">VirtualHost&nbsp;</span><span style="color: #ff0000;">*</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
&nbsp;&nbsp;ServerName&nbsp;awstats.163.com<br />
&nbsp;&nbsp;DocumentRoot&nbsp;"/home/awstats/awstats/wwwroot"<br />
</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">VirtualHost</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br />
<br />
Alias&nbsp;/awstatsclasses&nbsp;"/home/awstats/awstats/wwwroot/classes/"<br />
Alias&nbsp;/awstatscss&nbsp;"/home/awstats/awstats/wwwroot/css/"<br />
Alias&nbsp;/awstatsicons&nbsp;"/home/awstats/awstats/wwwroot/icon/"<br />
ScriptAlias&nbsp;/awstats/&nbsp;"/home/awstats/awstats/wwwroot/cgi-bin/"</span></div>
<br />
<br />
cd /home/awstats/wwwroot/cgi-bin<br />
perl awstats.pl -config=tech163 -update -lang=cn<br />
perl awstats.pl -config=tech163 -output -staticlinks -lang=cn&gt;awstats.tech163.html<br />
<br />
<strong>测试</strong><br />
http://awstats.163.com/awstats/awstats.pl?config=tech163.com<br />
<br />
host指定 awstats.163.com 为 配置的机器ip<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/340281.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-12-10 17:28 <a href="http://www.blogjava.net/dongbule/archive/2010/12/10/340281.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 memcached</title><link>http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 07 Dec 2010 08:34:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339995.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339995.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339995.html</trackback:ping><description><![CDATA[memcached需要依赖到以下的一系列包<br />
gcc<br />
libevent<br />
glibc-devel <br />
<br />
<strong>下载</strong><br />
cd /home/download <br />
wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz<br />
wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz<br />
<br />
<strong>安装</strong><br />
tar -zxvf libevent-1.4.13-stable.tar.gz<br />
cd libevent-1.4.13-stable<br />
./configure --prefix=/usr/local/libevent<br />
make &amp;&amp; make install<br />
<br />
tar -zxvf memcached-1.4.0.tar.gz<br />
cd memcached-1.4.0<br />
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent<br />
make &amp;&amp; make install<br />
<br />
<strong>启动</strong><br />
/usr/local/memcached/bin/memcached -d -m 64 -u root -p 11211 -c 1024 -P /var/memcached.pid <br />
-d 为守护进程<br />
-m 为分配的内存量<br />
-u 运行memcached的用户<br />
-p 监听的端口<br />
-c 最大的并发连接数<br />
-P 保存pid文件<br />
<br />
还有很多的启动选项,通过帮助查看<br />
/usr/local/memcached/bin/memcached -h <br />
<br />
<strong>测试</strong><br />
在windows开启命令行<br />
telnet 192.168.1.100 11211<br />
用telnet测试一下以下命令<br />
stats 查询状态<br />
version 查询版本<br />
quit 退出<br />
flush_all 清空缓存数据<br />
<br />
<strong>结束进程</strong><br />
kill cat /var/memcached.pid <br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-12-07 16:34 <a href="http://www.blogjava.net/dongbule/archive/2010/12/07/339995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 PHP-FPM</title><link>http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 30 Nov 2010 10:44:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339425.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339425.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339425.html</trackback:ping><description><![CDATA[<strong>PHP-FPM</strong> 是 一个PHP <strong>FastCGI</strong>进程管理器<br />
<br />
FastCGI是一个可伸缩的，高速地在web server和脚本语言间交互的接口。FastCGI的主要优点是把动态语言和web server分离开来。这种技术允许把web server和动态语言运行在不同的主机上，以大规模扩展和改进安全性而不损失生产效率。<br />
<br />
php-fpm可以和任何支持远端FastCGI的web server工作<br />
<strong><br />
安装</strong><br />
php-5.2.13.tar.gz<br />
php-5.2.13-fpm-0.5.14.diff.gz <br />
<br />
tar zxvf php-5.2.13.tar.gz<br />
gunzip php-5.2.13-fpm-0.5.14.diff.gz <br />
<br />
patch -d php-5.2.13 -p1 &lt; php-5.2.13-fpm-0.5.14.diff (给php源码打fpm补丁)<br />
<br />
cd php-5.2.13<br />
<br />
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --enable-fastcgi --enable-fpm --with-config-file-path=/usr/local/php/etc --enable-force-cgi-redirect&nbsp; <br />
<br />
make &amp;&amp;　make install<br />
<br />
<strong>检查安装的情况</strong><br />
<br />
cd /usr/local/php/bin<br />
<br />
./php -v <br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">PHP&nbsp;</span><span style="color: rgb(0, 0, 0);">5.2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">13</span><span style="color: rgb(0, 0, 0);">&nbsp;(cli)&nbsp;(built</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">&nbsp;Nov&nbsp;</span><span style="color: rgb(0, 0, 0);">30</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">2010</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">16</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">59</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">45</span><span style="color: rgb(0, 0, 0);">)&nbsp;<br />
Copyright&nbsp;(c)&nbsp;</span><span style="color: rgb(0, 0, 0);">1997</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2010</span><span style="color: rgb(0, 0, 0);">&nbsp;The&nbsp;PHP&nbsp;Group<br />
Zend&nbsp;Engine&nbsp;v2</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">&nbsp;Copyright&nbsp;(c)&nbsp;</span><span style="color: rgb(0, 0, 0);">1998</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">2010</span><span style="color: rgb(0, 0, 0);">&nbsp;Zend&nbsp;Technologies</span></div>
##出现上面的显示说明安装正常<br />
<br />
cp /home/download/php-5.2.13/php.ini-dist /usr/local/php/etc/php.ini<br />
<br />
vi /usr/local/php/etc/php-fpm.conf<br />
<br />
去除下列两行的注释<br />
&lt;value name="user"&gt;nobody&lt;/value&gt;&nbsp; <br />
&lt;value name="group"&gt;nobody&lt;/value&gt;<br />
<br />
启动php-fpm<br />
/usr/local/php/sbin/php-fpm start<br />
<br />
<strong>配置nginx</strong>(配置nginx见 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html">安装配置整理之 nginx</a>)<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">server&nbsp;{<br />
listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">80</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">server_name&nbsp;&nbsp;www.test.com</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">root&nbsp;&nbsp;&nbsp;/home/htmlfile/test</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);"><br />
location&nbsp;~&nbsp;.*\.(php|php5)?$&nbsp;{<br />
root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">fastcgi_pass&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">127.0.0.1</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">9000</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">fastcgi_index&nbsp;&nbsp;index.php</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">fastcgi_param&nbsp;&nbsp;SCRIPT_FILENAME&nbsp;&nbsp;/home/htmlfile/test$fastcgi_script_name</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fastcgi_params</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}<br />
location&nbsp;~&nbsp;.*\.(gif|jpg|jpeg|png|bmp|swf)$&nbsp;&nbsp;{<br />
expires&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;30d</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}<br />
location&nbsp;~&nbsp;.*\.(js|css)?$&nbsp;&nbsp;{<br />
expires&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1h</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}<br />
#access_log&nbsp;&nbsp;/var/logs/access.log&nbsp;&nbsp;access</span><span style="color: rgb(0, 128, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);">}</span></div>
## server部分为PHP虚拟主机127.0.0.1：9000为fastcgi的主机<br />
<br />
重启nginx<br />
<br />
在/home/htmlfile/test目录下新建test.php<br />
内容为&lt;?php phpinfo(); ?&gt;<br />
<br />
既通过www.test.com/test.php进行访问,出现php的信息页,则安装成功<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339425.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-30 18:44 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/339425.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 mysql</title><link>http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 30 Nov 2010 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339394.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339394.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339394.html</trackback:ping><description><![CDATA[mysql的官方网站是 http://www.mysql.com<br />
<br />
tar zxvf mysql-5.1.50.tar.gz<br />
<br />
cd mysql-5.1.50<br />
<br />
./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charset=all --enable-hread-safe-client <br />
--enable-local-infile --with-low-memory&nbsp; <br />
<br />
make &amp;&amp; make install<br />
<br />
chmod +w /usr/local/mysql<br />
<br />
chown -R mysql:mysql /usr/local/mysql<br />
<br />
cp support-files/my-medium.cnf /etc/my.cnf<br />
<br />
/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql<br />
<br />
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339394.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-30 15:21 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/339394.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 nginx</title><link>http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 30 Nov 2010 04:45:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339377.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339377.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339377.html</trackback:ping><description><![CDATA[nginx的官方网站是:http://www.nginx.org<br />
<br />
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器，也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的，它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版，但是，Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。<br />
<br />
<strong>nginx的特性</strong><br />
1.目前官方 Nginx 并不支持Windows,您只能在包括Linux,UNIX,BSD系统下安装和使用<br />
2.Nginx 本身只是一个HTTP和反向代理服务器，它无法像Apache一样通过安装各种模块来支持不同的页面脚本，例如PHP、CGI等<br />
3.Nginx 支持简单的负载均衡和容错<br />
4.支持作为基本 HTTP 服务器的功能，例如日志、压缩、Byte ranges、Chunked responses、SSL、虚拟主机等等，应有尽有<br />
<br />
<strong>安装</strong><br />
安装nginx前需要确保系统中已经安装PCRE包,PCRE library这个是HTTP Rewrite模块,也即是url静态化的包,到http://www.pcre.org下载最新的PCRE源码包,<br />
<br />
或直接使用yum install pcre,apt-get instll pcre进行安装<br />
<br />
登录 http://www.nginx.org/en/download.html 下载最新的版本<br />
<br />
wget http://www.nginx.org/download/nginx-0.8.53.tar.gz<br />
<br />
tar zxvf nginx-0.8.53.tar.gz<br />
<br />
cd nginx-0.8.53<br />
<br />
./configure --prefix=/usr/local/nginx --with-pcre=/home/download/pcre-8.01&nbsp; --with-http_ssl_module --with-openssl=/home/download/openssl-1.0.0a --with-http_stub_status_module&nbsp; <br />
<br />
##指定pcre目录和启动ssl,https模块<br />
<br />
make <br />
<br />
make install<br />
<br />
##为什么Nginx的性能要比Apache高得多?这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型，而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的 Squid、Memcached都采用的是epoll网络I/O模型,处理大量的连接的读写，Apache所采用的select网络I/O模型非常低效<br />
<br />
<strong>配置</strong><br />
编辑vi /usr/local/nginx/conf/nginx.conf,其中/usr/local/nginx为安装路径<span style="color: #000000;"><br />
</span><br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">#</span><span style="color: #008000;">#指定nginx的用户名和用户组</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">user&nbsp;&nbsp;nobody;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#启动进程数</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">worker_processes&nbsp;&nbsp;</span><span style="color: #000000;">8</span><span style="color: #000000;">;<br />
worker_rlimit_nofile&nbsp;</span><span style="color: #000000;">10240</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定PID文件</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">pid&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logs</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span><span style="color: #000000;">.</span><span style="color: #000000;">pid;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定工作模式和链接上限</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">events&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">use</span><span style="color: #000000;">&nbsp;epoll;<br />
&nbsp;&nbsp;&nbsp;&nbsp;worker_connections&nbsp;&nbsp;</span><span style="color: #000000;">10240</span><span style="color: #000000;">;<br />
}<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#http服务器</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">http&nbsp;{<br />
</span><span style="color: #0000ff;">include</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mime</span><span style="color: #000000;">.</span><span style="color: #000000;">types;<br />
default_type&nbsp;&nbsp;text</span><span style="color: #000000;">/</span><span style="color: #000000;">html;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定日志格式</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">log_format&nbsp;&nbsp;main&nbsp;&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">$http_x_forwarded_for&nbsp;-&nbsp;$remote_user&nbsp;[$time_local]&nbsp;$request&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">"$status"&nbsp;$body_bytes_sent&nbsp;"$http_referer"&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">"$http_user_agent"&nbsp;"$http_x_forwarded_for"</span><span style="color: #000000;">'</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定accesslog</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">access_log&nbsp;logs</span><span style="color: #000000;">/</span><span style="color: #000000;">nginx</span><span style="color: #000000;">.</span><span style="color: #008080;">log</span><span style="color: #000000;">&nbsp;main;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">keepalive_timeout&nbsp;&nbsp;</span><span style="color: #000000;">300</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#开启gzip模块</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">gzip&nbsp;&nbsp;on;<br />
gzip_min_length&nbsp;&nbsp;</span><span style="color: #000000;">1000</span><span style="color: #000000;">;<br />
gzip_buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;8k;<br />
gzip_types&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;text</span><span style="color: #000000;">/*</span><span style="color: #000000;">;<br />
gzip_http_version&nbsp;</span><span style="color: #000000;">1.0</span><span style="color: #000000;">;<br />
output_buffers&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">1</span><span style="color: #000000;">&nbsp;32k;<br />
postpone_output&nbsp;&nbsp;</span><span style="color: #000000;">1460</span><span style="color: #000000;">;<br />
gzip_proxied&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;any;<br />
gzip_vary&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定请求的缓冲</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">client_header_timeout&nbsp;&nbsp;&nbsp;5m;<br />
client_body_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5m;<br />
send_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;5m;<br />
sendfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br />
tcp_nopush&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on;<br />
tcp_nodelay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;off;<br />
client_header_buffer_size&nbsp;16k;<br />
large_client_header_buffers&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;64k;<br />
server_names_hash_bucket_size&nbsp;</span><span style="color: #000000;">128</span><span style="color: #000000;">;<br />
ssi&nbsp;on;<br />
ssi_silent_errors&nbsp;on;<br />
ssi_types&nbsp;text</span><span style="color: #000000;">/</span><span style="color: #000000;">shtml;<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定虚拟主机</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">server&nbsp;{<br />
listen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">80</span><span style="color: #000000;">;<br />
server_name&nbsp;_;<br />
server_name_in_redirect&nbsp;&nbsp;off;<br />
<br />
location&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">&nbsp;{<br />
&nbsp;root&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">dev</span><span style="color: #000000;">/</span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br />
}<br />
<br />
}<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">#指定include文件</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">include</span><span style="color: #000000;">&nbsp;servers</span><span style="color: #008000;">/*</span><span style="color: #008000;">.com;<br />
<br />
}<br />
<br />
</span></div>
<br />
新建proxy.conf<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">proxy_set_header&nbsp;X-Forwarded-For&nbsp;$remote_addr</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##设定header</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_set_header&nbsp;RealIP&nbsp;$remote_addr</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">proxy_set_header&nbsp;Accept-Encoding&nbsp;'&nbsp;'</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">proxy_hide_header&nbsp;Vary</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##隐藏header</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">add_header&nbsp;via_up&nbsp;$upstream_addr</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">proxy_connect_timeout&nbsp;&nbsp;&nbsp;2m</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##代理连接超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_send_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2m</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##代理发送超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_read_timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2m</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;##代理发送超时</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_temp_file_write_size&nbsp;2048m</span><span style="color: #008000;">;</span><span style="color: #008000;">##设定缓存文件夹大小</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_buffer_size&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;256k</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_buffers&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">4</span><span style="color: #000000;">&nbsp;256k</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">proxy_busy_buffers_size&nbsp;512k</span><span style="color: #008000;">;</span><span style="color: #008000;">&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;"><br />
proxy_ignore_client_abort&nbsp;off</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;"><br />
proxy_next_upstream&nbsp;error&nbsp;timeout&nbsp;invalid_header</span><span style="color: #008000;">;</span></div>
<br />
新建目录/conf/servers,并新建配置文件test.com<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">server&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;listen&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">80</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server_name&nbsp;&nbsp;</span><span style="color: #000000;">245</span><span style="color: #000000;">.test.com</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;/home/htmlfile/test</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;location&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;/&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_temp_path&nbsp;/var/www/cache</span><span style="color: #008000;">;</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;index.html&nbsp;index.htm</span><span style="color: #008000;">;<br />
</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
<br />
}</span></div>
<br />
修改配置文件后,通过以下命令检查配置是否正确<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">/usr/local/nginx/sbin/nginx&nbsp;-t&nbsp; <br />
</span></div>
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">the&nbsp;configuration&nbsp;file&nbsp;/usr/local/nginx/conf/nginx.conf&nbsp;syntax&nbsp;is&nbsp;ok<br />
configuration&nbsp;file&nbsp;/usr/local/nginx/conf/nginx.conf&nbsp;test&nbsp;is&nbsp;successful</span></div>
<br />
启动命令<br />
/usr/local/nginx/sbin/nginx&nbsp; <br />
停止命令<br />
/usr/local/nginx/sbin/nginx&nbsp; -s stop<br />
平滑重新加载配置文件<br />
kill -HUP `cat /usr/local/nginx/logs/nginx.pid<br />
添加到自启动<br />
echo "/usr/local/nginx/sbin/nginx" &gt;&gt; /etc/rc.local<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339377.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-30 12:45 <a href="http://www.blogjava.net/dongbule/archive/2010/11/30/nginx.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 软件卸载</title><link>http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 29 Nov 2010 07:14:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339318.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339318.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339318.html</trackback:ping><description><![CDATA[1.卸载rpm包<br />
通过 rpm -qa | grep httpd 搜索出<br />
<br />
httpd-2.2.3-43.el5.centos.3<br />
<br />
再<br />
<br />
rpm -e httpd-2.2.3-43.el5.centos.3<br />
<br />
如果出现提示有其他相关包依赖此rpm,可以选择强制卸载<br />
<br />
2.yum 或 apt-get 卸载<br />
<br />
yum -y remove httpd<br />
yum -y remove httpd* 卸载多个相识的软件<br />
<br />
3.卸载自编译包<br />
make uninstall 或 手动删除<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-29 15:14 <a href="http://www.blogjava.net/dongbule/archive/2010/11/29/linux.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>安装配置整理之 net-snmp</title><link>http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 29 Nov 2010 03:34:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/339299.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/339299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/339299.html</trackback:ping><description><![CDATA[NET-SNMP的官方网站是:http://www.net-snmp.org<br />
先阅读一下官网的一点说明(详细见官网)<br />
Simple Network Management Protocol (SNMP) is a widely used protocol for monitoring the health and welfare of network equipment (eg.routers), computer equipment and even devices like UPSs. Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and SNMP v3 using both IPv4 and IPv6<br />
...<br />
<br />
<strong>安装</strong><br />
<br />
在http://www.net-snmp.org/download.html选择最新版本进行下载<br />
<br />
wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.6/net-snmp-5.6.tar.gz<br />
<br />
tar -xvf net-snmp-5.6.tar.gz<br />
<br />
cd net-snmp-5.6<br />
<br />
./configure --prefix=/usr/local/net-snmp --with-default-snmp-version="2" --with-logfile=/usr/local/net-snmp/log/snmplog.log --with-persistent-directory=/var/net-snmp<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">注<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">prefix&nbsp;安装的路径<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">with</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 255);">default</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">snmp</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">version&nbsp;默认的版本<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">with</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">logfile&nbsp;日志文件的路径<br />
</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">with</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">persistent</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">directory&nbsp;固定数据存储目录</span></div>
<br />
make &amp;&amp; make install<br />
<br />
cp EXAPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf<br />
<br />
vi snmpd.conf<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">60</span><span style="color: rgb(0, 0, 0);">&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sec.name&nbsp;&nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;community<br />
</span><span style="color: rgb(0, 0, 0);">61</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;local&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMUNITY<br />
</span><span style="color: rgb(0, 0, 0);">62</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;mynetwork&nbsp;NETWORK</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">24</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;COMMUNITY</span></div>
<br />
<br />
修改为&nbsp;&nbsp;&nbsp; <br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">60</span><span style="color: rgb(0, 0, 0);">&nbsp;#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sec.name&nbsp;&nbsp;source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;community<br />
</span><span style="color: rgb(0, 0, 0);">61</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;local&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">62</span><span style="color: rgb(0, 0, 0);">&nbsp;com2sec&nbsp;mynetwork&nbsp;NETWORK</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">24</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">public</span></div>
<br />
<br />
在/etc/rc.local追加<br />
/usr/local/net-snmp/sbin/snmpd -c /usr/local/net-snmp/share/snmp/snmpd.conf<br />
<br />
在/etc/profile文件的export命令前追加<br />
PATH=/usr/local/net-snmp/bin:/usr/local/net-snmp/sbin:$PATH<br />
<br />
<strong>检查</strong><br />
<br />
使用 ps -aux | grep snmpd查看snmpd的进程是否启动<br />
<br />
使用如下命令从本机检查snmp是否得到系统数据<br />
<br />
snmpwalk -v 2c -c public localhost<br />
<br />
如果返回的不是Time out,而是系统信息就说明net-snmp安装成功<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/339299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-29 11:34 <a href="http://www.blogjava.net/dongbule/archive/2010/11/29/net-snmp.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vi/vim的一点问题</title><link>http://www.blogjava.net/dongbule/archive/2010/11/22/338694.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 22 Nov 2010 06:57:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/22/338694.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/338694.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/22/338694.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/338694.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/338694.html</trackback:ping><description><![CDATA[刚在一台新安装ubuntu的机器上进行vi,出现<br />
-bash: vi: command not found<br />
使用vim则可以正常的操作,当然这个应该是vi/vim没安装好的原因,重新执行命令<br />
yun -y install vim*<br />
完整的安装完毕后则可以正常使用vi/vim<br />
<br />
以前只知道vim是vi的升级版,大部分时候也只使用vi,至于vim和vi的一些区别上还真的不知道,以下为在网上查找整理的内容<br />
<br />
vim,意为<strong>VI iMproved</strong>,主要的优势体现在以下几个方面：<br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">1</span><span style="color: #000000;">、多级撤消<br />
我们知道在vi里，按&nbsp;u只能撤消上次命令，而在vim里可以无限制的撤消。<br />
</span><span style="color: #000000;">2</span><span style="color: #000000;">、易用性<br />
vi只能运行于unix中，而vim不仅可以运行于unix,windows&nbsp;,mac等多操作平台。<br />
</span><span style="color: #000000;">3</span><span style="color: #000000;">、语法加亮<br />
vim可以用不同的颜色来加亮你的代码。<br />
</span><span style="color: #000000;">4</span><span style="color: #000000;">、可视化操作<br />
就是说vim不仅可以在终端运行，也可以运行于x&nbsp;window、&nbsp;mac&nbsp;os、&nbsp;windows。<br />
</span><span style="color: #000000;">5</span><span style="color: #000000;">、对vi的完全兼容<br />
某些情况下，你可以把vim当成vi来使用。</span></div>
<br />
有一点值得提出的是,<strong>vim是为了程序员方便编写程序而开发的编辑器</strong><br />
其中代码高亮，文本折叠，上下文关联补完这些都是针对开发而设置的,并且可以逐行对文本文件进行比较,同事并排显示两个版本的文件<br />
比较两个文件不同之处,可以用diffget和diffput命令对每一处不同进行双向同步,也可以在比较不同时对内容进行其他编辑<br />
vim有她自己的脚本语言，使用脚本语言写成的宏可以实现自动执行复杂的操作。用 -s 选项启动vim,或者直接切换到宏所在目录使用 ':source' 命令都可以执行vim脚本<br />
<br />
不过需要指出的是vim也有它本身的一些<strong>缺点</strong><br />
读取大文件很慢<br />
文件不打,但有非常长的行处理起来也会很慢<br />
vim自得脚本语言过于复杂,缺乏自动执行和窗口管理的命令<br />
存在类似Ctrl-1等不能被映射的键<br />
<br />
最后推荐一个插件<strong>Vrapper</strong>,这个工具是在eclipse中使用vim,下载地址为 http://vrapper.sourceforge.net/home/ ,下载完毕后再eclipse的工具栏上就会新增一个图标,按下就可以进行vim编辑<br />
<br />
<img alt="" src="../../images/blogjava_net/dongbule/vim.png" width="119" height="48" /><br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/338694.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-22 14:57 <a href="http://www.blogjava.net/dongbule/archive/2010/11/22/338694.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>cacti的简介与应用</title><link>http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 02 Nov 2010 09:28:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/336829.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/336829.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/336829.html</trackback:ping><description><![CDATA[上周给同事讲解了cacti的安装及其使用时做了一份ppt,在这里将这份ppt简单梳理一下介绍一下cacti在我们日常工作中的监控使用<br />
<br />
<strong>cacti的结构</strong><br />
在广义上来说cacti是一套网络流量监测图形分析工具,但从狭义来说cacti只是由php语言实现的一个软件,<br />
<br />
它需要PHP,apache,Mysql,SNMP,RRDTool等工具的支持<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/3.png" alt="" border="0" /><br />
从上图可以很明确看出cacti的三层架构之间的关系<br />
第一层是数据采集,通过snmp简单网络协议,和一批自定义的脚本进行采集<br />
第二层是数据存储,分别通过mysql存储cacti的模板和一些一定的信息,RRDTool用来存储所监控到的性能文件,后缀为.rrd<br />
第三层是数据展现,cacti的web方式展现<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/4.png" alt="" border="0" /><br />
<br />
cacti主要功能是用snmp服务获取数据,然后用rrdtool储存和更新数据,当用户需要查看数据的时候,rrdtool生成图表呈现给用户。因此, snmp和rrdtool是cacti的关键,snmp关系着数据的收集，rrdtool关系着数据存储和图表的生成.<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/5.png" alt="" border="0" /><br />
snmp抓到数据不是存储在mysql中而是存在rrdtool生成的rrd文件中,rrdtool对数据的更新和存储就是对rrd文件的处理,rrd 文件是大小固定的档案文件,它能够存储的数据笔数在创建时已经定义.<br />
Mysql配合PHP程序存储一些变量数据并对变量数据进行调用,如：主机名、主机 ip,snmp 团体名、端口号、模板信息等变量。<br />
<br />
<strong>*.SNMP协议</strong><br />
SNMP(简单网络管理协议)前身是简单网关监控协议(SGMP), 用来对通信线路进行管理<br />
&#8595;<br />
加入符合Internet定义的<strong>SMI和MIB</strong>进行体系整合<br />
&#8595;<br />
简单网络管理协议(SNMP)是Internet组织用来管理Internet的网络协议<br />
<br />
<strong>*.MIB &amp; SMI</strong><br />
MIB, 管理信息库，由网络管理协议访问的管理对象数据库，它包括SNMP可以通过网络设备的SNMP管理代理进行设置的变量<br />
SMI,管理信息结构，用于定义通过网络管理协议可访问的对象的规则。SMI定义在MIB中使用的数据类型及网络资源在MIB中的名称或表示。<br />
<br />
<strong>*.SNMP的网络模型</strong><br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/6.png" alt="" border="0" /><br />
使用SNMP进行网络管理需要下面几个重要部分：管理基站，管理代理，管理信息库和网络管理工具。管理基站通常是一个独立的设备，它用作网络管理者进行网 络管理的用户接口。基站上必须装备有管理软件，管理员可以使用的用户接口和从MIB取得信息的数据库，同时为了进行网络管理它应该具备将管理命令发出基站的能力<br />
<br />
注:关于MIB介绍可以看&lt;<a href="http://network.51cto.com/art/201007/209214.htm">SNMP MIB完整手册</a>&gt; <br />
<br />
<strong>*.net-snmp</strong><br />
NET-SNMP是一个代理SNMP协议的软件,并提供管理端的查询工具,支持多种扩展方式<br />
在被监测和监测机器进行安装<br />
http://www.net-snmp.org/download.html <br />
配置<br />
/etc/snmp/snmpd.conf<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/7.png" alt="" border="0" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/8.png" alt="" border="0" /><br />
<br />
设置自启动<br />
/usr/sbin/snmpd -c /usr/local/net-snmp/snmpd.conf &amp;<br />
测试<br />
snmpwalk -v 2c -c public 127.0.0.1<br />
snmpwalk -v 1 -c public 127.0.0.1 .1.3.6.1.4.1.2021.10 (负载检查)<br />
<br />
<strong>*.RRDTool</strong><br />
RRDTool使用RRD（Round Robin Database）作为存储格式，Round robin是一种处理定量数据、以及当前元素指针的技术。RRDTool主要用来跟踪对象的变化情况，生成这些变化的走势图<br />
RRDTool的存储特点<br />
<br />
存储数据的数据库空间看成一个圆<br />
指针会随着数据的读写操作在圆的刻度上自动移动<br />
圆没有起点和终点<br />
当所有的空间都存满了数据，就又从头开始存放<br />
RRDtool 所使用的数据库文件的后缀名是'.rrd'<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/9.png" alt="" border="0" /><br />
<br />
<strong>*.Cacti的安装</strong><br />
<br />
需要安装以下软件<br />
<br />
1)安装Apache,Mysql,PHP<br />
2)安装RRDTool<br />
(cgilib-0.5.tar.gz,zlib-1.2.3.tar.gz,libpng-1.2.18.tar.gz,freetype-2.3.5.tar.gz,libart_lgpl-2.3.17.tar.gz,rrdtool-1.2.23.tar.gz)<br />
3)安装net-snmp<br />
4)安装cacti<br />
<br />
<strong>*.Cacti的配置</strong><br />
修改cacti的config.php<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/10.png" alt="" border="0" /><br />
<br />
新增crontab定时器<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/11.png" alt="" border="0" /><br />
<br />
接下来就可以访问<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/12.png" alt="" width="250" border="0" height="21" /><br />
<br />
<strong>*.进入cacti的设置</strong><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/13.png" alt="" border="0" /><br />
<br />
配置SNMP版本,rrdtool类别,和net-snmp的工具路径<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/17.png" alt="" width="487" border="0" height="366" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/15.png" alt="" border="0" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/cacti/16.png" alt="" border="0" /><br />
<br />
具体的安装配置和应用就不演示,下面是ppt附件,安装和配置有什么问题可以同我联系<br />
<br />
--------------------------------<br />
<br />
补充<br />
有朋友对rrdtools提了一点问题:<br />
<br />
RRDTool保存数据是循环的，而且大小不变。那是不是说，他只能保存一定数量活一段数据，然后保持更新。<br />
比如：RRD只有6个刻度，用来保存一个小时内，每10分钟的流量。从10点10分开始的话，到11点就满了，那么就开始循环刷新了。<br />
11点10分的数据就覆盖了10点10分的数据。<br />
可是如果我分析的没错的话，那数据不就丢失了么？如果想查看历史怎么办呢？<br />
<br />
<br />
因为rrd整个存储空间的大小就是一个固定的值,在一段时间后,当所有空间都存满数据后,就会从头开始存放,所以这涉及到rrdtool的前期规划,以下是截取了http://www.rrdtool.org的说明<br />
<br />
&nbsp;&nbsp;&nbsp; When monitoring the state of a system, it is convenient to have the data available at a constant time interval. Unfortunately, you may not always be able to fetch data at exactly the time you want to. Therefore RRDtool lets you update the log file at any time you want. It will automatically interpolate the value of the data-source (DS) at the latest official time-slot (interval) and write this interpolated value to the log. The original value you have supplied is stored as well and is also taken into account when interpolating the next log entry.<br />
Consolidation<br />
&nbsp;&nbsp;&nbsp; You may log data at a 1 minute interval, but you might also be interested to know the development of the data over the last year. You could do this by simply storing the data in 1 minute intervals for the whole year. While this would take considerable disk space it would also take a lot of time to analyze the data when you wanted to create a graph covering the whole year. RRDtool offers a solution to this problem through its data consolidation feature. When setting up an Round Robin Database (RRD), you can define at which interval this consolidation should occur, and what consolidation function (CF) (average, minimum, maximum, total, last) should be used to build the consolidated values (see rrdcreate). You can define any number of different consolidation setups within one RRD. They will all be maintained on the fly when new data is loaded into the RRD.<br />
Round Robin Archives<br />
&nbsp;&nbsp;&nbsp; Data values of the same consolidation setup are stored into Round Robin Archives (RRA). This is a very efficient manner to store data for a certain amount of time, while using a known and constant amount of storage space.<br />
&nbsp;&nbsp;&nbsp;<strong> It works like this: If you want to store 1'000 values in 5 minute interval, RRDtool will allocate space for 1'000 data values and a header area. In the header it will store a pointer telling which slots (value) in the storage area was last written to. New values are written to the Round Robin Archive in, you guessed it, a round robin manner. This automatically limits the history to the last 1'000 values (in our example). Because you can define several RRAs within a single RRD, you can setup another one, for storing 750 data values at a 2 hour interval, for example, and thus keep a log for the last two months at a lower resolution.</strong><br />
&nbsp;&nbsp;&nbsp; The use of RRAs guarantees that the RRD does not grow over time and that old data is automatically eliminated. By using the consolidation feature, you can still keep data for a very long time, while gradually reducing the resolution of the data along the time axis.<br />
&nbsp;&nbsp;&nbsp; Using different consolidation functions (CF) allows you to store exactly the type of information that actually interests you: the maximum one minute traffic on the LAN, the minimum temperature of your wine cellar, the total minutes of down time, etc.<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
QQ:34174409<br />
Mail: dongbule@163.com<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/336829.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-02 17:28 <a href="http://www.blogjava.net/dongbule/archive/2010/11/02/336829.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VPS之openVPN的安装配置</title><link>http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 01 Nov 2010 09:35:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/336714.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/336714.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/336714.html</trackback:ping><description><![CDATA[上次写的&lt;<a href="http://www.blogjava.net/dongbule/archive/2010/10/12/334650.html">VPS的购买和使用</a>&gt;中提到了openVPN，也做了一点点简单的介绍，有朋友也问了一些关于vpn的问题<br />
首先，我所购买的vps是基于OpenVZ类型，无法配置标准的VPN(无测试过),部分手机可能无法支持,但OpenVZ支持pptp和openVPN<br />
<br />
请登录OPENVPN官网查阅最新资料&lt;http://openvpn.net/&gt;<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/21.png" alt="" width="230" border="0" height="77" /><br />
<br />
ok!在安装之前请确认一下你购买的vps是否开启了tun/tap的支持，burst vps默认是不开启tun/tap的，可以使用cat /dev/net/tun 进行检查<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/2.png" alt="" border="0" /><br />
<br />
如果是没有权限的话可以发个ticket要求客服为你开启tun/tap<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/3.png" alt="" border="0" /><br />
<br />
出现File descriptor in bad state说明tun/tap已经开启，可以开始进行openVPN的安装配置<br />
<br />
我的vps安装的系统为CentOS release 5.5 (Final)，下面一系列安装和配置都在此vps上进行,根据 &lt;<a href="http://www.360doc.com/showWeb/0/0/64213735.aspx">OpenVPN服务器配置（转载）</a>&gt;配置<br />
<br />
<strong>一.服务端安装</strong><br />
<br />
现在开始在vps上安装和配置openVPN，需要的有下列的软件<br />
gcc g++ [gcc g++为系统需要的编译工具]<br />
lzo库&nbsp;&nbsp; [Lzo库的功能是对虚拟链路进行压缩]<br />
openssl [囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议]<br />
openvpn <br />
<br />
<strong>1.安装编译工具gcc g++</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;yum&nbsp;install&nbsp;gcc<br />
#&nbsp;yum&nbsp;install&nbsp;gcc-c++</span></div>
<br />
<br />
<strong>2.安装lzo库</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/home/download/<br />
#&nbsp;wget&nbsp;http://www.oberhumer.com/opensource/lzo/download/lzo-</span><span style="color: rgb(0, 0, 0);">2.03</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;tar&nbsp;-xvzf&nbsp;lzo-</span><span style="color: rgb(0, 0, 0);">2.03</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;cd&nbsp;lzo-</span><span style="color: rgb(0, 0, 0);">2.03</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;./configure&nbsp;-prefix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">/usr/local/lzo&nbsp;&amp;&amp;&nbsp;make&nbsp;&amp;&amp;&nbsp;make&nbsp;install<br />
#&nbsp;vi&nbsp;/etc/ld.so.conf</span></div>
<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/4.png" alt="" border="0" /><br />
<br />
编辑完ld.so.conf,执行<br />
<br />
# ldconfig<br />
<br />
使动态库生效<br />
<br />
<strong>3.安装openssl</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/home/download/<br />
#&nbsp;wget&nbsp;http://www.openssl.org/source/openssl-</span><span style="color: rgb(0, 0, 0);">0.9.8</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;tar&nbsp;-xvzf&nbsp;openssl-</span><span style="color: rgb(0, 0, 0);">0.9.8</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;./config&nbsp;-prefix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">/usr/local/openssl&nbsp;&amp;&amp;&nbsp;make&nbsp;&amp;&amp;&nbsp;make&nbsp;install</span></div>
<br />
<br />
<strong>4.安装openvpn</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/home/download/<br />
#&nbsp;wget&nbsp;http://www.openvpn.net/release/openvpn-</span><span style="color: rgb(0, 0, 0);">2.0.9</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;tar&nbsp;-xvzf&nbsp;openvpn-</span><span style="color: rgb(0, 0, 0);">2.0.9</span><span style="color: rgb(0, 0, 0);">.tar.gz<br />
#&nbsp;cd&nbsp;openvpn-</span><span style="color: rgb(0, 0, 0);">2.0.9</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;./configure&nbsp;-prefix</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">/usr/local/openvpn&nbsp;&amp;&amp;&nbsp;make&nbsp;&amp;&amp;&nbsp;make&nbsp;install</span></div>
<br />
<br />
<strong>二.配置</strong><br />
<br />
<strong>1.创建配置环境</strong><br />
<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);"> </span># mkdir /etc/openvpn<br />
# cp -R /home/download/openvpn-2.0.9/easy-rsa/ /etc/openvpn<br />
# cd /etc/openvpn/easy-rsa/2.0/<br />
# ls<br />
<span style="color: rgb(0, 0, 0);">&nbsp;total&nbsp;</span><span style="color: rgb(0, 0, 0);">112</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">121</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">ca<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">354</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">dh<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">190</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">inter<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">165</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">159</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pass<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">251</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pkcs12<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">270</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">key</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">server<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">215</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">req<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">160</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;build</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">req</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pass<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">430</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;clean</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">all<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">1459</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;inherit</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">inter<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">297</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;list</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">crl<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rw</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">422</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;Makefile<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">7768</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;openssl</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">0.9</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">6</span><span style="color: rgb(0, 0, 0);">.cnf<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">8230</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;openssl.cnf<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;</span><span style="color: rgb(0, 0, 0);">12068</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;pkitool<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rw</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">r</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">8864</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;README<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">894</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;revoke</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">full<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">180</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;sign</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">req<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">1602</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;vars<br />
</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">rwxr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">xr</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">x&nbsp;</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">&nbsp;root&nbsp;root&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">190</span><span style="color: rgb(0, 0, 0);">&nbsp;Oct&nbsp;</span><span style="color: rgb(0, 0, 0);">26</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">03</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">14</span><span style="color: rgb(0, 0, 0);">&nbsp;whichopensslcnf</span></div>
<br />
<br />
结果是程序以及脚本，这个简要的说明一下<br />
<br />
vars&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 脚本，是用来创建环境变量，设置所需要的变量的脚本<br />
clean-all&nbsp;&nbsp;&nbsp; 脚本，是创建生成CA证书及密钥 文件所需要的文件和目录<br />
build-ca&nbsp;&nbsp;&nbsp;&nbsp; 脚本，生成CA证书(交互)<br />
build-dh&nbsp;&nbsp;&nbsp;&nbsp; 脚本，生成Diffie-Hellman文件(交互)<br />
build-key-server 脚本，生成服务器端密钥(交互)<br />
build-key&nbsp;&nbsp;&nbsp; 脚本，生成客户端密钥(交互)<br />
pkitool&nbsp;&nbsp;&nbsp; &nbsp; 脚本，直接使用vars的环境变量设置直接生成证书(非交互)<br />
<br />
<strong>2.生成CA证书及密钥</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;/etc/openvpn/easy-rsa/</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">/<br />
#&nbsp;./vars<br />
NOTE:&nbsp;If&nbsp;you&nbsp;run&nbsp;./clean-all</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">&nbsp;I&nbsp;will&nbsp;be&nbsp;doing&nbsp;a&nbsp;rm&nbsp;-rf&nbsp;on&nbsp;/etc/openvpn/easy-rsa/</span><span style="color: rgb(0, 0, 0);">2.0</span><span style="color: rgb(0, 0, 0);">/keys</span></div>
<br />
注:如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件<br />
<br />
修改vars文件<br />
# vi vars<br />
<br />
export KEY_COUNTRY="CN"<br />
export KEY_PROVINCE="GZ"<br />
export KEY_CITY="guangzhou"<br />
export KEY_ORG="NCS"<br />
export KEY_EMAIL="dongbule@163.com"<br />
<br />
# ./vars <br />
<br />
<strong>3.初始化keys文件夹</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;./clean-all&nbsp;#</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">注:删除/etc/openvpn/easy-rsa/2.0/keys下的文件</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;./build-ca&nbsp;&nbsp;#</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">注:生成一个a&nbsp;1024&nbsp;bit&nbsp;RSA的密钥,writing&nbsp;new&nbsp;private&nbsp;key&nbsp;to&nbsp;'ca.key'</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span></div>
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/5.png" alt="" border="0" /><br />
<br />
一路按回车就可以<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;keys<br />
#&nbsp;ls<br />
ca.crt&nbsp;&nbsp;ca.key&nbsp;&nbsp;index.txt&nbsp;&nbsp;serial</span></div>
<br />
<br />
可以看到生成的ca.crt&nbsp; ca.key文件<br />
<br />
<strong>4.生成Diffie-Hellman文件</strong><br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;..<br />
#&nbsp;./build-dh&nbsp;#</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">注:Generating&nbsp;DH&nbsp;parameters,&nbsp;1024&nbsp;bit&nbsp;long&nbsp;safe&nbsp;prime</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span><span style="color: rgb(0, 0, 0);"><br />
#&nbsp;ls&nbsp;&nbsp;keys<br />
ca.crt&nbsp;&nbsp;ca.key&nbsp;&nbsp;dh1024.pem&nbsp;&nbsp;index.txt&nbsp;&nbsp;serial</span></div>
<br />
注:可以看到生成了1024为的Diffie-Hellman文件<br />
<br />
<strong>5.生成服务器使用的VPN server ca证书</strong><br />
<br />
# ./build-key-server chenyz #[注:其中chenyz是CA证书的一个名字]<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/6.png" alt="" border="0" /><br />
<br />
一路回车,Sign the certificate? [y/n]:y 选择y<br />
<br />
然后把刚才生成的CA证书和密钥copy到/etc/openvpn/下<br />
<br />
# cd keys<br />
# cp ca.crt ca.key chenyz.crt chenyz.key dh1024.pem /etc/openvpn/<br />
<br />
<strong>6.生成客户端CA证书及密钥</strong><br />
<br />
# ./build-key client-chenyz<br />
一路回车,Sign the certificate? [y/n]:y 选择y<br />
<br />
在keys目录下生成了client-chenyz.crt client-chenyz.csr client-chenyz.key三个客户端证书<br />
并且将ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key 五个文件打包,以便客户端vpn<br />
<br />
使用<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">#&nbsp;cd&nbsp;keys<br />
#&nbsp;mkdir&nbsp;userkey<br />
#&nbsp;cp&nbsp;ca.crt&nbsp;ca.key&nbsp;client-chenyz.crt&nbsp;client-chenyz.csr&nbsp;client-chenyz.key&nbsp;userkey/<br />
#&nbsp;tar&nbsp;-zcvf&nbsp;userkey.tar.gz&nbsp;userkey/<br />
userkey/<br />
userkey/ca.crt<br />
userkey/client-chenyz.csr<br />
userkey/ca.key<br />
userkey/client-chenyz.key<br />
userkey/client-chenyz.crt<br />
<br />
#&nbsp;sz&nbsp;userkey.tar.gz<br />
Starting&nbsp;zmodem&nbsp;transfer.&nbsp;&nbsp;Press&nbsp;Ctrl+C&nbsp;to&nbsp;cancel.<br />
Transferring&nbsp;userkey.tar.gz<img src="http://www.blogjava.net/Images/dot.gif" alt="" /><br />
&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">100</span><span style="color: rgb(0, 0, 0);">%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">&nbsp;KB&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">4</span><span style="color: rgb(0, 0, 0);">&nbsp;KB/s&nbsp;</span><span style="color: rgb(0, 0, 0);">00</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">00</span><span style="color: rgb(0, 0, 0);">:</span><span style="color: rgb(0, 0, 0);">01</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">&nbsp;Errors</span></div>
<br />
<br />
使用sz将其下载到windows客户端<br />
<br />
<strong>7.openvpn配置文件</strong><br />
<br />
# cp /home/download/openvpn-2.0.9/sample-config-files/server.conf&nbsp; /etc/openvpn/openvpn.conf<br />
将vpenvpn的原始样例文件复制到/etc/openvpn下,并改名为openvpn.conf,我们将在样例文件上进行修改<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/777.png" alt="" width="426" border="0" height="153" /><br />
使用的端口，默认1194<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/7.png" alt="" border="0" /><br />
使用的协议，默认使用UDP，如果使用HTTP proxy，必须使用TCP协议<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/8.png" alt="" border="0" /><br />
ca:使用build-ca生成的，用于验证客户是证书是否合法<br />
cert:使用build-key-server,Server使用的证书对应的key,注意安全,防止被盗<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/9.png" alt="" border="0" /><br />
dh:生成的加密文件<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/10.png" alt="" border="0" /><br />
通过VPN Server往Client push路由，client通过pull指令获得Server push的所有选项并应用<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/11.png" alt="" border="0" /><br />
可以让客户端之间相互访问直接通过openvpn程序转发<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/12.png" alt="" border="0" /><br />
如果Client使用的CA的Common Name有重复了，或者说客户都使用相同的CA #和keys连接VPN，一定要打开这个选项，否则只允许一个人连接VPN<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/122.png" alt="" border="0" /><br />
对数据进行压缩<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/13.png" alt="" border="0" /><br />
定义用户<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/14.png" alt="" border="0" /><br />
openvpn状态log<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/15.png" alt="" border="0" /><br />
每次重新启动openvpn后保留原有的log信息，新信息追加到文件最后<br />
<br />
<strong>8.启动OpenVPN</strong><br />
<br />
修改完毕后,即可以启动vpn,--daemon为后台守护进程模型启动<br />
/usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/16.png" alt="" border="0" /><br />
<br />
使用netstat -ln 查看1194openvpn的端口是否已经起来<br />
<br />
<strong>二.win客户端的安装和配置</strong><br />
<br />
下载openvpn客户端 http://www.openvpn.net/release/openvpn-2.0.9-install.exe 安装完毕<br />
把刚刚打包的userkey.tar.gz下载解压到 C:\Program Files\OpenVPN\config 目录下<br />
将/home/download/openvpn-2.0.9/sample-config-files/client.conf 也下载到 C:\Program Files\OpenVPN\config 目录下<br />
<br />
接着是配置这个client.conf客户端配置文件<br />
<br />
主要修改有以下几个地方<br />
<br />
dev tun<br />
proto tcp<br />
remote 你的vpn地址 1194<br />
user nobody<br />
group nogroup<br />
ca ca.crt<br />
cert client-chenyz.crt<br />
key client-chenyz.key&nbsp;&nbsp; ##注:文件名和路径必须对应<br />
comp-lzo<br />
redirect-gateway def1<br />
<br />
确保与服务端的配置对应,然后将client.conf修改文件名为client.ovpn,右键点击client.ovpn,选择"Start OpenVPN on this config file"<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/18.png" alt="" border="0" /><br />
可以看到连接已经成功,并且创建了 [本地连接 6] 一条新的链路<br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/19.png" alt="" border="0" /><br />
<br />
<img src="http://www.blogjava.net/images/blogjava_net/dongbule/openvpn/20.png" alt="" border="0" /><br />
<br />
或者你也可以打开C:\Program Files\OpenVPN\bin\openvpn-gui-1.0.3.exe进行连接,双击后会在任务栏里有个小连接图标,变成绿色的话就表明你连接成功<br />
<br />
openvpn的参数配置,感觉不算很多,也比较容易理解,中文的资料也很齐全,大概这个东西在国内还是广泛应用(翻墙^_^)<br />
<br />
如果只是简单的应用,配置倒真的很简单,不过如果真的是要用起来,网段设置和访问控制各种问题真的不少,入是否配置dhcp,是否分配dns,vpn如何和内网通讯,很多很多,因为我只是拿来做代理这里就不细说了<br />
<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
QQ:34174409<br />
Mail: dongbule@163.com<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/336714.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-11-01 17:35 <a href="http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>VPS的购买和使用</title><link>http://www.blogjava.net/dongbule/archive/2010/10/12/334650.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Tue, 12 Oct 2010 07:17:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/10/12/334650.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/334650.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/10/12/334650.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/334650.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/334650.html</trackback:ping><description><![CDATA[先感谢同事梁员外在去年就给我们介绍了VPS,前段时间也购买了一个VPS,使用了一段时间感觉还不错<br />
先介绍一下VPS,下面是一些讲座的笔记,部分内容直接摘自梁员外的ppt<br />
<br />
<strong>What is VPS</strong><br />
<br />
VPS是Virtual Private Servers的简称,也就是我们说的虚拟专用服务器,在一台物理服务器上创建多个相互隔离的虚拟专用服务器。这些虚拟服务器以最大化的效率共享硬件、软件许可证以及管理资源。对其用户和应用程序来讲，每一个VPS平台的运行和管理都与一台独立主机完全相 同，因为每一个VPS均可独立进行重启并拥有自己的root访问权限、用户、IP地址、内存、过程、文件、应用程序、系统函数库以及配置文件。<br />
<br />
<strong>国外的主流VPS类型</strong><br />
<br />
国外的主流VPS类型主要是OpenVZ和XEN,先介绍一下OpenVZ<br />
<br />
<strong>OpenVZ</strong>(Virtuozzo)<br />
SWsoft公司的商用版虚拟化技术，而OpenVZ 则是基于Virtuozzo的开源项目。多个虚拟服务器在一个内核上运行，具有高性能和出色管理等优点.<br />
OpenVZ所创造的虚拟机都使用工作在同一个kernel下。<br />
OpenVZ不提供硬件仿真机制，不过这也让它的扩展性远胜于其他虚拟化产品，每个物理主机可望提供几百个虚拟服务器。<br />
当然,OpenVZ的共享主机设计意味着，运行在 特定服务器上的每个VPS在操作系统内核方面肯定有着同样的基本配置<br />
<br />
这样的好处是：<br />
1、性能好<br />
坏处：<br />
1、任何一个kernel bug都会危及所有的虚拟机,因kernel bug所crash的可能性大大增加。<br />
2、他需要对内核作很多的改动<br />
<br />
<strong>XEN</strong><br />
XEN是采用了准虚拟化（paravirtualization）,这项技术是指，经过改动的操作系统把特权操作指令重定向至功能薄薄的&#8220;hypervisor&#8221;层，而不是直接把它们发送到CPU。特权操作指令是裸机代 码，负责调整虚拟内存以及与设备之间进行通信<br />
客户虚拟机可以使用专用的驱动器或者阵列、现有驱动器上的专用分区，或者安 装在主机上的其中一个文件系统上的磁盘镜像文件<br />
<br />
如果有兴趣了解OpenVZ和XEN的各种性能测试可以看这篇&lt;<a href="http://www.gpxz.com/tech/html/222874.html">谈VPS：Xen与OpenVZ性能测试</a>&gt;&nbsp; <br />
<br />
<strong>Linux下性能上的区别</strong>(网上摘录)<br />
1. Cpu 性能：XEN表现最好，其次是virtuozoo,而vmware 表现一般，virtual server则最差<br />
2. 内存性能：virtuozzo表现突出，其次是XEN，vmware则一般<br />
3. 磁盘IO性能：Virtuozzo表现优秀<br />
4. 网卡性能：virtual server表现较差其他都比较不错<br />
<br />
<strong>在使用上的区别</strong><br />
1. XEN VPS有swap区，OpenVZ VPS没有swap区。<br />
2. OpenVZ更容易在同一台主机上虚拟出大量虚拟主机（可能跟swap有关系），相对XEN更容易被&#8220;超售&#8221;；反过来说，XEN的搭建成本更高，售价更贵。<br />
3. 在同样多的虚拟主机的情况下OpenVZ（VIRTUOZZO）的综合性能应该更好些。但由于XEN 的虚拟子机数目较少，所以使用上会觉得XEN性能更好。<br />
4. OpenVZ不能做到网络设备的完全虚拟，但XEN可以。<br />
<br />
<strong>购买VPS的步骤基本如下</strong><br />
1. 首先有一张国际信用卡(visa)<br />
2. 开通一个Paypal帐号<br />
3. 选择一个VPS供应商，选择VPS机型、操作系统，用Paypal付款<br />
4. 等待开通<br />
<br />
<strong>Paypal信用卡认证</strong><br />
往PayPal帐号中添加信用卡时，PayPal需要对信用卡进行认证，以解除支付限额限制：<br />
1.PayPal会先在信用卡中扣除$1.95美元<br />
2.用户在信用卡账单中查询该笔消费的交易编号<br />
3.用户将该编号中的指定4位数字填入PayPal的认证框中<br />
4.PayPal确认后完成认证，将$1.95美元划回你的PayPal账户中<br />
<br />
下面以我购买的VPS为例,我选择的是burst的Linux VPS (http://www.burst.net)<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/1.png" width="540" height="387" /><br />
<br />
我选择$5.95/MONTH这款,CPU 1000MHZ,内存512MB,硬盘是20GB,还算挺便宜吧<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/2.png" width="563" height="487" /><br />
<br />
接下来是buy now,可以选择os,和Panel,一般是默认,其他的需要钱<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/3.png" width="666" height="410" /><br />
<br />
好了,接下来提交完信息就等待24小时内开通了,如果是美国的工作时间很快就可以开通,如果是美国的休息时间那就等等吧<br />
<br />
我的等待大概接近24小时,终于收到开通的邮件<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/4.png" width="482" height="329" /><br />
<br />
收到的邮件有帐号,密码,ip地址等信息<br />
立即使用VPS Control Panel URL (SSL)的地址进行登录,登录后可以看到vePortal面板<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/5.png" width="722" height="439" /><br />
<br />
你可以在此面板进行电源开关,重启,重装系统,修复pty/tty,ssh终端,进程管理,文件管理等操作等等,下面还有各种查询<br />
<br />
使用Console,可以进行ssh终端的操作,方便吧<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/7.png" width="712" height="273" /><br />
<br />
一般在开通时已经进行了os安装,这里我们还是使用SSH来登录VPS,推荐putty或SecureCRT登录,地址端口,帐号和密码在刚才那封邮件上<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/8.png" width="448" height="430" /><br />
<br />
open<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/9xin.png" width="500" height="69" /><br />
<br />
好了,登录完毕,接下来做几个简单的设置<br />
<strong><br />
让机器支持中文编码</strong><br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">修改&nbsp;/etc/default/locale<br />
LANG=zh_CN.UTF-8<br />
LANGUAGE=zh_CN.UTF-8<br />
LC_ALL=zh_CN.UTF-8</span></div>
<br />
<strong>把美国时区改成中国的</strong><br />
<br />
<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><span style="color: #000000;">dpkg-reconfigure&nbsp;tzdata<br />
选择相应的地区，比如Asia-&gt;Shanghai</span></div>
<br />
<strong>架设代理</strong><br />
<br />
<strong>ssh tunnels</strong><br />
购买VPS的初衷的用来翻墙,这里也粗略介绍一下翻墙的技巧<br />
使用putty的ssh tunnels隧道,浏览器通过这条加密的通道连接到你在国外的VPS上,然后通过你的VPS再访问整个互联网,在putty上配置tunnel,目标设置为Dynamic,添加一个端口(端口随意,别冲突就好),再Add,一个动态转发端口就实现了,接下来你要做的就是把你的浏览器代理为 127.0.0.1:端口号<br />
<br />
<img alt="" src="http://www.blogjava.net/images/blogjava_net/dongbule/vps/10.png" width="446" height="429" /><br />
<br />
<strong>OpenVPN</strong><br />
<br />
当然,我自己是配置了一个vpn作为代理,选择的是openVPN,目前被广泛应用的VPN实现中有三个主流：SSL、IPSec及PPTP,OpenVPN是一个SSL VPN<br />
openVPN的配置有点复杂,等以后有时间再写一篇文来讲述openVPN的过程和碰到的一些问题,基本上OpenVPN的原理是通过使用工业标准SSL/TLS协议实现了OSI 2层及3层安全网络扩展，支持灵活的基于证书、智能卡的客户端认证方法，允许通过在VPN虚拟接口上应用防火墙规则实现用户及组访问控制策略。<br />
<br />
有兴趣请看&lt;<a href="http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html">vps之openvpn的安装和配置</a>&gt;<br />
<br />
<strong>结</strong><br />
好了,以上就是简单的说了说购买VPS的流程和一些应用,安装完毕它就是一台普通的linux服务器,只不过它的机房在美国,可以用来做代理访问<br />
<br />
----------------------------------------<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
QQ:34174409<br />
Mail: chenyz@corp.netease.com
<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/334650.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-10-12 15:17 <a href="http://www.blogjava.net/dongbule/archive/2010/10/12/334650.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用rsync实现windows和linux两系统的文件同步</title><link>http://www.blogjava.net/dongbule/archive/2010/09/06/331237.html</link><dc:creator>陈于喆</dc:creator><author>陈于喆</author><pubDate>Mon, 06 Sep 2010 10:44:00 GMT</pubDate><guid>http://www.blogjava.net/dongbule/archive/2010/09/06/331237.html</guid><wfw:comment>http://www.blogjava.net/dongbule/comments/331237.html</wfw:comment><comments>http://www.blogjava.net/dongbule/archive/2010/09/06/331237.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dongbule/comments/commentRss/331237.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dongbule/services/trackbacks/331237.html</trackback:ping><description><![CDATA[自从dropbox被墙了之后就一直在寻找更好的同步工具,毕竟使用同步工具比什么google doc和网易网盘要爽的多,起码不用上传下载,用了什么PathSync和DBSync都觉得不如dropbox的爽(纯属个人感觉哈).<br />
其实我的需求倒是挺简单的,就是要同步家里和公司两台电脑的一些指定的文件夹,突然想到每天都在使用的rsync,自己配一个吧,反正服务器是现有的,只不过是linux,两台需要同步的电脑都是windows,下面就分享一个rsync如何在windows和linux两个系统中进行文件同步.<br />
<br />
<strong>linux服务端</strong><br />
按照rsync工具<br />
建议采用yum install rsync 或 apt-get install rsync安装,因为方便嘛<br />
安装完毕后<br />
<br />
vi /etc/rsyncd.conf<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">pid&nbsp;file&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;/var/run/rsyncd.pid<br />
uid&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;nobody<br />
gid&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;nobody<br />
max&nbsp;connections&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">36000</span><span style="color: rgb(0, 0, 0);"><br />
log&nbsp;file&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;/var/log/rsync.log<br />
transfer&nbsp;logging&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;yes<br />
log&nbsp;format&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;%t&nbsp;%a&nbsp;%m&nbsp;%f&nbsp;%b<br />
syslog&nbsp;facility&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;local3<br />
syslog&nbsp;facility&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;local5<br />
<br />
</span><span style="color: rgb(128, 0, 0); font-weight: bold;">[</span><span style="color: rgb(128, 0, 0);">test</span><span style="color: rgb(128, 0, 0); font-weight: bold;">]</span><span style="color: rgb(0, 0, 0);"><br />
path&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;/home/html<br />
comment&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;test<br />
list&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;no<br />
read&nbsp;only&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;false<br />
use&nbsp;chroot&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;no<br />
hosts&nbsp;allow&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;*<br />
hosts&nbsp;deny&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;*<br />
#auth&nbsp;users&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;root<br />
#secrets&nbsp;file&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;/etc/rsync_root.pas</span></div>
<br />
上面是全局设置,下面是建立了一个[test]模块,模块下面包含了个性配置,path指定模块的路径,hosts allow可以指定授权访问的ip,其中auth users参数可以设置访问的用户列表,如果不指定,则表示无需密码也可以访问同步,secrets file来用指定密码文件<br />
<br />
vi /etc/rsync_root.pas<br />
<br />
root:123<br />
<br />
当配置完毕后我们启动rsync<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">rsync&nbsp;</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">daemon&nbsp;</span><span style="color: rgb(0, 0, 0);">--</span><span style="color: rgb(0, 0, 0);">config&nbsp;</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">etc</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">rsyncd.conf <br />
</span></div>
<br />
<strong>window客户端</strong><br />
<br />
首先安装cwRsync工具,cwRsync_2.0.10_Installer.zip<br />
<br />
安装完毕后,我们写个批处理来实现下载和上传的功能<br />
<br />
上传:<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">@ECHO&nbsp;OFF<br />
d:<br />
cd&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Program&nbsp;Files\cwRsyncServer\bin</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"><br />
rsync&nbsp;-vzrtopg&nbsp;--progress&nbsp;--delete&nbsp;/cygdrive/e/synchro&nbsp;root@</span><span style="color: rgb(0, 0, 0);">184.82.19.165</span><span style="color: rgb(0, 0, 0);">::test <br />
</span></div>
<br />
其中/cygdrive/e/表示的是windows的E盘<br />
<br />
下载:<br />
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">@ECHO&nbsp;OFF<br />
d:<br />
cd&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Program&nbsp;Files\cwRsyncServer\bin</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"><br />
rsync&nbsp;-vzrtopg&nbsp;--progress&nbsp;--delete&nbsp;root@</span><span style="color: rgb(0, 0, 0);">184.82.19.165</span><span style="color: rgb(0, 0, 0);">::test&nbsp;/cygdrive/e/synchro</span></div>
<br />
好了,写好两个批处理后,把这两个批处理文件放到桌面上去,这样就可以随时随地的同步公司和家里两台电脑的文件,虽然很山寨吧,但用了几天感觉还是挺良好的<br />
<br />
----------------------------------------<br />
<br />
by 陈于喆 <br />
Mail: chenyz@corp.netease.com
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/dongbule/aggbug/331237.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dongbule/" target="_blank">陈于喆</a> 2010-09-06 18:44 <a href="http://www.blogjava.net/dongbule/archive/2010/09/06/331237.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>