b*******r 发帖数: 713 | 1 我有一个程序,能处理一次实验中采集的数据(一般是几十到几百个数据文件,一共是
上G),生成的结果是1个200M左右的图像文件。组里的人采到了数据,都是在本地处理
,然后把原始文件和结果文件上传到远程FTP server A上。
我现在想在局域网建个linux server B,使得组里的人采到原始数据后,直接上传到远
程FTP A上,然后server B把原始数据从A上下载下来,运行数据处理程序,生成结果文
件,上传到FTP,给上传者发一封信通知,然后把原始文件删掉(因为本地空间有限)。
我以为这个就是写个python脚本(我不会linux脚本,python也是菜鸟)检测程序检测
ftp变化,然后下载处理。但是我需要保证一次实验的所有数据都上传完了再执行,这
样的话脚本怎么知道上传完毕了呢?
还有个办法就是在server B上建个web服务器,用户上传完以后,登陆这个网页,在对
话框里输入ftp路径,点击“处理”,然后B就下载处理这组数据。这样的缺点是自动化
程度不够,用户得等ftp上传结束后手动开始处理,不过也可以接受。请问怎样快速搭
这么个server呢?
多谢 |
w***g 发帖数: 5958 | 2 最土的办法:看文件大小是否在变,有一阵子不变了就表示上传完了。
正确的办法:上传FTP也用你的程序,上传算法为:
1. 先把文件上传到一个临时文件,比如带_tmp后缀
2. 上传完了再重命名文件
或者传完文件后再传一个md5sum文件。看到md5sum文件,并且和文件校验成功才
进行处理。
)。
【在 b*******r 的大作中提到】 : 我有一个程序,能处理一次实验中采集的数据(一般是几十到几百个数据文件,一共是 : 上G),生成的结果是1个200M左右的图像文件。组里的人采到了数据,都是在本地处理 : ,然后把原始文件和结果文件上传到远程FTP server A上。 : 我现在想在局域网建个linux server B,使得组里的人采到原始数据后,直接上传到远 : 程FTP A上,然后server B把原始数据从A上下载下来,运行数据处理程序,生成结果文 : 件,上传到FTP,给上传者发一封信通知,然后把原始文件删掉(因为本地空间有限)。 : 我以为这个就是写个python脚本(我不会linux脚本,python也是菜鸟)检测程序检测 : ftp变化,然后下载处理。但是我需要保证一次实验的所有数据都上传完了再执行,这 : 样的话脚本怎么知道上传完毕了呢? : 还有个办法就是在server B上建个web服务器,用户上传完以后,登陆这个网页,在对
|
i**w 发帖数: 883 | 3 上传之后,让上传方加个额外的mark文件——有这个文件表示上传完成了。你的处理程
序只有监视ftp是否存在这个mark文件就好了,你这边处理完后记得删掉这个mark文件 |
n*********d 发帖数: 1603 | 4 这个看具体ftp 程序的实现吧,有些ftp可能在上传途中都是把文件存在缓存区,上传
完毕了在目录下才能看到完整的文件,lz最好做几次实验看看实际情况是怎样的。不然
就得修改下客户端加上传完毕的字段了 |
b*******r 发帖数: 713 | |
a9 发帖数: 21638 | 6 你的土和正确的方法都太不可靠了。
共是
处理
到远
果文
检测
,这
在对
【在 w***g 的大作中提到】 : 最土的办法:看文件大小是否在变,有一阵子不变了就表示上传完了。 : 正确的办法:上传FTP也用你的程序,上传算法为: : 1. 先把文件上传到一个临时文件,比如带_tmp后缀 : 2. 上传完了再重命名文件 : 或者传完文件后再传一个md5sum文件。看到md5sum文件,并且和文件校验成功才 : 进行处理。 : : )。
|
w***a 发帖数: 313 | 7 用ftp没必要,在servers B直接用samba, 把目录共享给各个客户机和server A .
在B 上处理后,结果直接输出到A 的samba目录。要是共享给Linux, 就用nfs.
)。
【在 b*******r 的大作中提到】 : 我有一个程序,能处理一次实验中采集的数据(一般是几十到几百个数据文件,一共是 : 上G),生成的结果是1个200M左右的图像文件。组里的人采到了数据,都是在本地处理 : ,然后把原始文件和结果文件上传到远程FTP server A上。 : 我现在想在局域网建个linux server B,使得组里的人采到原始数据后,直接上传到远 : 程FTP A上,然后server B把原始数据从A上下载下来,运行数据处理程序,生成结果文 : 件,上传到FTP,给上传者发一封信通知,然后把原始文件删掉(因为本地空间有限)。 : 我以为这个就是写个python脚本(我不会linux脚本,python也是菜鸟)检测程序检测 : ftp变化,然后下载处理。但是我需要保证一次实验的所有数据都上传完了再执行,这 : 样的话脚本怎么知道上传完毕了呢? : 还有个办法就是在server B上建个web服务器,用户上传完以后,登陆这个网页,在对
|
M*P 发帖数: 6456 | 8 要看你上传和分析结束的latency如何。比如你一般不需要实时结果,上传完了过两天
看结果也没问题。那你就可以想wdong说的,过一段时间扫一下,看看那个文件不变了
,就开始处理那个文件。
如果latency比较严格,那就需要你自己写ftp的前端。
)。
【在 b*******r 的大作中提到】 : 我有一个程序,能处理一次实验中采集的数据(一般是几十到几百个数据文件,一共是 : 上G),生成的结果是1个200M左右的图像文件。组里的人采到了数据,都是在本地处理 : ,然后把原始文件和结果文件上传到远程FTP server A上。 : 我现在想在局域网建个linux server B,使得组里的人采到原始数据后,直接上传到远 : 程FTP A上,然后server B把原始数据从A上下载下来,运行数据处理程序,生成结果文 : 件,上传到FTP,给上传者发一封信通知,然后把原始文件删掉(因为本地空间有限)。 : 我以为这个就是写个python脚本(我不会linux脚本,python也是菜鸟)检测程序检测 : ftp变化,然后下载处理。但是我需要保证一次实验的所有数据都上传完了再执行,这 : 样的话脚本怎么知道上传完毕了呢? : 还有个办法就是在server B上建个web服务器,用户上传完以后,登陆这个网页,在对
|
n*****t 发帖数: 22014 | 9 原始数据上传到 B,处理之后上传到 A 然后发邮件,大家去 ftp 下载。
)。
【在 b*******r 的大作中提到】 : 我有一个程序,能处理一次实验中采集的数据(一般是几十到几百个数据文件,一共是 : 上G),生成的结果是1个200M左右的图像文件。组里的人采到了数据,都是在本地处理 : ,然后把原始文件和结果文件上传到远程FTP server A上。 : 我现在想在局域网建个linux server B,使得组里的人采到原始数据后,直接上传到远 : 程FTP A上,然后server B把原始数据从A上下载下来,运行数据处理程序,生成结果文 : 件,上传到FTP,给上传者发一封信通知,然后把原始文件删掉(因为本地空间有限)。 : 我以为这个就是写个python脚本(我不会linux脚本,python也是菜鸟)检测程序检测 : ftp变化,然后下载处理。但是我需要保证一次实验的所有数据都上传完了再执行,这 : 样的话脚本怎么知道上传完毕了呢? : 还有个办法就是在server B上建个web服务器,用户上传完以后,登陆这个网页,在对
|
g*****g 发帖数: 34805 | 10 诸如chrome之类的主流浏览器都是这么下载文件的。
【在 a9 的大作中提到】 : 你的土和正确的方法都太不可靠了。 : : 共是 : 处理 : 到远 : 果文 : 检测 : ,这 : 在对
|
T*d 发帖数: 2 | 11 Generate a md5 verification file for a to-be-uploaded file, upload the md5
file first, then upload the original file.
You can check a FTPA file's md5 value, when it matches the md5 value in the
md5 file value, it's completely uploaded. |
d******e 发帖数: 2265 | 12 rsync上传。或者fabric put.
发email
删除。
所有的东西都用fabric。如果你会python的话。
几行代码搞定了。用什么http server啊.
)。
【在 b*******r 的大作中提到】 : 我有一个程序,能处理一次实验中采集的数据(一般是几十到几百个数据文件,一共是 : 上G),生成的结果是1个200M左右的图像文件。组里的人采到了数据,都是在本地处理 : ,然后把原始文件和结果文件上传到远程FTP server A上。 : 我现在想在局域网建个linux server B,使得组里的人采到原始数据后,直接上传到远 : 程FTP A上,然后server B把原始数据从A上下载下来,运行数据处理程序,生成结果文 : 件,上传到FTP,给上传者发一封信通知,然后把原始文件删掉(因为本地空间有限)。 : 我以为这个就是写个python脚本(我不会linux脚本,python也是菜鸟)检测程序检测 : ftp变化,然后下载处理。但是我需要保证一次实验的所有数据都上传完了再执行,这 : 样的话脚本怎么知道上传完毕了呢? : 还有个办法就是在server B上建个web服务器,用户上传完以后,登陆这个网页,在对
|
d*******r 发帖数: 3299 | 13 确实,fabric 是正途
你这个像临时偏 Ops 的东西
【在 d******e 的大作中提到】 : rsync上传。或者fabric put. : 发email : 删除。 : 所有的东西都用fabric。如果你会python的话。 : 几行代码搞定了。用什么http server啊. : : )。
|
b*******s 发帖数: 5216 | 14 create an empty file named as 'finished'
【在 w***g 的大作中提到】 : 最土的办法:看文件大小是否在变,有一阵子不变了就表示上传完了。 : 正确的办法:上传FTP也用你的程序,上传算法为: : 1. 先把文件上传到一个临时文件,比如带_tmp后缀 : 2. 上传完了再重命名文件 : 或者传完文件后再传一个md5sum文件。看到md5sum文件,并且和文件校验成功才 : 进行处理。 : : )。
|