<code>#!/bin/bash</code>
<code>function</code> <code>DownLoad()</code>
<code>{</code>
<code>local</code> <code>url=$1</code>
<code>local</code> <code>dirpath=$2</code>
<code>wget --</code><code>ftp</code><code>-user=gsics --</code><code>ftp</code><code>-password=gsics \</code>
<code>-c -r -q -e robots=off --reject=</code><code>"index.html*"</code> <code>\</code>
<code>--tries=5 \</code>
<code>--timeout=20 \</code>
<code>--waitretry=10 \</code>
<code>--wait=3 \</code>
<code>--no-parent \</code>
<code>-nd -nH --dont-remove-listing \</code>
<code>--directory-prefix=${dirpath} \</code>
<code>${url}</code>
<code>}</code>
<code>psname=$0</code>
<code>psNum=`</code><code>ps</code> <code>aux |</code><code>grep</code> <code>${psname}|</code><code>wc</code> <code>-l`</code>
<code>if</code> <code>[ $psNum -gt 3 ]</code>
<code>then</code>
<code>cdir=`</code><code>pwd</code><code>`</code>
<code>echo</code> <code>'Process is Running .'</code> <code>>${cdir}</code><code>/tmp</code><code>.log</code>
<code>echo</code> <code>`</code><code>date</code><code>` >>${cdir}</code><code>/tmp</code><code>.log</code>
<code>exit</code>
<code>fi</code>
<code>DATADIR=</code><code>/nas03/v6/AQUA/MODIS/L1/ORBIT</code>
<code>thread=5</code>
<code>if</code> <code>[ $</code><code># -eq 2 ];then</code>
<code>stime=$1</code>
<code>etime=$2</code>
<code>else</code>
<code>stime=`</code><code>date</code> <code>--</code><code>date</code><code>=</code><code>"-16 day"</code> <code>+%Y%m%d`</code>
<code>etime=`</code><code>date</code> <code>--</code><code>date</code><code>=</code><code>"-1 day"</code> <code>+%Y%m%d`</code>
<code>let</code> <code>Flag=0</code>
<code>while</code> <code>:</code>
<code>do</code>
<code>if</code> <code>[ ${Flag} -</code><code>eq</code> <code>1 ];</code><code>then</code>
<code> </code><code>stime=$(</code><code>date</code> <code>-d </code><code>"$stime 1day"</code> <code>+%Y%m%d)</code>
<code> </code><code>fi</code>
<code> </code><code>let</code> <code>Flag=1</code>
<code>stime=$(</code><code>date</code> <code>-d </code><code>"$stime 1day"</code> <code>+%Y%m%d)</code>
<code> </code><code>if</code> <code>[[ $stime -gt $etime ]]; </code><code>then</code>
<code> </code><code>break</code>
<code>cat</code> <code>> ftpawx33.tmp << EOF</code>
<code>user gsics gsics</code>
<code>as</code>
<code>cd</code> <code>/AQUA/MODIS/L1/ORBIT/</code><code>${stime:0:6}</code>
<code>nlist </code>
<code>quit</code>
<code>EOF</code>
<code>echo</code> <code>${stime}</code>
<code>jjj=`</code><code>date</code> <code>-d </code><code>"${stime}"</code> <code>+%j`</code>
<code> </code><code>ftp</code> <code>-</code><code>v</code> <code>-n -i 10.0.66.33 < ftpawx33.tmp > ftpnamelist33.info</code>
<code>cat</code> <code>ftpnamelist33.info | </code><code>grep</code> <code>"^MYD"</code> <code>| </code><code>grep</code> <code>".A${stime:0:4}${jjj}"</code> <code>| </code><code>grep</code> <code>".006."</code> <code>>namelist33.txt</code>
<code>if</code> <code>[[ ! -s namelist33.txt ]]</code>
<code> </code><code>then</code>
<code> </code><code>continue</code><code>;</code>
<code>if</code> <code>[ ! -d $DATADIR/${stime:0:6} ]</code>
<code>mkdir</code> <code>-p $DATADIR/${stime:0:6}</code>
<code>DirPath=$DATADIR/${stime:0:6}/</code>
<code>declare</code> <code>-a order_array</code>
<code>let</code> <code>jj=0</code>
<code>for</code> <code>Name </code><code>in</code> <code>`</code><code>cat</code> <code>namelist33.txt`</code>
<code>url=</code><code>ftp</code><code>:</code><code>//10</code><code>.0.66.33:</code><code>/AQUA/MODIS/L1/ORBIT/</code><code>${stime:0:6}/$Name</code>
<code>order_array[$jj]=${url}</code>
<code>let</code> <code>jj=${jj}+1</code>
<code>done</code>
<code>if</code> <code>[ ${</code><code>#order_array[@]} -eq 0 ];then</code>
<code>unset</code> <code>${order_array}</code>
<code>continue</code>
<code>tmp_fifofile=</code><code>"/tmp/$$.fifo"</code>
<code>mkfifo</code> <code>$tmp_fifofile</code>
<code>exec</code> <code>6<> $tmp_fifofile</code>
<code>rm</code> <code>$tmp_fifofile</code>
<code>for</code> <code>((i=0 ;i<$thread ;i++ ));</code>
<code> </code><code>echo</code>
<code>done</code> <code>>&6</code>
<code>for</code> <code>((i = 0 ;i < ${</code><code>#order_array[@]};i++ ));</code>
<code> </code><code>read</code> <code>-u6</code>
<code> </code><code>{</code>
<code> </code><code>DownLoad ${order_array[$i]} ${DirPath}</code>
<code> </code><code>echo</code> <code>>&6</code>
<code> </code><code>}&</code>
<code>wait</code>
<code>exec</code> <code>6>&-</code>
本文轉自 SoulMio 51CTO部落格,原文連結:http://blog.51cto.com/bovin/1937467,如需轉載請自行聯系原作者