| 您的位置:首页 > 文档 > Shell > |
文章分类热门文章 |
一个检测show128文件更新的shell脚本创建:2005-10-26 00:49:44 作者:Unlinux 来自: http://www.Unlinux.com 证券公司的行情系统最重要的是 show128 库,这个库是上交所的行情。一般这个行情文件通过卫星发到证券公司的 Novell 行情服务器上。 Windows 客户端通过映射驱动器的办法取到这个库文件,我在 Windows 上安装 rsync 程序,侦听在 873 端口。在 Linux 上通过 rsync 脚本,不断去同步这个文件。 由于 crontab 的最小更新时间为一分钟,所以,rsync 的脚本采用死循环来实现。 获取 show128 的脚本如下: while true do WEEK=`date +%w` HOUR=`date +%k` if [ $WEEK -ge 1 -a $WEEK -le 5 -a $HOUR -ge 8 -a $HOUR -le 16 ] then rsync -azv --exclude="GZLX.*" hq::dbf . fi done 程序判断每周一到五,每天 8:00 到 16:00 才同步。 运行时,采用 nohup .. & 的方式实现。 同步后需要检测文件的更新情况,我的脚本是这样的: #!/bin/bash #检测 show128 的更新速度 count=0 total=0 echo begin:0 >show128_counts.txt while true do p_time=`ls -l SHOW128.DBF --time-style="+%H%M%S"|awk '{print $6}'` # echo $p_time sleep 9 c_time=`ls -l SHOW128.DBF --time-style="+%H%M%S"|awk '{print $6}'` diff=`expr $c_time - $p_time` if [ $diff -gt 0 ] then count=`expr $count + 1` if [ $diff -gt 40 ] then diff=`expr $diff - 40` fi total=`expr $total + $diff` avg=`expr $total / $count` echo $count:$c_time:[$diff s][avg:$avg s] >> show128_counts.txt fi done 脚本采用了 ls 命令的 +FORMAT 格式获取文件的秒。 并用 expr 得到两个时间之间的差,但是在两个时间属于不同分钟的时候,由于百进位和 60 进制的差别,需要减去 40 秒。 本脚本即计算出文件的平均更新时间。 转载自:http://www.unlinux.com/doc/shell/20051026/173.html 【评论】 【加入收藏夹】 【大 中 小】 【打印】 【关闭】 ※ 相关链接
|