由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 在服务器端如何确认一个文件已经ftp传输完毕?
相关主题
我也快被firefox和java弄疯了,请大侠支招substring 的问题
问个关于find 的问题linux下能否远程访问文件
一个非常烦人的problem如何向远程的另外一个用户穿文件?
请教如何更改启动时的默认目录?这个可能是什么问题
弱弱的问问几个跟Linux有关的问题请教:一个目录下的文件转移到多个子目录下
Symbolic Link: ln 和 cp -s 是一样的么?请问linux那里可以放so文件?
windows加载网盘,是不是一个server只能用一个id?UNIX 拷贝问题 (转载)
php readfile不能读取其他目录?scp 选择性的转移某些文件,怎么操作?
相关话题的讨论汇总
话题: 文件话题: zipfile话题: 传输话题: archive话题: unzip
进入Linux版参与讨论
1 (共1页)
c*****m
发帖数: 1160
1
我需要在服务器上监测一个ftp目录,客户上传文件之后,这里把文件拷贝(mv)到
backup目录然后解压分析处理。
我总能用列文件的方式对在这个目录出现的文件处理,但是我怎么能知道这个文件是“
正在传输中”还是“已经完成传输”?
我所能想到的方法就是用file modified time跟当前 server clock比较,如果已经超
过1分钟(或者更长时间,5分钟?)就认为完成传输。
有什么建议?谢谢。
Ubuntu 12.04服务器。
c*****m
发帖数: 1160
2
另一个想法:如果这个文件正在传输,我 mv 它,是不是会失败?那么我就 try catch
这个失败,就可以忽略它了。
这个方式如何?
b******6
发帖数: 572
3
已经在 宝典 那里回答了。
看看 lsof 能不能行。
最好不要用 mv 这种方法,很危险。

catch

【在 c*****m 的大作中提到】
: 另一个想法:如果这个文件正在传输,我 mv 它,是不是会失败?那么我就 try catch
: 这个失败,就可以忽略它了。
: 这个方式如何?

n*****t
发帖数: 22014
4
mv 不会失败

catch

【在 c*****m 的大作中提到】
: 另一个想法:如果这个文件正在传输,我 mv 它,是不是会失败?那么我就 try catch
: 这个失败,就可以忽略它了。
: 这个方式如何?

h*******t
发帖数: 2679
5
我们的做法是传完后,客户端主动上传个小的带md5之类文件信息的文本文件.

【在 c*****m 的大作中提到】
: 我需要在服务器上监测一个ftp目录,客户上传文件之后,这里把文件拷贝(mv)到
: backup目录然后解压分析处理。
: 我总能用列文件的方式对在这个目录出现的文件处理,但是我怎么能知道这个文件是“
: 正在传输中”还是“已经完成传输”?
: 我所能想到的方法就是用file modified time跟当前 server clock比较,如果已经超
: 过1分钟(或者更长时间,5分钟?)就认为完成传输。
: 有什么建议?谢谢。
: Ubuntu 12.04服务器。

c*****m
发帖数: 1160
6
啊,要是客户能多传一个"success"文件就完美了,可是我们不能这样要求客户啊。
a9
发帖数: 21638
7
你可以尝试打开这个文件,打不开就是还没传完吧?

【在 c*****m 的大作中提到】
: 啊,要是客户能多传一个"success"文件就完美了,可是我们不能这样要求客户啊。
n*****t
发帖数: 22014
8
体会一下 tail -f

【在 a9 的大作中提到】
: 你可以尝试打开这个文件,打不开就是还没传完吧?
a9
发帖数: 21638
9
我提供个思路而已,至少要用某种模式打开吧。

【在 n*****t 的大作中提到】
: 体会一下 tail -f
h**i
发帖数: 712
10
要是我来做,直接改FTP源码,不过这种暴力手段只适合嵌入式系统,lsof 是个思路,
查log也比较稳妥。

【在 c*****m 的大作中提到】
: 我需要在服务器上监测一个ftp目录,客户上传文件之后,这里把文件拷贝(mv)到
: backup目录然后解压分析处理。
: 我总能用列文件的方式对在这个目录出现的文件处理,但是我怎么能知道这个文件是“
: 正在传输中”还是“已经完成传输”?
: 我所能想到的方法就是用file modified time跟当前 server clock比较,如果已经超
: 过1分钟(或者更长时间,5分钟?)就认为完成传输。
: 有什么建议?谢谢。
: Ubuntu 12.04服务器。

c*****m
发帖数: 1160
11
最后还是用验证zip file的方式来做了。因为我所拿到的都是 zip file,如果最后部
分没有上传上来的话,unzip -v 会说:
unzip -v a1.zip
Archive: a1.zip
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of a1.zip or
a1.zip.zip, and cannot find a1.zip.ZIP, period.
(Exit code = 9)
而用python的 zipfile.is_zipfile(filelocation) 就会得到 false.
所以我用这个就足够判断了。
谢谢大家的讨论。
1 (共1页)
进入Linux版参与讨论
相关主题
scp 选择性的转移某些文件,怎么操作?弱弱的问问几个跟Linux有关的问题
请教一个samba共享的问题Symbolic Link: ln 和 cp -s 是一样的么?
请问.chm 文件在ubuntu 乱码 怎么解决?windows加载网盘,是不是一个server只能用一个id?
包子求助,unity启动不了了php readfile不能读取其他目录?
我也快被firefox和java弄疯了,请大侠支招substring 的问题
问个关于find 的问题linux下能否远程访问文件
一个非常烦人的problem如何向远程的另外一个用户穿文件?
请教如何更改启动时的默认目录?这个可能是什么问题
相关话题的讨论汇总
话题: 文件话题: zipfile话题: 传输话题: archive话题: unzip