﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Skynet-随笔分类-shell</title><link>http://www.blogjava.net/Skynet/category/35350.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 07 Dec 2009 22:07:27 GMT</lastBuildDate><pubDate>Mon, 07 Dec 2009 22:07:27 GMT</pubDate><ttl>60</ttl><item><title>linux date 使用</title><link>http://www.blogjava.net/Skynet/archive/2009/12/07/305016.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Mon, 07 Dec 2009 08:14:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/12/07/305016.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/305016.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/12/07/305016.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/305016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/305016.html</trackback:ping><description><![CDATA[<br />
date demo:<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">实例</span><span style="color: #000000;">:</span><span style="color: #000000;"><br />
$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">date<br />
Mon&nbsp;Dec&nbsp;&nbsp;</span><span style="color: #800000;">7</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">15</span><span style="color: #000000;">:</span><span style="color: #800000;">43</span><span style="color: #000000;">:</span><span style="color: #800000;">39</span><span style="color: #000000;">&nbsp;CST&nbsp;</span><span style="color: #800000;">2009</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">格式化输出</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;date&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y-%m-%d</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">-</span><span style="color: #800000;">12</span><span style="color: #000000;">-</span><span style="color: #800000;">07</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">时间游走&nbsp;当前时间&nbsp;2009-12-07<br />
#&nbsp;year&nbsp;,&nbsp;month&nbsp;,&nbsp;day&nbsp;,hour&nbsp;,&nbsp;minute,second&nbsp;&nbsp;-&nbsp;ago<br />
#昨天输出</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;date&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">1&nbsp;day&nbsp;ago</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y-%m-%d</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">-</span><span style="color: #800000;">12</span><span style="color: #000000;">-</span><span style="color: #800000;">06</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">2秒后输出</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;date&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">2&nbsp;second</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y-%m-%d&nbsp;%H:%M.%S</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">-</span><span style="color: #800000;">12</span><span style="color: #000000;">-</span><span style="color: #800000;">07</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">15</span><span style="color: #000000;">:</span><span style="color: #800000;">50.04</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">传说中的&nbsp;1234567890&nbsp;秒</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">date&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">1970-01-01&nbsp;&nbsp;1234567890&nbsp;seconds</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y-%m-%d&nbsp;%H:%m:%S</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">-</span><span style="color: #800000;">02</span><span style="color: #000000;">-</span><span style="color: #800000;">13</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">23</span><span style="color: #000000;">:</span><span style="color: #800000;">02</span><span style="color: #000000;">:</span><span style="color: #800000;">30</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">其他格式的转换</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">date&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">$(echo&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #800000;">03</span><span style="color: #000000;">/</span><span style="color: #000000;">Nov</span><span style="color: #000000;">/</span><span style="color: #800000;">2009</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">:</span><span style="color: #800000;">04</span><span style="color: #000000;">:</span><span style="color: #800000;">28</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">&nbsp;|perl&nbsp;-ne&nbsp;'print&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">$</span><span style="color: #800000;">2</span><span style="color: #000000;">&nbsp;$</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;$</span><span style="color: #800000;">3</span><span style="color: #000000;">&nbsp;$</span><span style="color: #800000;">4</span><span style="color: #000000;">\</span><span style="color: #000000;">n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">&nbsp;if&nbsp;/(.*?)</span><span style="color: #000000; font-weight: bold;">"</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; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">/(.*?)&nbsp;(.*)/;')&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #800080;">%Y</span><span style="color: #000000;">-</span><span style="color: #800080;">%m</span><span style="color: #000000;">-</span><span style="color: #800080;">%d</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">-</span><span style="color: #800000;">11</span><span style="color: #000000;">-</span><span style="color: #800000;">03</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">普通&nbsp;转格式</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;date&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">2009-12-12</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y/%m/%d&nbsp;%H:%M.%S</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">/</span><span style="color: #800000;">12</span><span style="color: #000000;">/</span><span style="color: #800000;">12</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">00</span><span style="color: #000000;">:</span><span style="color: #800000;">00.00</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">apache&nbsp;格式转换</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">date&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">Dec&nbsp;5,&nbsp;2009&nbsp;12:00:37&nbsp;AM</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y-%m-%d&nbsp;%H:%M.%S</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2009</span><span style="color: #000000;">-</span><span style="color: #800000;">12</span><span style="color: #000000;">-</span><span style="color: #800000;">05</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">00</span><span style="color: #000000;">:</span><span style="color: #800000;">00.37</span><span style="color: #000000;"><br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">格式转换&nbsp;后时间&nbsp;游走</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">date&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">Dec&nbsp;5,&nbsp;2009&nbsp;12:00:37&nbsp;AM&nbsp;2&nbsp;year&nbsp;ago</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%Y-%m-%d&nbsp;%H:%M.%S</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
</span><span style="color: #800000;">2007</span><span style="color: #000000;">-</span><span style="color: #800000;">12</span><span style="color: #000000;">-</span><span style="color: #800000;">05</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">00</span><span style="color: #000000;">:</span><span style="color: #800000;">00.37</span><span style="color: #000000;"><br />
<br />
<br />
</span><span style="color: #008000;">#</span><span style="color: #008000;">时间差<br />
#一小时&nbsp;3600<br />
#一天&nbsp;86400&nbsp;秒</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">st</span><span style="color: #000000;">=</span><span style="color: #000000;">$(date&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">Dec&nbsp;5,&nbsp;2009&nbsp;12:00:37&nbsp;AM&nbsp;1&nbsp;day&nbsp;ago&nbsp;1&nbsp;hour&nbsp;ago&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%s</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">)<br />
$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">et</span><span style="color: #000000;">=</span><span style="color: #000000;">$(date&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">Dec&nbsp;5,&nbsp;2009&nbsp;12:00:37&nbsp;AM</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%s</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">)<br />
$</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">echo&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">时间差$[($et-$st)/86400]天，$[($et-$st)/3600%24]小时</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;"><br />
时间差1天，1小时</span></div>
<br />
<br />
<br />
<br />
<br />
date --help<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">Usage</span><span style="color: #000000;">:</span><span style="color: #000000;">&nbsp;date&nbsp;[OPTION]</span><span style="color: #000000;"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span style="color: #000000;">&nbsp;[</span><span style="color: #000000;">+</span><span style="color: #0000ff;">FORMAT</span><span style="color: #000000;">]<br />
&nbsp;&nbsp;or</span><span style="color: #000000;">:</span><span style="color: #000000;">&nbsp;&nbsp;date&nbsp;[</span><span style="color: #000000;">-</span><span style="color: #000000;">u</span><span style="color: #000000;">|--</span><span style="color: #000000;">utc</span><span style="color: #000000;">|--</span><span style="color: #000000;">universal]&nbsp;[MMDDhhmm[[CC]YY][</span><span style="color: #000000;">.</span><span style="color: #000000;">ss]]<br />
Display&nbsp;the&nbsp;current&nbsp;</span><span style="color: #0000ff;">time</span><span style="color: #000000;">&nbsp;in&nbsp;the&nbsp;given&nbsp;</span><span style="color: #0000ff;">FORMAT</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;or&nbsp;set&nbsp;the&nbsp;</span><span style="color: #0000ff;">system</span><span style="color: #000000;">&nbsp;date</span><span style="color: #000000;">.</span><span style="color: #000000;"><br />
<br />
&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">date</span><span style="color: #000000;">=</span><span style="color: #000000;">STRING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;</span><span style="color: #0000ff;">time</span><span style="color: #000000;">&nbsp;described&nbsp;by&nbsp;STRING</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;not&nbsp;`now</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;"><br />
&nbsp;&nbsp;-f,&nbsp;--file=DATEFILE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;like&nbsp;--date&nbsp;once&nbsp;for&nbsp;each&nbsp;line&nbsp;of&nbsp;DATEFILE<br />
&nbsp;&nbsp;-r,&nbsp;--reference=FILE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;the&nbsp;last&nbsp;modification&nbsp;time&nbsp;of&nbsp;FILE<br />
&nbsp;&nbsp;-R,&nbsp;--rfc-2822&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;output&nbsp;date&nbsp;and&nbsp;time&nbsp;in&nbsp;RFC&nbsp;2822&nbsp;format<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--rfc-3339=TIMESPEC&nbsp;&nbsp;&nbsp;output&nbsp;date&nbsp;and&nbsp;time&nbsp;in&nbsp;RFC&nbsp;3339&nbsp;format.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TIMESPEC=`date</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;`seconds</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">,&nbsp;or&nbsp;`ns</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;date&nbsp;and&nbsp;</span><span style="color: #0000ff;">time</span><span style="color: #000000;">&nbsp;to&nbsp;the&nbsp;indicated&nbsp;precision</span><span style="color: #000000;">.</span><span style="color: #000000;"><br />
&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">s</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">set</span><span style="color: #000000;">=</span><span style="color: #000000;">STRING&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;</span><span style="color: #0000ff;">time</span><span style="color: #000000;">&nbsp;described&nbsp;by&nbsp;STRING<br />
&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">u</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">utc</span><span style="color: #000000;">,</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">universal&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;or&nbsp;set&nbsp;Coordinated&nbsp;Universal&nbsp;</span><span style="color: #0000ff;">Time</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;display&nbsp;this&nbsp;help&nbsp;and&nbsp;</span><span style="color: #0000ff;">exit</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">--</span><span style="color: #000000;">version&nbsp;&nbsp;output&nbsp;version&nbsp;information&nbsp;and&nbsp;</span><span style="color: #0000ff;">exit</span><span style="color: #000000;"><br />
</span></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/305016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-12-07 16:14 <a href="http://www.blogjava.net/Skynet/archive/2009/12/07/305016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell txt 分析小结</title><link>http://www.blogjava.net/Skynet/archive/2009/11/26/303750.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Thu, 26 Nov 2009 03:27:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/11/26/303750.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/303750.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/11/26/303750.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/303750.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/303750.html</trackback:ping><description><![CDATA[<br />
<br />
<br />
<br />

<div style="width:425px;text-align:left" id="__ss_2587122"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/liukaiyi/shell-2587122" title="Shell脚本">Shell脚本</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=shell-091125211831-phpapp02&stripped_title=shell-2587122" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=shell-091125211831-phpapp02&stripped_title=shell-2587122" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object><div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/liukaiyi">liukaiyi</a>.</div></div>
<img src ="http://www.blogjava.net/Skynet/aggbug/303750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-11-26 11:27 <a href="http://www.blogjava.net/Skynet/archive/2009/11/26/303750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用rsync同步网络备份(转)</title><link>http://www.blogjava.net/Skynet/archive/2009/10/28/300092.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Wed, 28 Oct 2009 09:55:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/10/28/300092.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/300092.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/10/28/300092.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/300092.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/300092.html</trackback:ping><description><![CDATA[<font style="color: #ff0102;" size="5"><span style="font-weight: bold; font-family: 宋体;">使用rsync同步网络备份</span></font><br />
&nbsp;<br />
&nbsp;<br />
一.<font size="4"> 简介 <br />
rsync常用的备份工具, 它目前是由 rsync.samba.org 维护. <br />
rsync使用所谓的"rsync算法",提供一个非常快速的档案传输方法, 使local和远端二部主机之间的档案达到同步,它主要是传送二个档案的异动部份,而非每次都整份传送, 因此速度相当地快.&nbsp; <br />
rsync它可以搭配rsh或ssh，也可以当成daemon模式使用直接的socket连接, 所以rsync可以当做一个优异的备份工具来使用.&nbsp; <br />
我这简单介绍运用rsync备份远程网路主机档案的基本方法。 <br />
在这,我们是给rsync当成linux的一种daemon模式来运行. <br />
<br />
首先,先给个简单的定义:当然要一台主机跑rsync daemon模式, 我们就称这台机器为一rsync Server, 或者说这台主机是一台备份主机( Backup Server). <br />
备份主机会开启一个873的端口(port), 等待对方rsync连接.所以服务器记的要开这个端口 <br />
<br />
连接时, rsync Server 会检查密码是否相符, 若通过密码查核, 则开始进行档案传输. <br />
第一次连通完成时, 会把整份档案传输一次, 下一次就只传送二个档案之间异动的部份.&nbsp; <br />
以上是rsync client (欲加以备份的远程网路主机) 和rsync server 的运作方式。 <br />
&nbsp;<br />
藉由上述方法, 我们当然也可以设立多部备份主机, 使网路主机上重要的档案能分散至数部主机中, 以分散风险.&nbsp; <br />
一旦完成备份, 我们可以对这些备份主机再做进一步的储存动作, 如使用tar打成tar的包, 把档案备份到硬盘之类.<br />
<br />
以下内容，我用Ubuntu 7.10做客户机,Centos5做服务器测试过.<br />
&nbsp;&nbsp; <br />
&nbsp;<br />
二. 安装法 <br />
&nbsp;<br />
rsync目前最新版是 2.6.8, 可以到rsync.samba.org 下载. <br />
若您使用 rpm 套件,请用下面的方法安装,当然rhel5和centos5中默认就安装了<br />
#rpm -ivh rsync*.rpm<br />
#yum install rsync <br />
&nbsp;<br />
它的设定档位置在 /etc/rsyncd.conf,奇怪，我的没有自动生成这个文件，那我们就来自己配置他 <br />
&nbsp;<br />
&nbsp; <br />
&nbsp;<br />
三. 设定 rsync server: (假设这台主机名称为 rsync.x111.com) <br />
&nbsp;<br />
rsync server 端要设定以下四项: <br />
&nbsp;<br />
&nbsp;&nbsp; 1.规划建立备份目录区&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp; 2.启动xinetd中的rsync&nbsp;&nbsp; <br />
&nbsp;&nbsp; 3.设定: /etc/rsyncd.conf&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp; 4.设定: 密码档&nbsp; <br />
&nbsp;<br />
依次说明如下: <br />
&nbsp;<br />
1. 规划建立备份目录区: <br />
建议您准备一个容量较大且独立的分割区, 并在其中开好备份目录, 如此 /blackup/x99 <br />
&nbsp;<br />
2. 启动xinetd中的rsync<br />
系统默认没有安装xinetd。 <br />
# yum install xinetd <br />
#service xinetd restart<br />
#chkconfig rsync on <br />
&nbsp;<br />
以上的操作,主要是要打开rsync这个daemon,一旦有rsync client要连接时,xinetd会把它转介给rsyncd (port 873).&nbsp; <br />
&nbsp;<br />
&nbsp; <br />
3. 设定 /etc/rsyncd.conf :&nbsp; <br />
全局设置<br />
&nbsp;&nbsp;&nbsp; uid = root<br />
&nbsp;&nbsp;&nbsp; gid = root <br />
&nbsp;&nbsp;&nbsp; use chroot = no&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 不使用chroot<br />
&nbsp;&nbsp;&nbsp; max connections = 4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 最大连接数为4<br />
&nbsp;&nbsp;&nbsp; pid file = /var/run/rsyncd.pid<br />
&nbsp;&nbsp;&nbsp; lock file = /var/run/rsync.lock<br />
&nbsp;&nbsp;&nbsp; log file = /var/log/rsyncd.log&nbsp;&nbsp;&nbsp; # 日志记录文件<br />
&nbsp;<br />
以下的部分,代表开放给某一台rsync client 主机的设定, 简单范本如下:&nbsp; <br />
&nbsp;&nbsp;&nbsp; [x99] <br />
&nbsp;&nbsp;&nbsp; path = /blackup/x99/x99_backup&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; auth users = x99_backup <br />
&nbsp;&nbsp;&nbsp; secrets file = /etc/rsyncd.secrets <br />
&nbsp;&nbsp;&nbsp; read only = no <br />
&nbsp;<br />
&nbsp;<br />
以上文件的注解:&nbsp; <br />
&nbsp;<br />
[x99] 代表要备份的主机代号, 名称自己设置. <br />
&nbsp;<br />
path 用来设定备份档案要存放在那一个目录.这个可先要mkdir开好,可以自己设置 <br />
auth users 代表授权的帐号, 可以自己设置. <br />
secrets file 代表储存帐号密码的密码档, 其放置的路径档名. <br />
&nbsp;<br />
当然, 这台备份主机, 可以容纳许多 rsync client 连接, 只要在 rsyncd.conf中设置对应的多个部分即可. <br />
&nbsp;<br />
以下例子,代表二个主机x99及x100欲备份进来: <br />
&nbsp;<br />
&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp;&nbsp; [x99] <br />
&nbsp;&nbsp;&nbsp; path = /blackup/x99/x99_backup<br />
&nbsp;&nbsp;&nbsp; comment = XXXXX <br />
&nbsp;&nbsp;&nbsp; auth users = x99_backup <br />
&nbsp;&nbsp;&nbsp; secrets file = /etc/rsyncd.secrets <br />
&nbsp;&nbsp;&nbsp; read only = no <br />
&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; [x100] <br />
&nbsp;&nbsp;&nbsp; path = /blackup/x100/x100_backup <br />
&nbsp;&nbsp;&nbsp; auth users = x100_backup <br />
&nbsp;&nbsp;&nbsp; secrets file = /etc/rsyncd.secrets <br />
&nbsp;&nbsp;&nbsp; read only = no <br />
&nbsp;<br />
&nbsp; <br />
&nbsp;<br />
4. 设定密码文件: <br />
&nbsp;<br />
rsyncd.secrets 的内容很容易, 格式为"帐号:密码"; <br />
如以下例子: <br />
x99_backup:x99pass <br />
注意! 上述设定只是一个例子,你自己设置可一定千万不要直接套用. <br />
接下来, 要将 rsyncd.secrets 这个密码档的档案属性设为root拥有, 且权限要设为600, 否则无法备份成功! <br />
&nbsp;<br />
因此, 请下:&nbsp; <br />
#chown root.root rsyncd.secrets&nbsp; <br />
#chmod 600 rsyncd.secrets&nbsp; <br />
&nbsp;<br />
至此, rsync的服务器这端已设定完成, 若欲查看备份日志.<br />
#tail -f /var/log/rsyncd.log<br />
&nbsp; <br />
&nbsp;<br />
<br />
接下来是 client 端(即欲备份的网络主机) 的设定. <br />
&nbsp;<br />
&nbsp;<br />
四. 设定 rsync client (假设这台主机 IP 为 : 11.22.33.44) <br />
步骤: <br />
&nbsp;<br />
&nbsp;&nbsp; 1.设定密码档&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp; 2.测试rsync命令是否可以正常&nbsp; <br />
&nbsp;<br />
&nbsp;&nbsp; 3.将rsync指令放入定时任务(crontab)&nbsp; <br />
&nbsp;<br />
另外, 假设x99这台主机是网路上的服务器, 现打算把/var/www/html这个目录加以备份至backup server(上面讲的rsync.x111.com),&nbsp; <br />
&nbsp;<br />
但不想备份下面的目录中的内容/html/log，(也就是说要把/html/log目录排除), 整个操作方式如下: <br />
&nbsp;<br />
1. 假设把密码档放在 /root/rsyncd.secrets, 内容只要含有密码一行即可: <br />
&nbsp;<br />
x99pass <br />
&nbsp;<br />
注意: rsyncd.secrets 的权限属性必须设为600,设置方法见上面. <br />
&nbsp;<br />
2. 测试指令是否可以成功? <br />
&nbsp;<br />
/usr/bin/rsync
-rvztopglHpogDtS --progress&nbsp; --password-file=/root/rsyncd.secrets
/var/www/html --exclude /html/log x99_backup@rsync.x111.com::x99 <br />
&nbsp;<br />
若
出现传输目录档案的画面,
即表示测试成功.上面这个命令行中-rv里的v是verbose，z是压缩，r是递归，字目录一直，topg都是保持文件原有属性如属主、时间的参数。
--progress是指显示出详细的进度情况，--delete是指如果服务器端删除了这一文件，那么客户端也相应把文件删除，保持真正的一致。后面的
x99_backup@ip中，的x99_backup是指的用户名 <br />
&nbsp;<br />
3. 置入工作排程, 假设每天凌晨5点开始备份: <br />
&nbsp;<br />
crontab -u root -e <br />
0
5 * * * /usr/bin/rsync -rvlHpogDtS --password-file=/root/rsyncd.secrets
/var/www/html --exclude apache /html/log x99_backup@rsync.x111.com::x99
<br />
&nbsp;<br />
若您有其它目录(如 /home)要备份, 则如法泡制: 20 5 * * * /usr/bin/rsync
-rvlHpogDtS --password-file=/root/rsyncd.secrets /home
x99_bakup@rsync.x111.com::x99 <br />
&nbsp;<br />
当然您觉得备份一台Backup Server不够,还可再按上述方法,自行增加任意多台Backup Server, 以分散风险! <br />
&nbsp;<br />
&nbsp;<br />
五. 安全性: <br />
&nbsp;<br />
防火墙的 iptables 指令, 来限制 rsync client 的连线范围, 例子如下: <br />
&nbsp;<br />
iptables -A INPUT -p tcp -s ! xx.xx.xx.xx --dport 873 -j DROP <br />
&nbsp;<br />
如此, 只有 xx.xx.xx.xx 这个 client IP 能连入这台 rsync server.<br />
<br />
<br />
附:<br />
详细格式说明：<br />
-v, --verbose 详细模式输出<br />
-q, --quiet 精简输出模式<br />
-c, --checksum 打开校验开关，强制对文件传输进行校验<br />
-a, --archive 归档模式，表示以递归方式传输文件，并保持所有文件属性，等于-rlptgoD<br />
-r, --recursive 对子目录以递归模式处理<br />
-R, --relative 使用相对路径信息<br />
-b, --backup 创建备份，也就是对于目的已经存在有同样的文件名时，将老的文件重新命名为<br />
~filename。可以使用--suffix选项来指定不同的备份文件前缀。<br />
--backup-dir 将备份文件(如~filename)存放在在目录下。<br />
-suffix=SUFFIX 定义备份文件前缀<br />
-u, --update 仅仅进行更新，也就是跳过所有已经存在于DST，并且文件时间晚于要备份的文件。<br />
(不覆盖更新的文件)<br />
-l, --links 保留软链结<br />
-L, --copy-links 想对待常规文件一样处理软链结<br />
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结<br />
--safe-links 忽略指向SRC路径目录树以外的链结<br />
-H, --hard-links 保留硬链结<br />
-p, --perms 保持文件权限<br />
-o, --owner 保持文件属主信息<br />
-g, --group 保持文件属组信息<br />
-D, --devices 保持设备文件信息<br />
-t, --times 保持文件时间信息<br />
-S, --sparse 对稀疏文件进行特殊处理以节省DST的空间<br />
-n, --dry-run现实哪些文件将被传输<br />
-W, --whole-file 拷贝文件，不进行增量检测<br />
-x, --one-file-system 不要跨越文件系统边界<br />
-B, --block-size=SIZE 检验算法使用的块尺寸，默认是700字节<br />
-e, --rsh=COMMAND 指定替代rsh的shell程序<br />
--rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息<br />
-C, --cvs-exclude 使用和CVS一样的方法自动忽略文件，用来排除那些不希望传输的文件<br />
--existing 仅仅更新那些已经存在于DST的文件，而不备份那些新创建的文件<br />
--delete 删除那些DST中SRC没有的文件<br />
--delete-excluded 同样删除接收端那些被该选项指定排除的文件<br />
--delete-after 传输结束以后再删除<br />
--ignore-errors 及时出现IO错误也进行删除<br />
--max-delete=NUM 最多删除NUM个文件<br />
--partial 保留那些因故没有完全传输的文件，以是加快随后的再次传输<br />
--force 强制删除目录，即使不为空<br />
--numeric-ids 不将数字的用户和组ID匹配为用户名和组名<br />
--timeout=TIME IP超时时间，单位为秒<br />
-I, --ignore-times 不跳过那些有同样的时间和长度的文件<br />
--size-only 当决定是否要备份文件时，仅仅察看文件大小而不考虑文件时间<br />
--modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口，默认为0<br />
-T --temp-dir=DIR 在DIR中创建临时文件<br />
--compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份<br />
-P 等同于 --partial --progress 显示备份过程<br />
-z, --compress 对备份的文件在传输时进行压缩处理<br />
--exclude=PATTERN 指定排除不需要传输的文件模式<br />
--include=PATTERN 指定不排除而需要传输的文件模式<br />
--exclude-from=FILE 排除FILE中指定模式的文件<br />
--include-from=FILE 不排除FILE指定模式匹配的文件<br />
--version 打印版本信息<br />
--address 绑定到特定的地址<br />
--config=FILE 指定其他的配置文件，不使用默认的rsyncd.conf文件<br />
--port=PORT 指定其他的rsync服务端口<br />
--blocking-io 对远程shell使用阻塞IO<br />
-stats 给出某些文件的传输状态<br />
--progress 在传输时现实传输过程<br />
--log-format=FORMAT 指定日志文件格式<br />
--password-file=FILE 从FILE中得到密码<br />
--bwlimit=KBPS 限制I/O带宽，KBytes per second<br />
-h, --help 显示帮助信息<br />
<br />
<br />
</font>转自 http://blog.csdn.net/KataDoc360/archive/2009/03/16/3995559.aspx<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/300092.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-10-28 17:55 <a href="http://www.blogjava.net/Skynet/archive/2009/10/28/300092.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>mysql数据定时导入脚本(shell)</title><link>http://www.blogjava.net/Skynet/archive/2009/10/23/299458.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Fri, 23 Oct 2009 02:51:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/10/23/299458.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/299458.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/10/23/299458.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/299458.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/299458.html</trackback:ping><description><![CDATA[<br />
在服务器上发现的定时的导入脚本，记录下来。还是很有用的<br />
30 06 * * * /data/dmsp/shell/crontab_search_stats_import.sh &gt;&gt; /data/dmsp/logs/crontab_search_stats_import.log<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">!/bin/sh</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);"><br />
y</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">$(date&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">d&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">-1&nbsp;day</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+%</span><span style="color: rgb(0, 0, 0);">Y)<br />
m</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">$(date&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">d&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">-1&nbsp;day</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+%</span><span style="color: rgb(0, 0, 0);">m)<br />
d</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">$(date&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">d&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">-1&nbsp;day</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+%</span><span style="color: rgb(0, 0, 0);">d)<br />
<br />
</span><span style="color: rgb(0, 128, 0);">#</span><span style="color: rgb(0, 128, 0);">/data/dmsp/ftp/dim_stats/2009/09/14</span><span style="color: rgb(0, 0, 0);"><br />
<br />
act</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">dim_stats<br />
mypath</span><span style="color: rgb(0, 0, 0);">=/</span><span style="color: rgb(0, 0, 0);">data</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">dmsp</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">ftp</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">${act}</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">${y}</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">${m}</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);">${d}</span><span style="color: rgb(0, 0, 0);">/</span><span style="color: rgb(0, 0, 0);"><br />
<br />
echo&nbsp;$mypath<br />
statpath</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">${mypath}${act}${y}${m}${d}.tar.bz2.state<br />
<br />
</span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);">((&nbsp;j</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">;&nbsp;j</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">10000</span><span style="color: rgb(0, 0, 0);">;&nbsp;j</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">j</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">))<br />
do<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">&nbsp;[&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">d&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">${statpath}</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;]&nbsp;;&nbsp;then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tar&nbsp;xjf&nbsp;${mypath}${act}${y}${m}${d}.tar.bz2&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">C&nbsp;${mypath}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mysql&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">h&nbsp;</span><span style="color: rgb(0, 0, 0);">127.0</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 0);">0.1</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">P3306&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">u&nbsp;root&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">pmysql&nbsp;</span><span style="color: rgb(0, 0, 0);">-</span><span style="color: rgb(0, 0, 0);">e&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">LOAD&nbsp;DATA&nbsp;INFILE&nbsp;'${mypath}part-00000'&nbsp;INTO&nbsp;TABLE&nbsp;dmsp.dmsp_veidoo&nbsp;character&nbsp;set&nbsp;utf8&nbsp;FIELDS&nbsp;TERMINATED&nbsp;BY&nbsp;'\t'&nbsp;lines&nbsp;terminated&nbsp;by&nbsp;'\n'</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">break</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">[${j}:1000]&nbsp;not&nbsp;ready.&nbsp;sleep&nbsp;10&nbsp;seconds&nbsp;then&nbsp;retry.</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep&nbsp;</span><span style="color: rgb(0, 0, 0);">10</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;fi<br />
don</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/299458.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-10-23 10:51 <a href="http://www.blogjava.net/Skynet/archive/2009/10/23/299458.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell  一行命令（记入中）</title><link>http://www.blogjava.net/Skynet/archive/2009/04/23/267187.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Thu, 23 Apr 2009 09:20:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/04/23/267187.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/267187.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/04/23/267187.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/267187.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/267187.html</trackback:ping><description><![CDATA[<br />
1. 去除 空行<br />
sed 'N;s/"n/ /g'&nbsp; file<br />
<br />
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/267187.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-04-23 17:20 <a href="http://www.blogjava.net/Skynet/archive/2009/04/23/267187.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell 删除空文件夹 </title><link>http://www.blogjava.net/Skynet/archive/2009/03/18/260485.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Wed, 18 Mar 2009 07:03:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/03/18/260485.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/260485.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/03/18/260485.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/260485.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/260485.html</trackback:ping><description><![CDATA[<br />
1.windows cygwin 版本&nbsp;<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">&nbsp; find&nbsp;.&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">type&nbsp;d</span><span style="color: #000000;">|<br />
&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">du&nbsp;</span><span style="color: #000000;">|<br />
&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: #000000;">gawk&nbsp;'{</span><span style="color: #0000ff;">if</span><span style="color: #000000;">($</span><span style="color: #000000;">1</span><span style="color: #000000;">==</span><span style="color: #000000;">"</span><span style="color: #000000;">0</span><span style="color: #000000;">"</span><span style="color: #000000;">){print&nbsp;$</span><span style="color: #000000;">2</span><span style="color: #000000;">}}'&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #339966;">&nbsp;#我这使用 cygwin判断 $1==0&nbsp; ,如果使用 linux 那就 $1=="4"<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sort&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">ru&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gawk&nbsp;'{system(</span><span style="color: #000000;">"</span><span style="color: #000000;">rmdir&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">$</span><span style="color: #000000;">0</span><span style="color: #000000;">)}'</span></div>
<br />
2.linux&nbsp; 版本(其实，这个太不严谨!)<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: #eeeeee;"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #000000;">find&nbsp;</span><span style="color: #000000;">.</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">type&nbsp;d</span><span style="color: #000000;">|</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;du&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">S&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gawk&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">{if($1=="4"){print&nbsp;$2}}</span><span style="color: #000000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080;">sort</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">ru&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gawk&nbsp;</span><span style="color: #000000;">'</span><span style="color: #000000;">{system("rmdir&nbsp;"$0)}</span><span style="color: #000000;">'</span></div>
<br />
<strong>3.shell + python </strong><br />
查找 文件夹大小py,参考：<a id="viewpost1_TitleUrl" href="http://www.cnitblog.com/gyn/archive/2007/11/01/35698.html">获取文件夹大小的python代码</a>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">#</span><span style="color: #008000;">!/bin/python</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;os,sys<br />
</span><span style="color: #0000ff;">from</span><span style="color: #000000;">&nbsp;os.path&nbsp;</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;join,&nbsp;getsize<br />
<br />
</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;getdirsize(dir):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;0L;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;root,&nbsp;dirs,&nbsp;files&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;os.walk(dir):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>size += sum([ getdirsize(join(root,dname)) for dname in dirs ]);<br />
<span style="color: #000000;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;size&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;sum([getsize(join(root,&nbsp;name))&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;name&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;files]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;size;<br />
<br />
dir_path</span><span style="color: #000000;">=</span><span style="color: #000000;">sys.argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br />
filesize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;getdirsize(dir_path);<br />
</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;dir_path,</span><span style="color: #800000;">"</span><span style="color: #800000;">\t</span><span style="color: #800000;">"</span><span style="color: #000000;">,filesize&nbsp;;<br />
</span></div>
<br />
shell <br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;">find&nbsp;</span><span style="color: #000000;">.</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">type&nbsp;d&nbsp;</span><span style="color: #000000;">-</span><span style="color: #0000ff;">exec</span><span style="color: #000000;">&nbsp;python&nbsp;getDirSize</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;{}&nbsp;</span><span style="color: #000000;">\</span><span style="color: #000000;">;</span><span style="color: #000000;">|</span><span style="color: #0000ff;"><br />
sort</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">ru&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;"> <br />
gawk&nbsp;</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">{if($2=="0"){print&nbsp;$1}}</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">|</span><span style="color: #000000;"><br />
gawk&nbsp;</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">{system(" rmdir&nbsp;"$0)}</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;"> <br />
</span></div>
<br />
<br />
<br />
<br />
<br />
find . -type d <strong>#查找文件夹</strong><br />
du&nbsp; <strong>#文件夹大小</strong><br />
gawk '{if($1=="0"){print $2}}' <strong>#文件夹为 0 输出</strong><br />
sort -ru <strong>#为删除准备( 比如 文件夹 ./t1 空 ./t1/t11 空 。排序为 先 ./t1/t11 后 ./t1 。这删除就不会错&nbsp; )</strong><br />
gawk '{system("rmdir "$0)}' <strong>#野蛮的删除</strong><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
其他：<br />
结合sort -u&nbsp; 可以找出最小或最大 几个文件<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">#</span><span style="color: #008000;">!python</span><span style="color: #008000;"><br />
#</span><span style="color: #008000;">&nbsp;python&nbsp;this.py&nbsp;/home/xj_liukaiyi/imusic/&nbsp;".*128kbps\/.*\.mp3"</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;os,sys,re<br />
</span><span style="color: #0000ff;">from</span><span style="color: #000000;">&nbsp;os.path&nbsp;</span><span style="color: #0000ff;">import</span><span style="color: #000000;">&nbsp;join,&nbsp;getsize<br />
<br />
</span><span style="color: #0000ff;">def</span><span style="color: #000000;">&nbsp;getdirsize(dir,refile):<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;root,&nbsp;dirs,&nbsp;files&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;os.walk(dir):<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;dname&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;dirs&nbsp;:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getdirsize(join(root,dname),refile)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;name&nbsp;</span><span style="color: #0000ff;">in</span><span style="color: #000000;">&nbsp;files&nbsp;:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ffname</span><span style="color: #000000;">=</span><span style="color: #000000;">join(root,name)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;re.search(refile,ffname):<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">%09d\t%s</span><span style="color: #800000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">%</span><span style="color: #000000;">&nbsp;(getsize(ffname),ffname)<br />
<br />
dir_path</span><span style="color: #000000;">=</span><span style="color: #000000;">sys.argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">];<br />
file_re</span><span style="color: #000000;">=</span><span style="color: #000000;">sys.argv[</span><span style="color: #000000;">2</span><span style="color: #000000;">];<br />
<br />
filesize&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;getdirsize(dir_path,file_re);<br />
<br />
</span></div>
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/260485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-03-18 15:03 <a href="http://www.blogjava.net/Skynet/archive/2009/03/18/260485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>memcachedb </title><link>http://www.blogjava.net/Skynet/archive/2009/02/26/256836.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Thu, 26 Feb 2009 08:23:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/02/26/256836.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/256836.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/02/26/256836.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/256836.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/256836.html</trackback:ping><description><![CDATA[<br />
安装参考：<br />
&nbsp;&nbsp; http://www.cnblogs.com/cerxp/archive/2008/04/22/1165620.html<br />
<br />
相对 memcached 增强的功能：<br />
&nbsp; 1. 坠机后，&#8220;缓存&#8221;初始化回到断电前<br />
&nbsp; 2. 支持同步（可看成集群）<a id="AjaxHolder_ctl01_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/pc-funning/archive/2009/02/11/1388020.html">Memcachedb 简单使用</a><br />
<br />
代价：<br />
&nbsp; 比 memcached 慢 15%<br />
参考：http://swik.net/Jabber-linux/Jabber+XMPP+resource/memcachedb%E7%9A%84%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/b1odq<br />
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/256836.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-02-26 16:23 <a href="http://www.blogjava.net/Skynet/archive/2009/02/26/256836.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4j perl 错误日志提取</title><link>http://www.blogjava.net/Skynet/archive/2009/02/19/255445.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Thu, 19 Feb 2009 05:01:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/02/19/255445.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/255445.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/02/19/255445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/255445.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/255445.html</trackback:ping><description><![CDATA[<br />
日志<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">#</span><span style="color: #008000;">!/bin/perl</span><span style="color: #008000;"><br />
</span><span style="color: #0000ff;">use</span><span style="color: #000000;">&nbsp;Encode&nbsp;;<br />
</span><span style="color: #0000ff;">open</span><span style="color: #000000;">(NOTESFILES</span><span style="color: #000000;">,</span><span style="color: #800080;">$ARGV</span><span style="color: #000000;">[</span><span style="color: #800000;">0</span><span style="color: #000000;">]);<br />
<br />
</span><span style="color: #0000ff;">my</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">%errorMeganotes</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000ff;">print</span><span style="color: #000000;"> </span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$ARGV</span><span style="color: #000000;">[</span><span style="color: #800000;">0</span><span style="color: #000000;">]</span><span style="color: #000000;">,</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">;<br />
<br />
</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">NOTESFILES</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">)&nbsp;{<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(&nbsp;</span><span style="color: #800080;">$_</span><span style="color: #000000;">=~/^</span><span style="color: #000000;">(</span><span style="color: #000000;">\</span><span style="color: #000000;">d{</span><span style="color: #800000;">4</span><span style="color: #000000;">}</span><span style="color: #000000;">-\</span><span style="color: #000000;">d{</span><span style="color: #800000;">2</span><span style="color: #000000;">}</span><span style="color: #000000;">-\</span><span style="color: #000000;">d{</span><span style="color: #800000;">2</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;">d{</span><span style="color: #800000;">2</span><span style="color: #000000;">}</span><span style="color: #000000;">:\</span><span style="color: #000000;">d{</span><span style="color: #800000;">2</span><span style="color: #000000;">}</span><span style="color: #000000;">:\</span><span style="color: #000000;">d{</span><span style="color: #800000;">2</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;">ERROR</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: #000000;">.*</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;">g&nbsp;){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #800080;">$errorMeganotes</span><span style="color: #000000;">{$</span><span style="color: #800000;">2</span><span style="color: #000000;">}){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">push</span><span style="color: #000000;">&nbsp;@{</span><span style="color: #800080;">$errorMeganotes</span><span style="color: #000000;">{$</span><span style="color: #800000;">2</span><span style="color: #000000;">}}</span><span style="color: #000000;">,</span><span style="color: #000000;">$</span><span style="color: #800000;">1</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #800080;">$errorMeganotes</span><span style="color: #000000;">{$</span><span style="color: #800000;">2</span><span style="color: #000000;">}</span><span style="color: #000000;">=</span><span style="color: #000000;">[$</span><span style="color: #800000;">1</span><span style="color: #000000;">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}<br />
}<br />
<br />
</span><span style="color: #0000ff;">for</span><span style="color: #000000;">(</span><span style="color: #0000ff;">keys</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">%errorMeganotes</span><span style="color: #000000;">){<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">my</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">$tmp_keys</span><span style="color: #000000;">=</span><span style="color: #800080;">$_</span><span style="color: #000000;">;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">my</span><span style="color: #000000;">&nbsp;</span><span style="color: #800080;">@tmp_array</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;@{</span><span style="color: #800080;">$errorMeganotes</span><span style="color: #000000;">{</span><span style="color: #800080;">$tmp_keys</span><span style="color: #000000;">}};<br />
&nbsp;&nbsp;</span><span style="color: #0000ff;">print</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">error&nbsp;number&nbsp;:&gt;&gt;</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #0000ff;">scalar</span><span style="color: #000000;">(</span><span style="color: #800080;">@tmp_array</span><span style="color: #000000;">)</span><span style="color: #000000;">,</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">&lt;&lt;\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">encode(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">GBK</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">decode(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">UTF-8</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">$tmp_keys</span><span style="color: #000000;">))</span><span style="color: #000000;">,</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #0000ff;">join</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">,\t</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #800080;">@tmp_array</span><span style="color: #000000;">)</span><span style="color: #000000;">,</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">\n\n\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">;<br />
}<br />
</span></div>
<br />
<br />
sh<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008000;">#</span><span style="color: #008000;">!/bin/sh</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">nowDate</span><span style="color: #000000;">=</span><span style="color: #000000;">$(date&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">d&nbsp;</span><span style="color: #800000;">'</span><span style="color: #800000;">-1&nbsp;day</span><span style="color: #800000;">'</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">+%</span><span style="color: #000000;">Y</span><span style="color: #000000;">-%</span><span style="color: #000000;">m</span><span style="color: #000000;">-%</span><span style="color: #000000;">d);<br />
echo&nbsp;$nowDate<br />
<br />
perl&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">apps</span><span style="color: #000000;">/</span><span style="color: #000000;">shell</span><span style="color: #000000;">/</span><span style="color: #000000;">meganotesErrorLog.pl&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">apps</span><span style="color: #000000;">/</span><span style="color: #000000;">meganotes</span><span style="color: #000000;">/</span><span style="color: #000000;">tomcat</span><span style="color: #000000;">/</span><span style="color: #000000;">logs</span><span style="color: #000000;">/</span><span style="color: #000000;">app</span><span style="color: #000000;">/</span><span style="color: #000000;">app.log.$nowDate&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;&nbsp;_tmp_$nowDate&nbsp;;<br />
perl&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">apps</span><span style="color: #000000;">/</span><span style="color: #000000;">shell</span><span style="color: #000000;">/</span><span style="color: #000000;">meganotesErrorLog.pl&nbsp;</span><span style="color: #000000;">/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">apps</span><span style="color: #000000;">/</span><span style="color: #000000;">schedule</span><span style="color: #000000;">/</span><span style="color: #000000;">tomcat</span><span style="color: #000000;">/</span><span style="color: #000000;">logs</span><span style="color: #000000;">/</span><span style="color: #000000;">app</span><span style="color: #000000;">/</span><span style="color: #000000;">app.log.$nowDate&nbsp;&nbsp;</span><span style="color: #000000;">&gt;&gt;</span><span style="color: #000000;">&nbsp;_tmp_$nowDate&nbsp;;<br />
<br />
<br />
mail&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">s&nbsp;$nowDate</span><span style="color: #000000;">-</span><span style="color: #000000;">ERROR</span><span style="color: #000000;">-</span><span style="color: #000000;">log&nbsp;&nbsp;my@mail.com&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;&nbsp;_tmp_$nowDate;<br />
rm&nbsp;_tmp_$nowDate&nbsp;;<br />
</span></div>
<br />
结果：<br />
&gt;&gt;&gt;&gt;&gt;&gt;&gt;/data/apps/meganotes/tomcat/logs/app/app.log.2009-02-18&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;<br />
error number :&gt;&gt;2&lt;&lt;<br />
MusicActionOpLogProxy:142 - music.popularTime=[Invalid field value for field "music.popularTime".]<br />
2009-02-18 15:53:54,&nbsp;&nbsp; &nbsp;2009-02-18 16:00:12<br />
。。。。。。<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/255445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-02-19 13:01 <a href="http://www.blogjava.net/Skynet/archive/2009/02/19/255445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell if 使用 </title><link>http://www.blogjava.net/Skynet/archive/2009/02/02/252918.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Mon, 02 Feb 2009 02:35:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2009/02/02/252918.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/252918.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2009/02/02/252918.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/252918.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/252918.html</trackback:ping><description><![CDATA[<br />
写 shell 使用 if&nbsp; 留个文<br />
说明：<br />
&nbsp;&nbsp; 下面可学习到 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 当 sh 文件接受到 2个，1个，或无参数时 解决办法(注意 $1 要 "$1" 这样使用 )<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. sh 中 参数赋值 _var = $(...)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 取得当前时间&nbsp; <span style="color: #000000;">$(date&nbsp;</span><span style="color: #000000;">+</span><span style="color: #800080;">%Y</span><span style="color: #000000;">-</span><span style="color: #800080;">%m</span><span style="color: #000000;">-</span><span style="color: #800080;">%d</span><span style="color: #000000;">) 前天时间 </span><span style="color: #008000;">$(date&nbsp;-d&nbsp;'-1&nbsp;day'&nbsp;+%Y-%m-%d)</span><span style="color: #008000;"><br />
</span>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #000000;"><br />
</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n "$</span><span style="color: #800000;">2"</span><span style="color: #000000;"> ]&nbsp;;&nbsp;then<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mydate</span><span style="color: #000000;">=</span><span style="color: #000000;">$</span><span style="color: #800000;">1</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_copyright</span><span style="color: #000000;">=/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">ftp_share</span><span style="color: #000000;">/</span><span style="color: #000000;">copyright</span><span style="color: #000000;">/</span><span style="color: #000000;">$</span><span style="color: #800000;">2</span><span style="color: #000000;">-</span><span style="color: #000000;">copyright</span><span style="color: #000000;">.</span><span style="color: #800000;">000</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_walkman</span><span style="color: #000000;">=/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">ftp_share</span><span style="color: #000000;">/</span><span style="color: #000000;">copyright</span><span style="color: #000000;">/</span><span style="color: #000000;">$</span><span style="color: #800000;">2</span><span style="color: #000000;">-</span><span style="color: #000000;">walkman</span><span style="color: #000000;">.</span><span style="color: #800000;">000</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_fullsong</span><span style="color: #000000;">=/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">ftp_share</span><span style="color: #000000;">/</span><span style="color: #000000;">copyright</span><span style="color: #000000;">/</span><span style="color: #000000;">$</span><span style="color: #800000;">2</span><span style="color: #000000;">-</span><span style="color: #000000;">fullsong</span><span style="color: #000000;">.</span><span style="color: #800000;">000</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_shaker</span><span style="color: #000000;">=/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">ftp_share</span><span style="color: #000000;">/</span><span style="color: #000000;">copyright</span><span style="color: #000000;">/</span><span style="color: #000000;">$</span><span style="color: #800000;">2</span><span style="color: #000000;">-</span><span style="color: #000000;">shaker</span><span style="color: #000000;">.</span><span style="color: #800000;">000</span><span style="color: #000000;"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_color</span><span style="color: #000000;">=/</span><span style="color: #000000;">data</span><span style="color: #000000;">/</span><span style="color: #000000;">ftp_share</span><span style="color: #000000;">/</span><span style="color: #000000;">copyright</span><span style="color: #000000;">/</span><span style="color: #000000;">$</span><span style="color: #800000;">2</span><span style="color: #000000;">-</span><span style="color: #000000;">color</span><span style="color: #000000;">.</span><span style="color: #800000;">000</span><span style="color: #000000;"><br />
elif&nbsp;&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n "$</span><span style="color: #800000;">1"</span><span style="color: #000000;"> ]&nbsp;&nbsp;;then<br />
&nbsp;&nbsp;mydate</span><span style="color: #000000;">=</span><span style="color: #000000;">$</span><span style="color: #800000;">1</span><span style="color: #000000;"><br />
&nbsp;&nbsp;_copyright</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;copyright&nbsp;$</span><span style="color: #800000;">1</span><span style="color: #000000;">)<br />
&nbsp;_walkman</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;&nbsp;walkman&nbsp;$</span><span style="color: #800000;">1</span><span style="color: #000000;">)<br />
&nbsp;_fullsong</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;&nbsp;fullsong&nbsp;$</span><span style="color: #800000;">1</span><span style="color: #000000;">)<br />
&nbsp;_shaker</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;&nbsp;shaker&nbsp;$</span><span style="color: #800000;">1</span><span style="color: #000000;">)<br />
&nbsp;_color</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;&nbsp;color&nbsp;$</span><span style="color: #800000;">1</span><span style="color: #000000;">)&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #008000;">#</span><span style="color: #008000;">ydate=$(date&nbsp;-d&nbsp;'-1&nbsp;day'&nbsp;+%Y-%m-%d)</span><span style="color: #008000;"><br />
</span><span style="color: #000000;">&nbsp;&nbsp;mydate</span><span style="color: #000000;">=</span><span style="color: #000000;">$(date&nbsp;</span><span style="color: #000000;">+</span><span style="color: #800080;">%Y</span><span style="color: #000000;">-</span><span style="color: #800080;">%m</span><span style="color: #000000;">-</span><span style="color: #800080;">%d</span><span style="color: #000000;">)<br />
&nbsp;&nbsp;_copyright</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;copyright)<br />
&nbsp;_walkman</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;walkman)<br />
&nbsp;_fullsong</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;fullsong)<br />
&nbsp;_shaker</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;shaker)<br />
&nbsp;_color</span><span style="color: #000000;">=</span><span style="color: #000000;">$(python&nbsp;findIncBizDataFile</span><span style="color: #000000;">.</span><span style="color: #000000;">py&nbsp;color)<br />
fi;</span></div>
<br />
<br />
<br />
<br />
<br />
if 参数说明 <br />
<ul>
    <li><font size="4">&#8211;b 当file存在并且是块文件时返回真
    </font></li>
    <li><font size="4">-c 当file存在并且是字符文件时返回真
    </font></li>
    <li><font size="4">-d 当pathname存在并且是一个目录时返回真
    </font></li>
    <li><font size="4">-e 当pathname指定的文件或目录存在时返回真
    </font></li>
    <li><font size="4">-f 当file存在并且是正规文件时返回真
    </font></li>
    <li><font size="4">-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
    </font></li>
    <li><font size="4">-h 当file存在并且是符号链接文件时返回真，该选项在一些老系统上无效
    </font></li>
    <li><font size="4">-k 当由pathname指定的文件或目录存在并且设置了&#8220;粘滞&#8221;位时返回真
    </font></li>
    <li><font size="4">-p 当file存在并且是命令管道时返回为真
    </font></li>
    <li><font size="4">-r 当由pathname指定的文件或目录存在并且可读时返回为真
    </font></li>
    <li><font size="4">-s 当file存在文件大小大于0时返回真
    </font></li>
    <li><font size="4">-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
    </font></li>
    <li><font size="4">-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
    </font></li>
    <li><font size="4">-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。 </font></li>
</ul>
<p><font size="4">UNIX Shell 里面比较字符写法：</font></p>
<ul>
    <li><font size="4">-eq&nbsp;&nbsp; 等于
    </font></li>
    <li><font size="4">-ne&nbsp;&nbsp;&nbsp; 不等于
    </font></li>
    <li><font size="4">-gt&nbsp;&nbsp;&nbsp; 大于
    </font></li>
    <li><font size="4">-lt&nbsp;&nbsp;&nbsp; 小于
    </font></li>
    <li><font size="4">-le&nbsp;&nbsp;&nbsp; 小于等于
    </font></li>
    <li><font size="4">-ge&nbsp;&nbsp; 大于等于
    </font></li>
    <li><font size="4">-z&nbsp;&nbsp;&nbsp; 空串
    </font></li>
    <li><font size="4">=&nbsp; &nbsp;&nbsp; 两个字符相等
    </font></li>
    <li><font size="4">!=&nbsp;&nbsp;&nbsp; 两个字符不等
    </font></li>
    <li><font size="4">-n&nbsp;&nbsp;&nbsp; 非空串</font></li>
</ul>
<br />
<br />
在这有个比较郁闷的地方 （<strong>由<a id="AjaxHolder_Comments_CommentList_ctl01_NameLink" target="_blank">sunnycare指正，问题经过修改</a></strong>）<br />
&nbsp; 有那个 能帮我下 if and 使用 <br />
比如：<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">z&nbsp;]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">z&nbsp;];&nbsp;then&nbsp;echo&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;echo&nbsp;</span><span style="color: #800000;">22</span><span style="color: #000000;">;&nbsp;fi;<br />
结果&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">&nbsp;（正确）<br />
<br />
</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;];&nbsp;then&nbsp;echo&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;echo&nbsp;</span><span style="color: #800000;">22</span><span style="color: #000000;">;&nbsp;fi;<br />
结果&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">&nbsp;（错误）<br />
<strong>这是 不能理解的&nbsp;地方，</strong><br />
<br />
</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;</span><span style="color: #000000; font-weight: bold;">''</span><span style="color: #000000;">&nbsp;];&nbsp;then&nbsp;echo&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;echo&nbsp;</span><span style="color: #800000;">22</span><span style="color: #000000;">;&nbsp;fi;<br />
或<br />
</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;</span><span style="color: #800000;">1</span><span style="color: #000000;">&nbsp;]&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;[&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">n&nbsp;</span><span style="color: #000000; font-weight: bold;">""</span><span style="color: #000000;">&nbsp;];&nbsp;then&nbsp;echo&nbsp;</span><span style="color: #800000;">11</span><span style="color: #000000;">;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;echo&nbsp;</span><span style="color: #800000;">22</span><span style="color: #000000;">;&nbsp;fi;<br />
结果&nbsp;</span><span style="color: #800000;">22</span><span style="color: #000000;">&nbsp;（正确）<br />
</span></div>
<br />
应该是 22 但结果是 11 郁闷！！<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/252918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2009-02-02 10:35 <a href="http://www.blogjava.net/Skynet/archive/2009/02/02/252918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sNote（自己的学习笔记）想法 </title><link>http://www.blogjava.net/Skynet/archive/2008/12/10/245420.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Wed, 10 Dec 2008 02:36:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2008/12/10/245420.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/245420.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2008/12/10/245420.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/245420.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/245420.html</trackback:ping><description><![CDATA[下载<br />
<strong>http://www.blogjava.net/Files/Skynet/turtle.rar</strong><br />
(目前项目什么都没有 <img src="/CuteSoft_Client/CuteEditor/images/emsmiled.gif" alt="" align="absmiddle" border="0" /> ，就是个架子 。有时间会跟新的 ，如果有人想加入，请联系我 liukaiyi@gmail.com)<br />
由于时间粗略 ，写的乱。不过想法很好（安全什么叫别说了，定位就是给自己用的）<br />
<strong>刚处理 shell &lt;-&gt; py 乱码问题 ，留文 </strong><br />
由于万恶的Windows dos 使用gbk 编码 ，导致我连他的 comm 一定要使用 编码转换<br />
从页面接受到到的命令 ：<br />
commCharset="GBK"<br />
sh_comm=sh_comm.encode(commCharset)<br />
运行命令得到的结果<br />
fp=os.popen(sh_comm)<br />
sh_comm_value=unicode(fp.read(), commCharset)<br />
<br />
<br />
<br />
&nbsp;<strong>你想要的学习笔记本 = web + shell + python + 文本&nbsp; ；</strong><br />
<br />
想法是：通过web 使用shell强大的文本处理功能。帮助你整理学习笔记<br />
比如：<br />
一个py 中文处理你刚解决，到页面上 随便输入 你解决的办法，贴个关键字。<br />
下次 <br />
<br />
findWords.sh（shell 自己定义，当然可以使用web 包装下 ） &gt;&gt;<br />
#/bin/shell<br />
find / -type f -name | grep $1<br />
findWords.sh 中文处理<br />
<strong><br />
http://www.blogjava.net/Files/Skynet/turtle.rar</strong><br />
项目说明 ：<br />
项目目前使用 windows + cygWin shell <br />
配置好 django<br />
使用 eclipes + ant （pybuild.xml）<br />
上面的运行只是能简单在web中的运行shell和展现运行结果<br />
运行结果<br />
<br />
shell 命令 <input name="sh_comm" value=" " type="text" align="baseline" /><input value="提交" type="submit" /><br />
ls -l<br />
总计 96<br />
drwxr-xr-x 4 Administrator None    0 Dec  2 14:11 myTurtle<br />
-rw-r--r-- 1 Administrator None   21 Dec  2 14:34 pybuild.properties<br />
-rw-r--r-- 1 Administrator None 1040 Dec  2 14:16 pybuild.xml<br />
drwxr-xr-x 2 Administrator None    0 Dec  2 17:07 shell<br />
-rw-r--r-- 1 Administrator None  164 Dec  2 16:47 需求<br />
<img src ="http://www.blogjava.net/Skynet/aggbug/245420.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2008-12-10 10:36 <a href="http://www.blogjava.net/Skynet/archive/2008/12/10/245420.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>window grep vim </title><link>http://www.blogjava.net/Skynet/archive/2008/10/20/235439.html</link><dc:creator>刘凯毅</dc:creator><author>刘凯毅</author><pubDate>Mon, 20 Oct 2008 05:36:00 GMT</pubDate><guid>http://www.blogjava.net/Skynet/archive/2008/10/20/235439.html</guid><wfw:comment>http://www.blogjava.net/Skynet/comments/235439.html</wfw:comment><comments>http://www.blogjava.net/Skynet/archive/2008/10/20/235439.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/Skynet/comments/commentRss/235439.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Skynet/services/trackbacks/235439.html</trackback:ping><description><![CDATA[shell 中 运行参数手机<br />
_copyright=$(python findIncBizDataFile.py copyright)<br />
<br />
<br />
可以参考：<br />
<strong>cygWin</strong>: http://blog.chinaunix.net/u/19782/showart_408547.html<br />
1&gt;. 安装cygwin，他可以满足你大部分Linux命令的需要。真是个好东西。<br />
&nbsp;&nbsp;&nbsp; 下载的地址为：<a href="http://www.cygwin.com/" target="_blank">http://www.cygwin.com/</a><br />
完成后设置 bin 到path中 就ok!<br />
<br />
安装 gvim <a href="ftp://ftp.vim.org/pub/vim/pc/gvim72.exe">gvim72.exe</a><br />
http://www.vim.org/<br />
<br />
<br />
<strong>grep </strong><br />
&nbsp;&nbsp;
文本查找： grep -nr "string with space" ./*<br />
<br />
<strong>find </strong><br />
&nbsp;&nbsp; find . -name '*[html<strong>!</strong>py]' <br />
&nbsp;&nbsp;
文件根据时间：find . -type f -amin +1<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
find . -name '*c*' -type f&nbsp; -maxdepth 2<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
find . -name '*ction*.java' -exec cat -n {}&nbsp; ; |less<br />
<br />
<br />
<strong>find + grep </strong><br />
&nbsp;&nbsp; find . -type f -name "*.txt" |xargs grep 'use this' -n<br />
<strong>&nbsp;查询比 file 文件新的.</strong><br />
&nbsp;&nbsp;
find . -type f -name "*.txt" -newer ./lib/hadoop-0.18.1/kfs-0.1.LICENSE.txt|xargs grep 'sf' -ln<br />
<br />
<strong>find+cp<br />
</strong>find ./lib -type f -name&nbsp; '*.jar' -exec cp -rf {}&nbsp; ./mn_mod_admin/WebRoot/WEB-INF/lib ;<br />
<br />
<strong>替换：</strong><br />
find -type f -name Root -exec&nbsp; sed -i 's/59.151.33.197/cvs.xunjienet.cn/g' {} ;<br />
<br />
<strong>管道：</strong><br />
&nbsp;-ok 每次执行会询问？<br />
&nbsp;-exec 直接运行!<br />
&nbsp;|args 直接运行 但上得结果默认插入后句最后。<br />
<br />
<br />
<br />
<strong>gvim </strong>乱码解决：http://www.cnblogs.com/shipfi/archive/2008/04/07/1140025.html<br />
把以下设置添加到.vimrc中。<br />
set encoding=utf-8<br />
set fileencodings=utf-8,chinese,latin-1<br />
if has("win32")<br />
&nbsp; set fileencoding=chinese<br />
else<br />
&nbsp; set fileencoding=utf-8<br />
endif<br />
language message zh_CN.utf-8<br />
"解决菜单乱码<br />
source $VIMRUNTIME/delmenu.vim<br />
source $VIMRUNTIME/menu.vim<br />
<br />
<br />
命令集合：<br />
:ls&nbsp; :n<br />
:edit filename <br />
:split <var></var>:vsplit&nbsp; <font color="#99ccff">Ctrl-w w</font><br />
<br />
<br />
<br />
<pre><br />
<br />
<br />
<br />
</pre>
<br />
<br />
<br />
<br />
gvim +11 file.txt<br />
显示行号：set nu<br />
替换：http://ks.cn.yahoo.com/question/1408012501095.html<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :%s/four/4/g <br />
<br />
光标定位： <br />
<img src ="http://www.blogjava.net/Skynet/aggbug/235439.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Skynet/" target="_blank">刘凯毅</a> 2008-10-20 13:36 <a href="http://www.blogjava.net/Skynet/archive/2008/10/20/235439.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>