免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1072 | 回复: 0
打印 上一主题 下一主题

tb监控改进--用ftp代替scp [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-06 15:41 |只看该作者 |倒序浏览
Taobao监控系统之改进——文件传输
作者:拖雷  来自:
[email=DBA@Taobao]DBA@Taobao[/email]
4月22日 |  标记 - 加标签
Author:拖雷 posted on Taobao.com
在早些的时候,也包括我的书《构建Oracle高可用环境》中的16章,关于监控体系的介绍中,所有的案例都是采用scp从被监控的客户端上拷贝文件到集中分析的Monitor上,类似这样的动作,如
scp $SOURCE_FILE $MONITOR:$TARGET_FILE
当客户端不多的情况下,这么做也是没有什么问题的,而且书写简单,一直在这么用。但是,当客户端的数量上去以后,在大量并发的情况下,有的时候就会出现这样的错误:
ssh_exchange_identification: Connection closed by remote host
lost connection
查看crontab的日志,也可以看到有部分crontab调度失败:
Cron Job with pid: 2859224 Successful
Cron Job with pid: 3154900 Failed
Cron
Job with pid: 3027512 Successful
这是因为ssh对并发的支持不是太好,当很多客户端同时传送文件的时候,可能会有部分客户端传送失败,经过研究,决定用ftp取代scp来传送文件,改写为如下:
TARGET_TMP_FILE=$TARGET_FILE`date +%Y%m%d%H%M%S`
ftp -n
修改以后通过观察,多客户端文件同时并发传输的问题解决,查看crontab的日志,再也没有出现过crontab调度的失败。
注意,这里是先put(上传),然后再rename,这么做的好处也就是解决另外一个并发问题,如ftp被启动多次传递同样一个文件,这个文件可能被多个进程附加,而不是覆盖。而采用可变的临时文件名称(临时文件名称带时间戳标记),等上传完成之后再改名,就可以避免这种情况的发生。
其实采用临时文件
的做法,在unix/linux中也很常见的,如执行crontab -e,就可以看到类似的提示
/tmp/crontab.XXXXXwxMJF” 0L, 0C
其实它也是在/tmp下面建立了自己的临时文件,用来解决并发问题。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/67276/showart_677819.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP