每天定时下载gfs资料shell脚本
在数值天气预报应用中,经常需要下载一些输入资料,美国ncep的gfs资料是常用的一种分析场资料。业务运行,需要每天定时从ncep网站上下载,所以写了一个Shell脚本实现这一功能。脚本内容如下:
#!/bin/bash export LANG=C # date setting
if [ $# -eq 0 ];then
echo "+++++ Error hours, please check argument! +++++"
echo " Usage: $0 00/06/12/18"
exit 1
else
hh=$1
shift
fi if [ $hh -ne 00 -a $hh -ne 06 -a $hh -ne 12 -a $hh -ne 18 ];then
echo "+++++ Error hours, please check argument! +++++"
echo " Usage: $0 00/06/12/18"
exit 1
fi if [ $# -ne 0 ];then
rundate=$1
else
rundate=`date -u +%Y%m%d`
fi gdate=$rundate # download gfs files to tmp dir
tmppath=/dev/shm/gfs/${gdate}${hh}
rm -rf $tmppath && mkdir -p $tmppath
cd $tmppath
for i in `seq 0 6 72`
do
filepath=ftp://ftpprd.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.${gdate}${hh}
filename=gfs.t${hh}z.pgrb2f`printf %02d $i`
# use axel as first chosen downloader, proz and wget as second and third
/usr/local/bin/axel -n 8 -v ${filepath}/${filename} >& log.${filename}
if ! grep "^Downloaded.*megabytes" log.${filename} ;then
echo "download with axel unsuccessfully! redownload with prozilla"
/usr/local/bin/proz -k=8 -r -f --no-curses --no-netrc --no-getch -v ${filepath}/${filename} >& log.${filename}
if ! grep "All Done" log.${filename} ;then
/usr/bin/wget ${filepath}/${filename} >& log.${filename}
fi
fi
done gfspath=/data/gfs/${gdate}${hh}
test -d $gfspath || mkdir -p $gfspath # move downloaded gfs files to final dir
cd $tmppath
for i in `seq 0 6 72`
do
filename=gfs.t${hh}z.pgrb2f`printf %02d $i`
cp $filename $gfspath && rm -f $filename
done echo
echo "GFS data files downloaded successfully!"
date
每天定时下载gfs资料shell脚本的更多相关文章
- FTP定时批量下载文件(SHELL脚本及使用方法 )
1. 脚本实例 将以下脚本保存为 getftp.sh #!/bin/bash datesign=`date -d -95day +%Y%m%d` ftp -nv 12.2.2.28 << ...
- FTP定时批量下载文件(SHELL脚本及使用方法 ) (转)--good
#/bin/bash URL="http://192.168.5.100/xxx.php" check() { RESULT=$(curl -s $URL) echo $RESUL ...
- iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上-b
用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir.im,以及打包过程中遇到的问题和解决办法 ...
- shell脚本自学笔记
一. 什么是Shell脚本 shell脚本并不能作为正式的编程语言,因为它是在linux的shell中运行的,所以称为shell脚本.事实上,shell脚本就是一些命令的集合. 假如完成某个需求需要一 ...
- Shell 脚本学习资料搜集
Shell文档 ChinaUnix上大神“網中人”总结的Shell十三问,强烈推荐,这本书讲得比较精炼,而且都是一些Shell学习中容易把握不住的一些细节难点.每一问都写得非常精彩.ChinaUnix ...
- shell脚本实现文件的自动上传以及下载 scp sftp lftp 还有expect命令
转至: 最近需求要求定期从一个[定期更新的文件] 中解析员工信息 ,插入到数据库中. 按理来说很简单, 无非就是io流读文件,然后crud balalalala..... 其实不是的, 我我写的这个 ...
- 【转】linux 定时执行shell脚本
在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程,在像备份等需要在操作系统级定时任务只能采用crontab来完成 本文讲述crontab具体用法,以供备忘. 在oracle ...
- linux 定时执行shell脚本
转自:http://blog.csdn.net/jingxiangren/article/details/4745631 在oracle 中可以利用dbms_job包定时执行pl/sql.sql过程, ...
- linux crontab定时执行shell脚本
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:crontab -e 编辑周期任务30 21 * * * /etc/init.d/smb restart 每晚的 ...
随机推荐
- Python os.fstatvfs() 方法
概述 os.fstatvfs() 方法用于返回包含文件描述符fd的文件的文件系统的信息,类似 statvfs().高佣联盟 www.cgewang.com Unix上可用. fstatvfs 方法返回 ...
- PHP link() 函数
定义和用法 link() 函数创建一个从指定名称连接的现存目标文件开始的硬连接. 如果成功,该函数返回 TRUE.如果失败,则返回 FALSE. 语法 link(target,link) 参数 描述 ...
- PHP ftp_size() 函数
定义和用法 ftp_size() 函数返回 FTP 服务器上指定文件的大小. 该函数以字节返回指定文件的大小,如果出错则返回 -1. 语法 ftp_size(ftp_connection,file) ...
- Skill 脚本演示 ycBusNet.il
https://www.cnblogs.com/yeungchie/ ycBusNet.il 用于原理图中按照一定格式,批量创建 Bus . 回到目录
- 5.21 省选模拟赛 luogu P4297 [NOI2006]网络收费 树形dp
LINK:网络收费 还是自己没脑子. 早上思考的时候 发现树形dp不可做 然后放弃治疗了. 没有合理的转换问题的模型是我整个人最大的败笔. 暴力也值得一提 爆搜之后可以写成FFT的形式的计算贡献的方法 ...
- nginx多个server的配置,同一端口
nginx多个server的配置,同一端口 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/e ...
- Jmeter(二十) - 从入门到精通 - JMeter监听器 -下篇(详解教程)
1.简介 监听器用来监听及显示JMeter取样器测试结果,能够以树.表及图形形式显示测试结果,也可以以文件方式保存测试结果,JMeter测试结果文件格式多样,比如XML格式.CSV格式.默认情况下,测 ...
- Java语言程序设计2019.9.16
1.Java的基本运行单位是类. 2.类是由方法和变量组成. 3.变量类型分为byte,int,double,long,short,boolean,char,float.java中整数类型默认的int ...
- SpringCloud系列之API网关(Gateway)服务Zuul
1.什么是API网关 API网关是所有请求的入口,承载了所有的流量,API Gateway是一个门户一样,也可以说是进入系统的唯一节点.这跟面向对象设计模式中的Facet模式很像.API Gatewa ...
- java目前常用的几种定时任务
java目前常用的几种定时任务 JDK自带的Timer spring的Task Quartz elastic-job分布式定时任务 一.JDK自带的Timer Timer是jdk中提供的一个定时器工具 ...