<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>王超 - 博客 BLOG &#187; 服务器 网络</title>
	<atom:link href="http://www.wangchao123.com/category/server_net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wangchao123.com</link>
	<description>code player 海盗精神 - 他们向往自由，面对大海胸怀宽广，只拿他们想要的，遵守契约，单纯而且机智。</description>
	<lastBuildDate>Tue, 07 Feb 2012 10:05:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>CVS 配置方法，及实时同步到真实代码 (实时发布)</title>
		<link>http://www.wangchao123.com/2011/12/05/746</link>
		<comments>http://www.wangchao123.com/2011/12/05/746#comments</comments>
		<pubDate>Mon, 05 Dec 2011 09:51:05 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[开发工具软件]]></category>
		<category><![CDATA[服务器 网络]]></category>
		<category><![CDATA[cvs]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=746</guid>
		<description><![CDATA[kill -9 `ps aux&#124;grep commitlog&#124;awk &#8216;{print $2}&#8217;` 建立帐号 #groupadd cvs #useradd  cvsroot -g cvs 检查是否存在cvs端口服务，防火墙需要打开2401的权限。 #more /etc/services &#124; grep cvspserver 看看是否有: cvspserver  2401/tcp #CVS client/server operations cvspserver  2401/udp #CVS client/server operations #vi /etc/xinetd.d/cvspserver service cvspserver { disable = no flags           = REUSE socket_type     = stream wait     [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">kill -9 `ps aux|grep commitlog|awk &#8216;{print $2}&#8217;`</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">建立帐号</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#groupadd cvs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#useradd  cvsroot -g cvs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">检查是否存在cvs端口服务，防火墙需要打开2401的权限。</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#more /etc/services | grep cvspserver</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">看看是否有:</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">cvspserver  2401/tcp #CVS client/server operations</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">cvspserver  2401/udp #CVS client/server operations</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#vi /etc/xinetd.d/cvspserver</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">service cvspserver</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">disable = no</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">flags           = REUSE</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">socket_type     = stream</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">wait            = no</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">user            = root</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">server          = /usr/bin/cvs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">server_args     = -f &#8211;allow-root=/fse/CVS_REP/cvs_docs   &#8211;allow-root=/fse/CVS_REP/cvs_classes pserver</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">log_on_failure  += USERID</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">初始化CVS</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#su cvsroot</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#cvs -d /fse/CVS_REP/cvs_docs init</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#cvs -d /fse/CVS_REP/cvs_classes init</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">重启服务</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#/etc/init.d/xinetd restart</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">检查CVS服务</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#netstat -l | grep cvspserver</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">此处需打开防火墙的 2401 端口（见1_linix.txt），可在windows cmd:<span style="white-space: pre;"> </span>telnet 192.168.1.199 2401 检查是否打开</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">导入程序</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">-先进入到网站的根目录下 cd /ROOT/www/docs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">cvsroot$ cvs -d /fse/CVS_REP/cvs_docs import -m “new www” docs vendor_tag release_tag</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">分配cvs帐号的脚本 adduse</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#!/usr/bin/perl</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># Simple script to take a username and password and</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># return a line suitable for pasting into the CVS</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># password file</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">// 添加用户</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;"># exp: ./adduser.sh wangcy 123456 cvsroot &gt;&gt; cvs_other/CVSROOT/passwd</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">($u,$p,$g)=@ARGV;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">@d=(A..Z,a..z);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">$s=$d[rand(52)].$d[rand52];</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">print $u.”:”.crypt($p,$s).”:”.$g.”\n”;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">提交cvs的同时发布新的代码到docs目录中</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">#vi cvs_other/CVSROOT/loginfo 最后一行增加</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">docs /fse/CVS_REP/cvs_docs/CVSROOT/log.in %s -f /fse/CVS_REP/cvs_docs/CVSROOT/commitlog  -a /fse/docs</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">classes /fse/CVS_REP/cvs_classes/CVSROOT/log.in %s -f /fse/CVS_REP/cvs_classes/CVSROOT/commitlog  -a /fse/classes</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">log.in文件.&#8211;&gt;http://www.cnblogs.com/oxo/articles/472518.html</div>
<p>kill -9 `ps aux|grep commitlog|awk &#8216;{print $2}&#8217;`</p>
<p>______________________________________</p>
<p>建立帐号</p>
<p>#groupadd cvs</p>
<p>#useradd  cvsroot -g cvs</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>检查是否存在cvs端口服务，防火墙需要打开2401的权限。</p>
<p>#more /etc/services | grep cvspserver</p>
<p>看看是否有:</p>
<p>cvspserver  2401/tcp #CVS client/server operations</p>
<p>cvspserver  2401/udp #CVS client/server operations</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>#vi /etc/xinetd.d/cvspserver</p>
<p>service cvspserver</p>
<p>{</p>
<p>disable = no</p>
<p>flags           = REUSE</p>
<p>socket_type     = stream</p>
<p>wait            = no</p>
<p>user            = root</p>
<p>server          = /usr/bin/cvs</p>
<p>server_args     = -f &#8211;allow-root=/fse/CVS_REP/cvs_docs   &#8211;allow-root=/fse/CVS_REP/cvs_classes pserver</p>
<p>log_on_failure  += USERID</p>
<p>}</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>初始化CVS</p>
<p>#su cvsroot</p>
<p>#cvs -d /fse/CVS_REP/cvs_docs init</p>
<p>#cvs -d /fse/CVS_REP/cvs_classes init</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>重启服务</p>
<p>#/etc/init.d/xinetd restart</p>
<p>如果没有 xinetd 可以执行</p>
<p>#yum install xinetd</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>检查CVS服务</p>
<p>#netstat -l | grep cvspserver</p>
<p>此处需打开防火墙的 2401 端口    (如果没有开启防火墙，不用做这一步)</p>
<p>vi  /etc/sysconfig/iptables</p>
<p>在后面加</p>
<p>-A RH-Firewall-1-INPUT -m state &#8211;state NEW -m tcp -p tcp &#8211;dport 2401 -j ACCEPT</p>
<p>可在windows cmd:<span style="white-space:pre"> </span>telnet 192.168.1.199 2401 检查是否打开</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>导入程序</p>
<p>-先进入到网站的根目录下 cd /ROOT/www/docs</p>
<p>cvsroot$ cvs -d /fse/CVS_REP/cvs_docs import -m “new www” docs vendor_tag release_tag</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>分配cvs帐号的脚本 adduse</p>
<p>vi /ROOT/CVS_REP/adduser.sh<br />
给予执行权限<br />
chmod +x <span style="font-size: x-small;"> </span><span style="font-family: Simsun; line-height: normal; font-size: small;"> </span></p>
<p style="font-family: Simsun; line-height: normal; font-size: medium; display: inline !important; ">/ROOT/CVS_REP/adduser.sh</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium; display: inline !important; ">
<p style="font-family: Simsun; line-height: normal; font-size: medium; display: inline !important; ">
<p>以下是文件内容 (”exp,“后面是执行范例，需要在 /ROOT/CVS_REP/文件夹下执行)</p>
<p>#!/usr/bin/perl</p>
<p># Simple script to take a username and password and</p>
<p># return a line suitable for pasting into the CVS</p>
<p># password file</p>
<p>// 添加用户</p>
<p># exp: ./adduser.sh wangcy 123456 cvsroot &gt;&gt; cvs_other/CVSROOT/passwd</p>
<p>($u,$p,$g)=@ARGV;</p>
<p>@d=(A..Z,a..z);</p>
<p>$s=$d[rand(52)].$d[rand52];</p>
<p>print $u.”:”.crypt($p,$s).”:”.$g.”\n”;</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">______________________________________</p>
<p>提交cvs的同时发布新的代码到docs目录中</p>
<p>#vi cvs_other/CVSROOT/loginfo 最后一行增加</p>
<p>docs /fse/CVS_REP/cvs_docs/CVSROOT/log.in %s -f /fse/CVS_REP/cvs_docs/CVSROOT/commitlog  -a /fse/docs</p>
<p>log.in文件内容及说明详见<br />
<a href=" http://www.wangchao123.com/2011/12/05/747"> http://www.wangchao123.com/2011/12/05/747</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2011/12/05/746/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CVS 实时同步到真实代码 实时发布 (转)  附: log.in 及 log_php.pl 文件下载，任选一个即可</title>
		<link>http://www.wangchao123.com/2011/12/05/747</link>
		<comments>http://www.wangchao123.com/2011/12/05/747#comments</comments>
		<pubDate>Mon, 05 Dec 2011 09:50:34 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[开发工具软件]]></category>
		<category><![CDATA[服务器 网络]]></category>
		<category><![CDATA[cvs]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=747</guid>
		<description><![CDATA[文章转自 http://www.cnblogs.com/oxo/articles/472518.html 文件下载 /home/cvsroot/test/CVSROOT/loginfo 文件用于控制仓库中版本变更和目录添加之后，log 信息发送到哪里的控制。 loginfo相当于是一个事件驱动器，只要提交了新的版本到cvs中就会触发里面的程序。 loginfo 文件有一个标准的脚本 hook 形式(参阅 Trigger Scripts)，每一行是一个正则表达式和所执行的命令。它支持 ALL 和 DEFAULT 关键字。 调用任何指定的脚本: commit 每个目录一次，在此目录中的所有文件成功提交之后立即执行。 import 每个 import 一次，完成所有写操作之后立即执行。 add 成功 add 到目录之后立即执行。 通过 loginfo 调用的任何脚本会从标准输入获得 log 信息。注意过滤程序 必须 从标准输入读 所有 的 log 信息，否则 cvs 将因管道信号打断而失败。 除了通用格式化字符串以外(参阅 syntax)，loginfo 还支持: {stVv} 文件属性，其中: s    文件名 T    目标的标签名，或者在没有相关标签的时候为空字串(通常是主干) V    旧版本号(提交前) v    新版本号(提交后) 例如，有效的格式化字符串是 [...]]]></description>
			<content:encoded><![CDATA[<p>文章转自</p>
<p style="font-family: Simsun; line-height: normal; font-size: medium;">http://www.cnblogs.com/oxo/articles/472518.html</p>
<p><a href="/file.rar">文件下载</a></p>
<div style="width:400px">
<table border="0" cellspacing="0" cellpadding="0" width="600">
<tbody>
<tr>
<td style="font-size: 12px; color: #303030; font-family: Verdana, Helvetica, Arial; word-break: break-all; line-height: 18px;" valign="top">
<table style="border: 1px dashed #cccccc;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td style="font-size: 12px; color: #303030; font-family: Verdana, Helvetica, Arial; word-break: break-all; line-height: 18px;">
<div style="font-size: 12px; text-align: justify; word-break: break-all;">
<div style="background-color: white; color: #4b4b4b; padding: 10px; border: 1px dotted #000000;">
<div style="margin-top: 10px;  font-size: 12px; color: #303030; background-repeat: no-repeat no-repeat;">
<div id="cnblogs_post_body">
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">/home/cvsroot/test/CVSROOT/loginfo 文件用于控制仓库中版本变更和目录添加之后，log 信息发送到哪里的控制。 loginfo相当于是一个事件驱动器，只要提交了新的版本到cvs中就会触发里面的程序。</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">loginfo 文件有一个标准的脚本 hook 形式(参阅 Trigger Scripts)，每一行是一个正则表达式和所执行的命令。它支持 ALL 和 DEFAULT 关键字。</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">调用任何指定的脚本:</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">commit<br />
每个目录一次，在此目录中的所有文件成功提交之后立即执行。</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">import<br />
每个 import 一次，完成所有写操作之后立即执行。</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">add<br />
成功 add 到目录之后立即执行。<br />
通过 loginfo 调用的任何脚本会从标准输入获得 log 信息。注意过滤程序 必须 从标准输入读 所有 的 log 信息，否则 cvs 将因管道信号打断而失败。</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">除了通用格式化字符串以外(参阅 syntax)，loginfo 还支持:</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">{stVv}<br />
文件属性，其中:<br />
s    文件名</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">T    目标的标签名，或者在没有相关标签的时候为空字串(通常是主干)</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">V    旧版本号(提交前)</p>
<p style="margin-top: 5px; margin-right: auto; margin-bottom: 5px; margin-left: auto; text-indent: 0px;">v    新版本号(提交后)<br />
例如，有效的格式化字符串是 `%%&#8217;, `%s&#8217;, `%{s}&#8217; 和 `%{stVv}&#8217;。</p>
<p>我们了解了loginfo的功能以后就知道我要做什么，我们将提交到cvs里面的版本能不能直接发行，这样岂不是很方便。下面这个程序就解决了这样的问题。原来程序只是作为版本修改通知，现在我改进以后同时支持发布了。</p>
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 600px; word-break: break-all; padding-top: 4px; background-color: #eeeeee; border: 1px solid #cccccc;"><img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #000000;">#! </span><span style="color: #000000;">/</span><span style="color: #000000;">usr</span><span style="color: #000000;">/</span><span style="color: #000000;">bin</span><span style="color: #000000;">/</span><span style="color: #000000;">perl<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># </span><span style="color: #000000;">-*-</span><span style="color: #000000;">Perl</span><span style="color: #000000;">-*-</span><span style="color: #000000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># Usage: </span><span style="color: #0000ff;">log</span><span style="color: #000000;">.pl [</span><span style="color: #000000;">-</span><span style="color: #000000;">u user] [[</span><span style="color: #000000;">-</span><span style="color: #000000;">m mailto] ] [</span><span style="color: #000000;">-</span><span style="color: #000000;">s] [</span><span style="color: #000000;">-</span><span style="color: #000000;">V] </span><span style="color: #000000;">-</span><span style="color: #000000;">a </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">execution dir&#8217; -f logfile &#8217;dirname file &#8217;</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># </span><span style="color: #000000;">-</span><span style="color: #000000;">u user </span><span style="color: #000000;">-</span><span style="color: #000000;"> $USER passed from loginfo<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># </span><span style="color: #000000;">-</span><span style="color: #000000;">m mailto </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> </span><span style="color: #0000ff;">each</span><span style="color: #000000;"> user </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> receive cvs </span><span style="color: #0000ff;">log</span><span style="color: #000000;"> reports<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#                       (multiple </span><span style="color: #000000;">-</span><span style="color: #000000;">m</span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">s permitted)</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"># </span><span style="color: #000000;">-</span><span style="color: #000000;">s </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> prevent </span><span style="color: #000000;">“</span><span style="color: #000000;">cvs status -v</span><span style="color: #000000;">“</span><span style="color: #000000;"> messages<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># </span><span style="color: #000000;">-</span><span style="color: #000000;">V </span><span style="color: #000000;">-</span><span style="color: #000000;"> without </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-s&#8217;, don&#8217;t pass &#8217;-v&#8217; to cvs status</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"># </span><span style="color: #000000;">-</span><span style="color: #000000;">a dirname </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> specify actual execution directory<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># </span><span style="color: #000000;">-</span><span style="color: #000000;">f logfile </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> the logfile </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> append </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> (mandatory,<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#                       but only one logfile can be specified).<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />use strict;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />use IO::File;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $cvsroot </span><span style="color: #000000;">=</span><span style="color: #000000;"> $ENV{</span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">CVSROOT&#8217;};</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># turn off setgid<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$) </span><span style="color: #000000;">=</span><span style="color: #000000;"> $(;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $dostatus </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $verbosestatus </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $users;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $login;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $donefiles;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $logfile;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $activedir;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my @files;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># parse command line arguments<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (@ARGV) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $arg </span><span style="color: #000000;">=</span><span style="color: #000000;"> shift @ARGV;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($arg eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-m&#8217;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> $users </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">“</span><span style="color: #000000;">$users </span><span style="color: #000000;">“</span><span style="color: #000000;"> . shift @ARGV;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> } elsif ($arg eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-u&#8217;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> $login </span><span style="color: #000000;">=</span><span style="color: #000000;"> shift @ARGV;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> } elsif ($arg eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-f&#8217;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> ($logfile) </span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;"> die </span><span style="color: #000000;">“</span><span style="color: #000000;">Too many &#8217;-f&#8217; args</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $logfile </span><span style="color: #000000;">=</span><span style="color: #000000;"> shift @ARGV;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> } elsif ($arg eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-a&#8217;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> $activedir </span><span style="color: #000000;">=</span><span style="color: #000000;"> shift @ARGV;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> } elsif ($arg eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-s&#8217;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> $dostatus </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> } elsif ($arg eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-V&#8217;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> $verbosestatus </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> } </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> ($donefiles) </span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;"> die </span><span style="color: #000000;">“</span><span style="color: #000000;">Too many arguments!\n</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $donefiles </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> @files </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">split</span><span style="color: #000000;">(</span><span style="color: #000000;">/</span><span style="color: #000000;"> </span><span style="color: #000000;">/</span><span style="color: #000000;">, $arg);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># the first argument </span><span style="color: #0000ff;">is</span><span style="color: #000000;"> the module location relative </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> $CVSROOT<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $modulepath </span><span style="color: #000000;">=</span><span style="color: #000000;"> shift @files;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $mailcmd </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">“</span><span style="color: #000000;">| Mail -s &#8217;CVS update: $modulepath&#8217;</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># Initialise some </span><span style="color: #0000ff;">date</span><span style="color: #000000;"> </span><span style="color: #0000ff;">and</span><span style="color: #000000;"> </span><span style="color: #0000ff;">time</span><span style="color: #000000;"> arrays<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my @mos </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">January&#8217;,'February&#8217;,'March&#8217;,'April&#8217;,'May&#8217;,'June&#8217;,'July&#8217;,</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">August&#8217;,'September&#8217;,'October&#8217;,'November&#8217;,'December&#8217;);</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">my @days </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">Sunday&#8217;,'Monday&#8217;,'Tuesday&#8217;,'Wednesday&#8217;,'Thursday&#8217;,'Friday&#8217;,'Saturday&#8217;);</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my ($sec,$min,$</span><span style="color: #0000ff;">hour</span><span style="color: #000000;">,$mday,$mon,$</span><span style="color: #0000ff;">year</span><span style="color: #000000;">,$wday,$yday,$isdst) </span><span style="color: #000000;">=</span><span style="color: #000000;"> localtime;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$</span><span style="color: #0000ff;">year</span><span style="color: #000000;"> </span><span style="color: #000000;">+=</span><span style="color: #000000;"> </span><span style="color: #000000;">1900</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># </span><span style="color: #0000ff;">get</span><span style="color: #000000;"> a login name </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> the guy doing the commit.<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($login eq </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">&#8216;) {</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> $login </span><span style="color: #000000;">=</span><span style="color: #000000;"> getlogin || (getpwuid($</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">))[</span><span style="color: #000000;">0</span><span style="color: #000000;">] || </span><span style="color: #000000;">“</span><span style="color: #000000;">nobody</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># open </span><span style="color: #0000ff;">log</span><span style="color: #000000;"> file </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> appending<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $logfh </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> IO::File </span><span style="color: #000000;">“</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">“</span><span style="color: #000000;"> . $logfile<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">or</span><span style="color: #000000;"> die </span><span style="color: #000000;">“</span><span style="color: #000000;">Could not open(</span><span style="color: #000000;">“</span><span style="color: #000000;"> . $logfile . </span><span style="color: #000000;">“</span><span style="color: #000000;">): $!\n</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># send mail, </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> there</span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">s anyone to send to!</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $mailfh;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($users) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailcmd </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">“</span><span style="color: #000000;">$mailcmd $users</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> IO::File $mailcmd<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">or</span><span style="color: #000000;"> die </span><span style="color: #000000;">“</span><span style="color: #000000;">Could not Exec($mailcmd): $!\n</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># print out the </span><span style="color: #0000ff;">log</span><span style="color: #000000;"> Header<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">****************************************\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:</span><span style="color: #000000;">“</span><span style="color: #000000;"> . sprintf(</span><span style="color: #000000;">“</span><span style="color: #000000;">%02d</span><span style="color: #000000;">“</span><span style="color: #000000;">, $min) . </span><span style="color: #000000;">“</span><span style="color: #000000;">\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">Author:\t$login\n\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($mailfh) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">Date:\t$days[$wday] $mos[$mon] $mday, $year @ $hour:</span><span style="color: #000000;">“</span><span style="color: #000000;"> . sprintf(</span><span style="color: #000000;">“</span><span style="color: #000000;">%02d</span><span style="color: #000000;">“</span><span style="color: #000000;">, $min) . </span><span style="color: #000000;">“</span><span style="color: #000000;">\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">Author:\t$login\n\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># print the stuff from logmsg that comes in </span><span style="color: #0000ff;">on</span><span style="color: #000000;"> stdin </span><span style="color: #0000ff;">to</span><span style="color: #000000;"> the logfile<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $infh </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> IO::File </span><span style="color: #000000;">“</span><span style="color: #000000;">&lt; -</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $cno </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $cdir;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />foreach ($infh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">getlines) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> #print(</span><span style="color: #000000;">“</span><span style="color: #000000;">cc-&gt; $_</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">($cno </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">){<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $ff </span><span style="color: #000000;">=</span><span style="color: #000000;"> $_;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my @nw </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">split</span><span style="color: #000000;"> (</span><span style="color: #000000;">/</span><span style="color: #000000;">:</span><span style="color: #000000;">/</span><span style="color: #000000;">, $ff) ;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $cdir </span><span style="color: #000000;">=</span><span style="color: #000000;"> @nw[</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($mailfh) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">$_</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $cno</span><span style="color: #000000;">++</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />undef $infh;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#print(</span><span style="color: #000000;">“</span><span style="color: #000000;">cdir=$cdir</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $adir </span><span style="color: #000000;">=</span><span style="color: #000000;"> substr $cdir, </span><span style="color: #000000;">0</span><span style="color: #000000;">, length($cdir) </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />#my $asubdir </span><span style="color: #000000;">=</span><span style="color: #000000;"> substr $cdir, </span><span style="color: #000000;">18</span><span style="color: #000000;"> ;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $asubdir </span><span style="color: #000000;">=</span><span style="color: #000000;"> substr ($cdir, index($cdir,</span><span style="color: #000000;">“</span><span style="color: #000000;">/</span><span style="color: #000000;">“</span><span style="color: #000000;">,</span><span style="color: #000000;">5</span><span style="color: #000000;">) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">) ;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />chomp $asubdir;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $ain </span><span style="color: #000000;">=</span><span style="color: #000000;"> index($modulepath,</span><span style="color: #000000;">“</span><span style="color: #000000;">/</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />my $mopath_sub </span><span style="color: #000000;">=</span><span style="color: #000000;"> substr ($modulepath, $ain</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /># after </span><span style="color: #0000ff;">log</span><span style="color: #000000;"> information, </span><span style="color: #0000ff;">do</span><span style="color: #000000;"> an </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">cvs -Qq status -v&#8217; on each file in the arguments.</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">#<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($dostatus !</span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (@files) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $file </span><span style="color: #000000;">=</span><span style="color: #000000;"> shift @files;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($file eq </span><span style="color: #000000;">“</span><span style="color: #000000;">-</span><span style="color: #000000;">“</span><span style="color: #000000;">) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">[input file was '-']\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($mailfh) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print (</span><span style="color: #000000;">“</span><span style="color: #000000;">[input file was '-']\n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> exec </span><span style="color: #000000;">“</span><span style="color: #000000;">mkdir -m 755 $activedir/$mopath_sub</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> #die </span><span style="color: #000000;">“</span><span style="color: #000000;">file transfer for latest version failed: $!</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> last;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $rcsfh </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> IO::File;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $pid </span><span style="color: #000000;">=</span><span style="color: #000000;"> $rcsfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">open (</span><span style="color: #000000;">“</span><span style="color: #000000;">-|</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ( !defined $pid )<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> die </span><span style="color: #000000;">“</span><span style="color: #000000;">fork failed: $!</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($pid </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my @command </span><span style="color: #000000;">=</span><span style="color: #000000;"> (</span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">cvs&#8217;, &#8217;-nQq&#8217;, &#8217;status&#8217;);</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($verbosestatus)<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> push @command, </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">-v&#8217;;</span><span style="color: #008000;"><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;"> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> push @command, $file;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> exec @command;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> die </span><span style="color: #000000;">“</span><span style="color: #000000;">cvs exec failed: $!</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $line;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> ($line </span><span style="color: #000000;">=</span><span style="color: #000000;"> $rcsfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">getline) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print ($line);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($mailfh) {<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">print ($line);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> #print(</span><span style="color: #000000;">“</span><span style="color: #000000;">cp $adir/$file $activedir/$mopath_sub,$asubdir \n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> print (</span><span style="color: #000000;">“</span><span style="color: #000000;">\n  Active Dir : $activedir/$asubdir  \n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index($asubdir,</span><span style="color: #000000;">“</span><span style="color: #000000;">src/</span><span style="color: #000000;">“</span><span style="color: #000000;">)</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> my $tmp_2</span><span style="color: #000000;">=</span><span style="color: #000000;">substr $asubdir,</span><span style="color: #000000;">4</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $asubdir </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">“</span><span style="color: #000000;">WebRoot/WEB-INF/classes/$tmp_2</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #000000;">-</span><span style="color: #000000;">d </span><span style="color: #000000;">“</span><span style="color: #000000;">$activedir/$asubdir</span><span style="color: #000000;">“</span><span style="color: #000000;">){<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> print(</span><span style="color: #000000;">“</span><span style="color: #000000;">Dir exists:$activedir/$asubdir \n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> exec </span><span style="color: #000000;">“</span><span style="color: #000000;">mkdir -p $activedir/$asubdir</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> print(</span><span style="color: #000000;">“</span><span style="color: #000000;">cp $adir/$file $activedir/$asubdir \n</span><span style="color: #000000;">“</span><span style="color: #000000;">);<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index($asubdir,</span><span style="color: #000000;">“</span><span style="color: #000000;">/tmp/cvs-</span><span style="color: #000000;">“</span><span style="color: #000000;">)</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> exec </span><span style="color: #000000;">“</span><span style="color: #000000;">cp $adir/$file $activedir</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> exec </span><span style="color: #000000;">“</span><span style="color: #000000;">cp $adir/$file $activedir/$asubdir</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> #die </span><span style="color: #000000;">“</span><span style="color: #000000;">file transfer for latest version failed: $!</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> undef $rcsfh;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> }<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />$logfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">close()<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">or</span><span style="color: #000000;"> die </span><span style="color: #000000;">“</span><span style="color: #000000;">Write to $logfile failed: $!</span><span style="color: #000000;">“</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">if</span><span style="color: #000000;"> ($mailfh)<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />{<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> $mailfh</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">close;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /> die </span><span style="color: #000000;">“</span><span style="color: #000000;">Pipe to $mailcmd failed</span><span style="color: #000000;">“</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> $?;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />}<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />## must </span><span style="color: #0000ff;">exit</span><span style="color: #000000;"> cleanly<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />##<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">exit</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
<img style="border: 0px initial initial;" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span></div>
</div>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2011/12/05/747/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux下搜索文件内容 &#8211; find和xargs以及grep的合作</title>
		<link>http://www.wangchao123.com/2009/11/17/395</link>
		<comments>http://www.wangchao123.com/2009/11/17/395#comments</comments>
		<pubDate>Tue, 17 Nov 2009 06:51:52 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[服务器 网络]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=395</guid>
		<description><![CDATA[find query.log &#124; xargs grep “感冒”             ( 在query.log文件中查找“感冒”) find /fse/ &#124; xargs grep  “感冒”                       (在 fse 文件夹中搜索 “感冒”) xargs &#8211; build and execute command lines from standard input This manual page documents the GNU version of xargs.  xargs reads items from        the standard input, delimited by blanks (which can be protected with  double        or  single  [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">find query.log | xargs grep “感冒”</span>             ( 在query.log文件中查找“感冒”)</p>
<p><span style="color: #ff0000;">find /fse/ | xargs grep  “感冒”</span>                       (在 fse 文件夹中搜索 “感冒”)</p>
<p>xargs &#8211; build and execute command lines from standard input<br />
This manual page documents the GNU version of xargs.  xargs reads items from<br />
       the standard input, delimited by blanks (which can be protected with  double<br />
       or  single  quotes  or  a  backslash)  or newlines, and executes the command<br />
       (default is /bin/echo) one or more times with any initial-arguments followed<br />
       by  items  read  from standard input.  Blank lines on the standard input are<br />
       ignored.     默认情况下：xargs是忽略了空格和线这些文件名。让查找跟准确。 Because Unix  filenames  can  contain  blanks  and  newlines,  this  default<br />
       behaviour  is often problematic; filenames containing blanks and/or newlines<br />
       are incorrectly processed by xargs.  In these situations it is better to use<br />
       the  `-0&#8242; option, which prevents such problems.   When using this option you<br />
       will need to ensure that the program which produces the input for xargs also<br />
       uses a null character as a separator.  If that program is GNU find for exam-<br />
       ple, the `-print0&#8242; option does this for you.        If any invocation of the command exits with a status of 255, xargs will stop<br />
       immediately  without  reading any further input.  An error message is issued<br />
       on stderr when this happens.  </p>
<p>也就是说查找的文件中如果含有空格和线，者xargs会出现报错。当加上-o后，他就可以识别。</p>
<p> </p>
<p>find /tmp -name core -type f -print | xargs /bin/rm -f</p>
<p>       Find files named core in or below the directory /tmp and delete them.  Note that this will work incorrectly if there  are<br />
       any filenames containing newlines or spaces.</p>
<p>       find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f</p>
<p>       Find  files  named  core  in or below the directory /tmp and delete them, processing filenames in such a way that file or<br />
       directory names containing spaces or newlines are correctly handled.</p>
<p>注意，向find /tmp -name core -type f -print | xargs /bin/rm –f如果改成：</p>
<p> </p>
<p>xargs 的作用是输入重定向。</p>
<p>Find /tmp –name core –type f –print |rm –f 则不会起作用。</p>
<p>cut -d: -f1 &lt; /etc/passwd | sort | xargs echo<br />
 Debian-exim backup bin cjl daemon games gnats  irc  list lp mail man news nobody proxy root snmp sshd sync sys uucp www-data xiaowang</p>
<p>从这个命令更可以看出他的输入重定向功能。 </p>
<p> </p>
<p>sudo find /home/liangyin/mrtgbackup/ -type f  -print|xargs grep -rl “10.163.28.3.*”</p>
<p> </p>
<p> </p>
<p>/home/liangyin/mrtgbackup/b/mrtg/10.163.28.3_146800777.html</p>
<p>/home/liangyin/mrtgbackup/b/mrtg/10.163.28.3_146800785.html</p>
<p>/home/liangyin/mrtgbackup/b/mrtg/10.163.28.3_146800793.html</p>
<p>/home/liangyin/mrtgbackup/b/mrtg/10.163.28.3_146800801.html</p>
<p>/home/liangyin/mrtgbackup/b/mrtg/10.163.28.3_146800809.html</p>
<p>/home/liangyin/mrtgbackup/b/mrtg/10.163.28.3_146800817.html</p>
<p> </p>
<p> </p>
<p>-R, -r, &#8211;recursive</p>
<p>              Read all files under each directory, recursively; this is equivalent  to  the  -d  recurse</p>
<p>              option.</p>
<p> </p>
<p>-l, &#8211;files-with-matches</p>
<p>              Suppress normal output; instead print the name of each input file from which output  would</p>
<p>              normally have been printed.  The scanning will stop on the first match.</p>
<p> </p>
<p>-l 的意思找到内容后输出的是文件的形式，不是文件的内容。</p>
<p> </p>
<p>而grep 默认情况下：输出的是文件的内容。</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p>find -type f -name &#8216;*.png&#8217; | xargs -n1  | while read ABC; do echo $ABC &amp;&amp; mv $ABC ${ABC%.png}.gif ; done</p>
<p> </p>
<p>这里-n 意思是一个传N个选项给命令。这样查找更准确。</p>
<p> </p>
<p>find -type f -name &#8216;*.png&#8217; |while read ABC; do mv  $ABC ${ABC%.png}.gif;done</p>
<p>可以用这个命令来实现。注意：%</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/11/17/395/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Media Services 9 流媒体服务器架设 &#8211; 搭建自己的网络电台</title>
		<link>http://www.wangchao123.com/2009/06/13/198</link>
		<comments>http://www.wangchao123.com/2009/06/13/198#comments</comments>
		<pubDate>Fri, 12 Jun 2009 18:10:09 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[开源软件]]></category>
		<category><![CDATA[服务器 网络]]></category>
		<category><![CDATA[流媒体服务器]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=198</guid>
		<description><![CDATA[Windows Media Services （WMS）  是基于windows的流媒体服务器，流媒体播放形式不是完整的播放一个文件，而是以数据包的形式实时播放当前的内容。由于网站的需求我查询了网上的资料和文档，完成了搭建，成功的并且看到同时几十个人在用这个功能的时候还是很兴奋的 :) 下面是效果（点击播放器里面的 stop 键可以停止播放）边听音乐边看~，里面有每天12小时不同的 DJ 音乐    点击用 windows mediaplayer 播放 下面分享下搭建过程: Windows 2003 server 自带 Windows Media Services 默认没有安装，用系统盘安装一下 会有同时安装一个 windows media 编码器   点击打开 wms 服务器界面 熟悉iis 的朋友会发现和 IIS 的界面非常相似 右键点击“发布点”→ 点击“添加发布点( 向导)”→ 下一步 →   填写发布点名称 →  内容类型选择 “一个播放列表”  → 发布点类型 “广播发布点”→ 广播电传输选项 “单播”→ 新建播放列表 （其实就是一个windows media player 的播放列表 wsx文件）→ 添加媒体元素 [...]]]></description>
			<content:encoded><![CDATA[<p><!--播放器 开始 http://image.clubzone.cn/radiofiles/linkin_park.wma--></p>
<p>Windows Media Services （WMS）  是基于windows的流媒体服务器，流媒体播放形式不是完整的播放一个文件，而是以数据包的形式实时播放当前的内容。由于网站的需求我查询了网上的资料和文档，完成了搭建，成功的并且看到同时几十个人在用这个功能的时候还是很兴奋的 :)</p>
<p>下面是效果（点击播放器里面的 stop 键可以停止播放）边听音乐边看~，里面有每天12小时不同的 DJ 音乐 </p>
<p><object classid="clsid:6bf52a52-394a-11d3-b153-00c04f79faa6" width="518" height="63" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"><param name="id" value="player" /><param name="AutoStart" value="-1" /><param name="Balance" value="0" /><param name="enabled" value="-1" /><param name="EnableContextMenu" value="-1" /><param name="url" value="mms://radio.clubzone.cn/czradio" /><param name="PlayCount" value="1" /><param name="rate" value="1" /><param name="currentPosition" value="0" /><param name="currentMarker" value="0" /><param name="invokeURLs" value="0" /><param name="stretchToFit" value="0" /><param name="volume" value="50" /><param name="mute" value="0" /><param name="uiMode" value="mini" /><param name="windowlessVideo" value="0" /><param name="fullScreen" value="0" /><param name="enableErrorDialogs" value="-1" /><embed id="player" type="application/x-mplayer2" width="518" height="63" enableerrordialogs="-1" fullscreen="0" windowlessvideo="0" uimode="mini" stretchtofit="0" invokeurls="0" currentmarker="0" currentposition="0" playcount="1" enablecontextmenu="-1" balance="0" autostart="-1" mute="0" volume="50" rate="1" enabled="-1" url="mms://radio.clubzone.cn/czradio"></embed></object> </p>
<p><a href="mms://radio.clubzone.cn/czradio">点击用 windows mediaplayer 播放</a></p>
<p><a href="mms://radio.clubzone.cn/czradio"></a></p>
<h1>下面分享下搭建过程:</h1>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span lang="EN-US"><span style="font-family: Calibri;">Windows 2003 server </span></span><span style="font-family: 宋体; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin;">自带</span><span style="font-family: Calibri;"> </span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">Windows Media Services </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: Georgia; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Georgia;">默认没有安装，用系统盘安装一下</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: Georgia; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Georgia;">会有同时安装一个</span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> windows media </span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-ascii-font-family: Georgia; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: Georgia;">编码器</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <img class="alignnone size-full wp-image-213" title="e696b0e59bbee78987" src="http://www.wangchao123.com/wp-content/uploads/2009/06/e696b0e59bbee78987.bmp" alt="e696b0e59bbee78987" /> 点击打开 wms 服务器界面</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><img class="alignnone size-full wp-image-214" title="11" src="http://www.wangchao123.com/wp-content/uploads/2009/06/11.jpg" alt="11" width="600" height="455" /></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">熟悉iis 的朋友会发现和 IIS 的界面非常相似</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">右键点击“发布点”→</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">点击“添加发布点( 向导)”→ 下一步 → </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> 填写发布点名称 → </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">内容类型选择 “一个播放列表”  →</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">发布点类型 “广播发布点”→</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">广播电传输选项 “单播”→</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">新建播放列表 （其实就是一个windows media player 的播放列表 wsx文件）→</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">添加媒体元素 （这时候就可以选一些需要播放的文件进去，）→</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><img class="alignnone size-full wp-image-215" title="211" src="http://www.wangchao123.com/wp-content/uploads/2009/06/211.jpg" alt="211" width="462" height="352" /></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">（这里测试了 wma, wmv , asf 格式的文件可以完美的播放，建议用这两种格式，是微软自己的媒体格式）</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">下一步“内容播放”选择“循环播放”→ </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">一直下一步 填写服务器名称 例如 “mms://IMAGEWEB/test2&#8243; →</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">“发布点”出现<img class="aligncenter size-full wp-image-216" title="212" src="http://www.wangchao123.com/wp-content/uploads/2009/06/212.jpg" alt="212" width="92" height="29" /> 说明已经开始提供播放服务了，至此一个简单的电台就做好了</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">编写 radio.html 文件如下</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">————————————————————</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> &lt;object classid=”clsid:6bf52a52-394a-11d3-b153-00c04f79faa6&#8243; width=”518&#8243; height=”63&#8243; codebase=”<a href="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701">http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701</a>“&gt;<br />
&lt;param name=”id” value=”player” /&gt;<br />
&lt;param name=”AutoStart” value=”-1&#8243; /&gt;<br />
&lt;param name=”Balance” value=”0&#8243; /&gt;<br />
&lt;param name=”enabled” value=”-1&#8243; /&gt;<br />
&lt;param name=”EnableContextMenu” value=”-1&#8243; /&gt;<br />
&lt;param name=”url” value=”<span style="color: #ff0000;">mms://localhost/test2</span>” /&gt;   <br />
&lt;param name=”PlayCount” value=”1&#8243; /&gt;<br />
&lt;param name=”rate” value=”1&#8243; /&gt;<br />
&lt;param name=”currentPosition” value=”0&#8243; /&gt;<br />
&lt;param name=”currentMarker” value=”0&#8243; /&gt;<br />
&lt;param name=”invokeURLs” value=”0&#8243; /&gt;<br />
&lt;param name=”stretchToFit” value=”0&#8243; /&gt;<br />
&lt;param name=”volume” value=”50&#8243; /&gt;<br />
&lt;param name=”mute” value=”0&#8243; /&gt;<br />
&lt;param name=”uiMode” value=”mini” /&gt;<br />
&lt;param name=”windowlessVideo” value=”0&#8243; /&gt;<br />
&lt;param name=”fullScreen” value=”0&#8243; /&gt;<br />
&lt;param name=”enableErrorDialogs” value=”-1&#8243; /&gt;<br />
&lt;embed id=”player” type=”application/x-mplayer2&#8243; width=”518&#8243; height=”63&#8243; enableerrordialogs=”-1&#8243; fullscreen=”0&#8243; windowlessvideo=”0&#8243; uimode=”mini” stretchtofit=”0&#8243; invokeurls=”0&#8243; currentmarker=”0&#8243; currentposition=”0&#8243; playcount=”1&#8243; enablecontextmenu=”-1&#8243; balance=”0&#8243; autostart=”-1&#8243; mute=”0&#8243; volume=”50&#8243; rate=”1&#8243; enabled=”-1&#8243; url=”mms://radio.clubzone.cn/czradio”&gt;<br />
&lt;/embed&gt;<br />
&lt;/object&gt;</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">————————————————————————————————————————————————————————</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #ff0000;">PS ：mms://localhost/test  替换成你的播放器地址 可以使远程服务器</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #000000;">双击 radio.html 你就会发现网页里嵌套了一个播放器~~</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"> </p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #000000;">想要动态播放列表的朋友可以研究一下用 asp 等动态语言控制 wsx 播放列表，下边是我写的一个一周播放列表  main_week1.wsx </span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #000000;">————————————————————————————————————————————————————</span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="color: #000000;">&lt;?wsx version=”1.0&#8243; encoding=”utf-8&#8243;?&gt;<br />
&lt;smil&gt;<br />
    &lt;excl&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\1.wsx” begin=”week7_2.end” id=”week1_1&#8243; end=”wallclock(00:00:00)”/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\1.wsx” begin=”week1_1.end” end=”wallclock(12:00:00)” id=”week1_2&#8243;/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\2.wsx” begin=”week1_2.end” id=”week2_1&#8243; end=”wallclock(00:00:00)”/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\2.wsx” begin=”week2_1.end” end=”wallclock(12:00:00)” id=”week2_2&#8243;/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\3.wsx” begin=”week2_2&#8243; end=”wallclock(00:00:00)” id=”week3_1&#8243;/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\3.wsx” end=”wallclock(12:10:00)” id=”week3_2&#8243; begin=”week3_1.end”/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\4.wsx” begin=”week3_2.end” id=”week4_1&#8243; end=”wallclock(00:00:00)”/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\4.wsx” begin=”week4_1.end” end=”wallclock(12:00:00)” id=”week4_2&#8243;/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\5.wsx” begin=”week4_2.end” id=”week5_1&#8243; end=”wallclock(00:00:00)”/&gt;<br />
        &lt;media src=”C:\WMPub\WMRoot\5.wsx” begin=”week5_1.end” end=”wallclock(12:00:00)” id=”week5_2&#8243;/&gt;<br />
        &lt;media id=”week6_1&#8243; end=”wallclock(00:00:00)” begin=”week5_2.end” src=”C:\WMPub\WMRoot\6.wsx”/&gt;<br />
        &lt;media id=”week6_2&#8243; end=”wallclock(12:00:00)” begin=”week6_1.end” src=”C:\WMPub\WMRoot\6.wsx”/&gt;<br />
        &lt;media id=”week7_1&#8243; end=”wallclock(00:00:00)” begin=”week6_2&#8243; src=”C:\WMPub\WMRoot\7.wsx”/&gt;<br />
        &lt;media id=”week7_2&#8243; end=”wallclock(12:00:00)” begin=”week7_1&#8243; src=”C:\WMPub\WMRoot\7.wsx”/&gt;<br />
    &lt;/excl&gt;<br />
&lt;/smil&gt;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="color: #000000;">————————————————————————————————————————————————————</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">每一行标签绑定一个 id</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">src=”C:\WMPub\WMRoot\1.wsx”    表示播放1.wsx列表(这里是周一的列表)</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">begin=”week7_2.end”                           表示 week7_2 完成之后播放本行</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">end=”wallclock(00:00:00)”               表示零点结束播放本行，播放下一行</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> </span>Windows Media Services 扩展功能</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;">插播“多媒体广告”</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> 点击”广告”标签 → “包装广告”→ 选择文件 这样就可以在每个人打开和关闭电台的时候播放一段固定的广告内容。</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> <img class="aligncenter size-full wp-image-217" title="31" src="http://www.wangchao123.com/wp-content/uploads/2009/06/31.jpg" alt="31" width="600" height="455" /></p>
<p> </p>
[Download not found]
<p>流媒体播放平台还是需要比较大的投入，因为流媒体播放发送实时的数据包，因此需要很大的流量。下面是一个做的比较好的流媒体播放站，电音中国 <a href="http://www.udancecn.com/">http://www.udancecn.com/</a> 主要播放 dj 电音乐曲</p>
<p>Windows Media Services 还有许多扩展的功能等待大家去发掘，欢迎发信交流 <a href="mailto:wangchao123.com@gmail.com">wangchao123.com@gmail.com</a></p>
<p>  </p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/06/13/198/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>windows 服务器安全配置</title>
		<link>http://www.wangchao123.com/2009/06/13/195</link>
		<comments>http://www.wangchao123.com/2009/06/13/195#comments</comments>
		<pubDate>Fri, 12 Jun 2009 17:49:08 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[服务器 网络]]></category>
		<category><![CDATA[系统安全]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=195</guid>
		<description><![CDATA[1.         操作系统安全 a)        操作系统安装时，系统文件不要装在默认的目录(WINNT)，要选择安装一个新的目录进行安装；Web目录和系统不要放在同一个分区，防止有人通过Web权限漏洞，访问系统文件、文件夹。 b)        安装完操作系统，一定要先更新系统必要的补丁，直到没有补丁可更新。 c)         尽量少安装与Web服务不相关的软件。 2.         创建管理员账号 a)        最好是2个管理预案账号，防止忘记其中一个，密码最好是特殊符号、数字、大小写字母的搭配。不要避免使用单词 b)        禁用 Guest 账号 c)         修改账号登陆组策略 控制面板 &#8212; &#62; 性能维护&#8211; &#62;管理工具&#8211; &#62; 本地安全设置 &#8212; &#62; 帐户策略 &#8212; &#62; 帐户锁定策略 &#8211; &#62; 帐户锁定阈值   设为5次 设置成功后，会在密码错误5次后锁定账号30分钟 3.         创建 IUSR 用户，为iis 分配匿名访问默认用户为 IUSR IIS 管理器 &#8211;&#62; 选自网站右键“属性” &#8211;&#62; 目录安全性 &#8211;&#62; 设置匿名访问默认用户为 IUSR 4.         设置严格的文件夹访问权限 有用户上传功能的的文件夹给 IUSR 用户增加读写权限，其他文件夹，只有之只读权限 [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">1.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">操作系统安全</span></strong></p>
<p style="margin-left: 42pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level2 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">a)<span style="font: 7pt &quot;Times New Roman&quot;;">        </span></span></span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">操作系统安装时，系统文件不要装在默认的目录</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">(WINNT)</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">，要选择安装一个新的目录进行安装；</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">Web</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">目录和系统不要放在同一个分区，防止有人通过</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">Web</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">权限漏洞，访问系统文件、文件夹。</span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level2 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">b)<span style="font: 7pt &quot;Times New Roman&quot;;">        </span></span></span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">安装完操作系统，一定要先更新系统必要的补丁，直到没有补丁可更新。</span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level2 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">c)<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">尽量少安装与</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">Web</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">服务不相关的软件。</span></span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">2.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">创建管理员账号</span></strong></p>
<p style="margin-left: 42pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level2 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">a)<span style="font: 7pt &quot;Times New Roman&quot;;">        </span></span></span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">最好是</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">2</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">个管理预案账号，防止忘记其中一个，密码最好是特殊符号、数字、大小写字母的搭配。不要避免使用单词</span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level2 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">b)<span style="font: 7pt &quot;Times New Roman&quot;;">        </span></span></span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">禁用</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> Guest </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">账号</span></span></p>
<p style="margin-left: 42pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level2 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">c)<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">修改账号登陆组策略</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"> </span></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">控制面板</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8212; &gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">性能维护</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">&#8211; &gt;</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">管理工具</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">&#8211; &gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">本地安全设置</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8212; &gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">帐户策略</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8212; &gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">帐户锁定策略</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8211; &gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">帐户锁定阈值</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">   </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">设为</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">5</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">次</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">设置成功后，会在密码错误</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">5</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">次后锁定账号</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">30</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">分钟</span></span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">3.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">创建</span></strong><strong><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: 宋体;" lang="EN-US"> IUSR </span></strong><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">用户，为</span></strong><strong><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: 宋体;" lang="EN-US">iis </span></strong><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">分配匿名访问默认用户为</span></strong><strong><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: 宋体;" lang="EN-US"> IUSR</span></strong></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">IIS </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">管理器</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8211;&gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">选自网站右键</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">“</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">属性</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">” &#8211;&gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">目录安全性</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8211;&gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">设置匿名访问默认用户为</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> IUSR</span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">4.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">设置严格的文件夹访问权限</span></strong></p>
<p style="text-justify: inter-ideograph; margin-left: 42pt; line-height: 14.25pt; text-align: justify;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">有用户上传功能的的文件夹给</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> IUSR </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">用户增加读写权限，其他文件夹，只有之只读权限</span></span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">5.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">防火墙设置</span></strong></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">例外端口</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt; mso-para-margin-left: 4.0gd;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">21 &#8211; ftp </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">端口</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt; mso-para-margin-left: 4.0gd;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">25 &#8211; </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">邮件发送服务器</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt; mso-para-margin-left: 4.0gd;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">110 &#8211; </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">邮件接收服务器</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt; mso-para-margin-left: 4.0gd;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">80 &#8211; http</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">访问端口</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;"> </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">（如果</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">iis apache </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">同时存在，有可能还要开放</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> 82,8080</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">等端口，要看端口是如何设置的）</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt; mso-para-margin-left: 4.0gd;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">3389 &#8211; </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">远程桌面端口</span></span></p>
<p style="margin-left: 42pt; line-height: 14.25pt; mso-para-margin-left: 4.0gd;"><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">3306-Mysql 远程连接</span></span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">6.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">启用</span></strong><strong><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: 宋体;" lang="EN-US"> IIS </span></strong><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">日志</span></strong></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">在网站属性</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">&#8211;</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">网站</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">&#8211;</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">启用日志记录属性</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">-</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">属性</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">-</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">新日志计划。</span></span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">7.<span style="font: 7pt &quot;Times New Roman&quot;;">         </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">分析</span></strong><strong><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: 宋体;" lang="EN-US">IIS</span></strong><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">日志</span></strong></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">如果日志中</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> 404</span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">的请求过多，可能就是爬虫正在寻找网站漏洞，如果有成功的文件就要小心了，需要给文件加上只读权限</span></span></p>
<p style="margin-left: 21pt; text-indent: -21pt; line-height: 14.25pt; mso-list: l0 level1 lfo1;"><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: Georgia; mso-fareast-font-family: Georgia;" lang="EN-US"><span style="mso-list: Ignore;">8.<span style="font: 7pt &quot;Times New Roman&quot;;">        </span></span></span><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">定期查看</span></strong><strong><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;; mso-bidi-font-family: 宋体;" lang="EN-US">windows </span></strong><strong><span style="font-size: 10pt; color: black; font-family: 宋体; mso-bidi-font-family: 宋体; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">日志</span></strong></p>
<p style="margin-left: 42pt; line-height: 14.25pt;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">我的电脑</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US"> &#8211;&gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">右键</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">“</span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">管理</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">”&#8211;&gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">事件查看器</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">   &#8211;&gt; </span><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;"><span style="font-family: 宋体;">安全性</span></span><span style="font-size: 10pt; color: black; font-family: &quot;Georgia&quot;,&quot;serif&quot;;" lang="EN-US">     </span><span style="font-family: 宋体;"><span style="font-size: 10pt; color: black; mso-ascii-font-family: Georgia; mso-hansi-font-family: Georgia;">看是不是每个管理登陆的时间都对应，是不是有隐藏的管理员账号。必须把他们删除</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span lang="EN-US"><span style="font-size: small; font-family: Calibri;"> </span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/06/13/195/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网络故障排除 tracert 命令及用法</title>
		<link>http://www.wangchao123.com/2009/06/05/51</link>
		<comments>http://www.wangchao123.com/2009/06/05/51#comments</comments>
		<pubDate>Fri, 05 Jun 2009 02:43:34 +0000</pubDate>
		<dc:creator>wangchao</dc:creator>
				<category><![CDATA[服务器 网络]]></category>
		<category><![CDATA[命令]]></category>
		<category><![CDATA[网络故障]]></category>

		<guid isPermaLink="false">http://www.wangchao123.com/?p=51</guid>
		<description><![CDATA[今天接到会员“服务器”电话，www.clubzone.cn 网站报错故障截图如下: 之后用 tracert www.clubzone.cn 命令进行检测，结果如下 看以看出他那边是电信网络 问题很严重，很可能所有的电信用户都上不了网了 于是我在公司使用 tracert www.clubzone.cn 结果如下 公司的网络是楼宇接入的网通线路，访问www.clubozne.cn 没有问题，最后发现原因是由于cdn 那边的故障，有一条线路断了，经过很cdn联系，问题很快解决了 一下转载 tracert 命令的用法 Tracert（跟踪路由）是路由跟踪实用程序，用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 　　Tracert 工作原理 　　通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包，Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时，路由器应该将“ICMP 已超时”的消息发回源系统。 　　Tracert 先发送 TTL 为 1 的回应数据包，并在随后的每次发送过程将 TTL 递增 1，直到目标响应或 TTL 达到最大值，从而确定路由。通过检查中间路由器发回的“ICMP [...]]]></description>
			<content:encoded><![CDATA[<p>今天接到会员“服务器”电话，<a href="http://www.clubzone.cn">www.clubzone.cn</a> 网站报错故障截图如下:</p>
<p><img class="alignnone size-large wp-image-53" title="cz1" src="http://www.wangchao123.com/wp-content/uploads/2009/06/cz1-1024x619.jpg" alt="cz1" width="717" height="433" /></p>
<p>之后用 tracert www.clubzone.cn 命令进行检测，结果如下</p>
<p><img class="alignnone size-full wp-image-54" title="cz2" src="http://www.wangchao123.com/wp-content/uploads/2009/06/cz2.jpg" alt="cz2" width="668" height="431" /></p>
<p>看以看出他那边是电信网络</p>
<p>问题很严重，很可能所有的电信用户都上不了网了</p>
<p>于是我在公司使用 tracert www.clubzone.cn 结果如下</p>
<p><img class="alignnone size-full wp-image-55" title="15" src="http://www.wangchao123.com/wp-content/uploads/2009/06/15.jpg" alt="15" width="671" height="517" /></p>
<p>公司的网络是楼宇接入的网通线路，访问<a href="http://www.clubozne.cn">www.clubozne.cn</a> 没有问题，最后发现原因是由于cdn 那边的故障，有一条线路断了，经过很cdn联系，问题很快解决了</p>
<p>一下转载 tracert 命令的用法</p>
<p>Tracert（跟踪路由）是路由跟踪实用程序，用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。</p>
<p>　　Tracert 工作原理</p>
<p>　　通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包，Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时，路由器应该将“ICMP 已超时”的消息发回源系统。</p>
<p>　　Tracert 先发送 TTL 为 1 的回应数据包，并在随后的每次发送过程将 TTL 递增 1，直到目标响应或 TTL 达到最大值，从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包，这在 Tracert 实用程序中看不到。</p>
<p>　　Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项，则 Tracert 实用程序不在每个 IP 地址上查询 DNS。</p>
<p>　　在下例中，数据包必须通过两个路由器（10.0.0.1 和 192.168.0.1）才能到达主机 172.16.0.99。主机的默认网关是 10.0.0.1，192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。</p>
<p>　　C:\&gt;tracert 172.16.0.99 -d</p>
<p>　　Tracing route to 172.16.0.99 over a maximum of 30 hops</p>
<p>　　1 2s 3s 2s 10,0.0,1</p>
<p>　　2 75 ms 83 ms 88 ms 192.168.0.1</p>
<p>　　3 73 ms 79 ms 93 ms 172.16.0.99</p>
<p>　　Trace complete.</p>
<p>　　用 tracert 解决问题</p>
<p>　　可以使用 tracert 命令确定数据包在网络上的停止位置。下例中，默认网关确定 192.168.10.99 主机没有有效路径。这可能是路由器配置的问题，或者是 192.168.10.0 网络不存在（错误的 IP 地址）。</p>
<p>　　C:\&gt;tracert 192.168.10.99</p>
<p>　　Tracing route to 192.168.10.99 over a maximum of 30 hops</p>
<p>　　1 10.0.0.1 reports:Destination net unreachable.</p>
<p>　　Trace complete.</p>
<p>　　Tracert 实用程序对于解决大网络问题非常有用，此时可以采取几条路径到达同一个点。</p>
<p>　　Tracert 命令行选项</p>
<p>　　Tracert 命令支持多种选项，如下表所示。</p>
<p>　　tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name</p>
<table style="mso-cellspacing: 1.5pt;" border="0" cellpadding="0">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes;">
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><strong><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">选项</span></strong><strong></strong></p>
</td>
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt; text-align: center;" align="center"><strong><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">描述</span></strong><strong><span style="font-size: 9pt;"> </span></strong><strong></strong></p>
</td>
</tr>
<tr style="mso-yfti-irow: 1;">
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><strong><span style="font-size: 9pt;" lang="EN-US">-d</span></strong></p>
</td>
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">指定不将</span><span style="font-size: 9pt;" lang="EN-US"> IP </span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">地址解析到主机名称。</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 2;">
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><strong><span style="font-size: 9pt;" lang="EN-US">-h</span></strong><span style="font-size: 9pt;" lang="EN-US"> <em>maximum_hops</em></span></p>
</td>
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">指定跃点数以跟踪到称为</span><span style="font-size: 9pt;"> <em><span lang="EN-US">target_name</span></em><span lang="EN-US"> </span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">的主机的路由。</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 3;">
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><strong><span style="font-size: 9pt;" lang="EN-US">-j</span></strong><span style="font-size: 9pt;" lang="EN-US"> <em>host-list</em></span></p>
</td>
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">指定</span><span style="font-size: 9pt;" lang="EN-US"> Tracert </span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">实用程序数据包所采用路径中的路由器接口列表。</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 4;">
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><strong><span style="font-size: 9pt;" lang="EN-US">-w</span></strong><span style="font-size: 9pt;" lang="EN-US"> <em>timeout</em></span></p>
</td>
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">等待</span><span style="font-size: 9pt;"> <em><span lang="EN-US">timeout</span></em><span lang="EN-US"> </span></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">为每次回复所指定的毫秒数。</span></p>
</td>
</tr>
<tr style="mso-yfti-irow: 5; mso-yfti-lastrow: yes;">
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><em><span style="font-size: 9pt;" lang="EN-US">target_name</span></em></p>
</td>
<td style="background-color: transparent; border-color: #d4d0c8; padding: 0.75pt;">
<p style="margin: 0cm 0cm 0pt;"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">目标主机的名称或</span><span style="font-size: 9pt;" lang="EN-US"> IP </span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman';">地址。</span></p>
</td>
</tr>
</tbody>
</table>
<p> </p>
<p>用法解释二:</p>
<p>Tracert</p>
<p>通过递增“存在时间 (TTL)”字段的值将“Internet 控制消息协议 (ICMP) 回显请求”或 ICMPv6 消息发送给目标可确定到达目标的路径。路径将以列表形式显示，其中包含源主机与目标主机之间路径中路由器的近侧路由器接口。近侧接口是距离路径中的发送主机最近的路由器的接口。如果使用时不带参数，tracert 显示帮助。</p>
<p>语法<br />
tracert [-d] [-h MaximumHops] [-j HostList] [-w Timeout] [-R] [-S SrcAddr] [-4][-6] TargetName</p>
<p>参数<br />
-d</p>
<p>防止 tracert 试图将中间路由器的 IP 地址解析为它们的名称。这样可加速显示 tracert 的结果。</p>
<p>-h MaximumHops</p>
<p>指定搜索目标（目的）的路径中存在的跃点的最大数。默认值为 30 个跃点。</p>
<p>-j HostList</p>
<p>指定回显请求消息将 IP 报头中的松散源路由选项与 HostList 中指定的中间目标集一起使用。使用松散源路由时，连续的中间目标可以由一个或多个路由器分隔开。HostList 中的地址或名称的最大数量为 9。HostList 是一系列由空格分隔的 IP 地址（用带点的十进制符号表示）。仅当跟踪 IPv4 地址时才使用该参数。</p>
<p>-w Timeout</p>
<p>指定等待“ICMP 已超时”或“回显答复”消息（对应于要接收的给定“回现请求”消息）的时间（以毫秒为单位）。如果超时时间内未收到消息，则显示一个星号 (*)。默认的超时时间为 4000（4 秒）。</p>
<p>-R</p>
<p>指定 IPv6 路由扩展标头应用来将“回显请求”消息发送到本地主机，使用目标作为中间目标并测试反向路由。</p>
<p>-S</p>
<p>指定在“回显请求”消息中使用的源地址。仅当跟踪 IPv6 地址时才使用该参数。</p>
<p>-4</p>
<p>指定 Tracert.exe 只能将 IPv4 用于本跟踪。</p>
<p>-6</p>
<p>指定 Tracert.exe 只能将 IPv6 用于本跟踪。</p>
<p>TargetName</p>
<p>指定目标，可以是 IP 地址或主机名。</p>
<p>-?</p>
<p>在命令提示符下显示帮助。</p>
<p>注释<br />
? 该诊断工具通过向目标发送具有变化的“生存时间 (TTL)”值的“ICMP 回响请求”消息来确定到达目标的路径。要求路径上的每个路由器在转发数据包之前至少将 IP 数据包中的 TTL 递减 1。这样，TTL 就成为最大链路计数器。数据包上的 TTL 到达 0 时，路由器应该将“ICMP 已超时”的消息发送回源计算机。Tracert 发送 TTL 为 1 的第一条“回响请求”消息，并在随后的每次发送过程将 TTL 递增 1，直到目标响应或跃点达到最大值，从而确定路径。默认情况下跃点的最大数量是 30，可使用 -h 参数指定。检查中间路由器返回的“ICMP 超时”消息与目标返回的“回显答复”消息可确定路径。但是，某些路由器不会为其 TTL 值已过期的数据包返回“已超时”消息，而且这些路由器对于 tracert 命令不可见。在这种情况下，将为该跃点显示一行星号 (*)。</p>
<p>? 要跟踪路径并为路径中的每个路由器和链路提供网络延迟和数据包丢失信息，请使用 pathping 命令。</p>
<p>? 只有当“Internet 协议 (TCP/IP)”协议在“网络连接”中安装为网络适配器属性的组件时，该命令才可用。</p>
<p>示例<br />
要跟踪名为 corp7.microsoft.com 的主机的路径，请键入：</p>
<p>tracert corp7.microsoft.com</p>
<p>要跟踪名为 corp7.microsoft.com 的主机的路径并防止将每个 IP 地址解析为它的名称，请键入：</p>
<p>tracert -d corp7.microsoft.com</p>
<p>要跟踪名为 corp7.microsoft.com 的主机的路径并使用松散源路由 10.12.0.1-10.29.3.1-10.1.44.1，请键入：</p>
<p>tracert -j 10.12.0.1 10.29.3.1 10.1.44.1 corp7.microsoft.com</p>
<p> </p>
<p>比如这是跟踪访问百度时所经过的路由器情况：</p>
<p>C:\WINDOWS\system32&gt;tracert <a href="http://www.baidu.com/"><span style="text-decoration: underline;"><span style="color: #800080;">www.baidu.com</span></span></a></p>
<p>Tracing route to <a href="http://www.a.shifen.com/"><span style="text-decoration: underline;"><span style="color: #0000ff;">www.a.shifen.com</span></span></a> [202.108.22.43]<br />
over a maximum of 30 hops:</p>
<p>1   627 ms   502 ms   561 ms 221.221.144.1<br />
2   504 ms   667 ms   597 ms gj-11-009.bta.net.cn [202.106.11.9]<br />
3   667 ms   747 ms   647 ms bt-227-089.bta.net.cn [202.106.227.89]<br />
4   591 ms   678 ms     *     bt-228-061.bta.net.cn [202.106.228.61]<br />
5   719 ms   737 ms   652 ms 61.148.3.30<br />
6   525 ms   497 ms   480 ms 202.106.48.18<br />
7   366 ms   333 ms   587 ms xd-22-43-a8.bta.net.cn [202.108.22.43]</p>
<p>Trace complete.</p>
<p>这是163的情况：</p>
<p>C:\WINDOWS\system32&gt;tracert <a href="http://www.163.com/"><span style="text-decoration: underline;"><span style="color: #800080;">www.163.com</span></span></a></p>
<p>Tracing route to <a href="http://www.cache.split.netease.com/"><span style="text-decoration: underline;"><span style="color: #0000ff;">www.cache.split.netease.com</span></span></a> [202.108.9.52]<br />
over a maximum of 30 hops:</p>
<p>1   580 ms   721 ms   674 ms 221.221.144.1<br />
2     *      755 ms   620 ms 202.106.49.37<br />
3   602 ms   413 ms   617 ms bt-227-093.bta.net.cn [202.106.227.93]<br />
4   471 ms   386 ms   345 ms bt-228-057.bta.net.cn [202.106.228.57]<br />
5   328 ms   245 ms   398 ms 202.106.193.126<br />
6   417 ms   340 ms   312 ms 61.148.143.30<br />
7   425 ms   539 ms   500 ms 210.74.176.194<br />
8   576 ms   461 ms   418 ms zz-9-52-a8.bta.net.cn [202.108.9.52]</p>
<p>Trace complete.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wangchao123.com/2009/06/05/51/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

