最近用迅雷FTP探测器下载数据,下载好之后发现漏下了好多数据,所以使用linux wget命令来实现FTP数据批量下载
关于wget命令可以 用wget --help 查看帮助,简单说明一下:
wget -r
ftp://www.ngs.noaa.gov/cors/rinex/2012/100/1lsu
# 建立目录树文件夹'www.ngs.noaa.gov'/'cors'/'rinex'/'2012'/'100'/'1lsu',存放下载的文件,
wget -r -nd
ftp://www.ngs.noaa.gov/cors/rinex/2012/100/1lsu
# 不建立目录树文件夹,只下载文件夹内的文件
wget -r -nH
ftp://www.ngs.noaa.gov/cors/rinex/2012/100/1lsu
# 建立目录树文件夹'cors'/'rinex'/'2012'/'100'/'1lsu'存放下载文件,没有网址文件夹
CORS
下载:
进入正题,以美国CORS网的FTP(ftp://www.ngs.noaa.gov/cors/rinex/)为例说明
首先建一个类似于如下的站点信息的表格文件(不需要这么多信息),需包含CORS站的ID和一列表示是否下载该站点数据的指示信息用“0”和“1”表示(0:不下载,1:下载),只需要这两列就OK了,如需下载多个GPS时数据可以多建几列
以2012年100GPS时的数据下载为例:
#!/bin/bash
awk '{if($5==1) print $3}' table_CORS | tr A-Z a-z
>1.txt
while read a
do
wget -r -nH
ftp://www.ngs.noaa.gov/cors/rinex/2012/100/$a
done <1.txt
OR
#!/bin/bash
awk '{if($5==1) print $3}' table_CORS | tr A-Z a-z
>1.txt
for a in `cat 1.txt`
do
wget -r -nH
ftp://www.ngs.noaa.gov/cors/rinex/2012/100/$a
done
#END
IGS
下载:
http://garner.ucsd.edu/pub/rinex/
anonymous(用户名)
& Email address(密码)
for guest entry
建立一个表格文件,以需要下载的IGS站ID为一列 (table_IGS的第三列)
#!/bin/bash
y1=12 #year:2012
g1=001 #GPS time
g2=002
awk '{print $3}' table_IGS | tr A-Z a-z
>1.txt
while read a
do
wget -r -nH -np --http-user=anonymous
--http-password=XXXX@XXXX.com
http://garner.ucsd.edu/pub/rinex/20$y1/$g1/$a"$g1"0."$y1"d.Z
done <1.txt
while read a
do
wget -r -nH -np --http-user=anonymous
--http-password=XXXX@XXXX.com
http://garner.ucsd.edu/pub/rinex/20$y1/$g2/$a"$g2"0."$y1"d.Z
done <1.txt
#END
更复杂的情况可以根据自己需求再修改