Redian新闻
>
在服务器端如何确认一个文件已经ftp传输完毕?
avatar
在服务器端如何确认一个文件已经ftp传输完毕?# Linux - Linux 操作系统
d*s
1
谢谢
08年来美,11年10月份转成H1B,听说可以用first year choice报税,想知道用first
year choice具体要做哪些?还可以用cintax or turbotax报税么?
avatar
w*0
2
和国内的朋友聊天,朋友说近一年,少女失联、遇害事件已成为国内新闻的常客,时不时就有这样的惨剧发生。搭黑车、搭错车被奸杀,见网友被害,这两天又有女生被同年级男生以剧组面试为由,骗到出租屋内遇害。以及大学女生去泰国见网友考察贸易兼旅游魂断芭提雅的惨剧。回想一下,不仅是在中国国内,国际上也发生过不少起,中国留学生或者华裔女生遇害事件。惨案的频发,让人们叹息花季少女不幸逝去,对罪犯的穷凶极恶倍感发指的同时,不禁要反思惨案发生的原因。一方面是这些女孩子年纪较小,涉世未深,且自身比较单纯、善良,对他人没有戒备之心,对社会不安全的现状也不太了解。说的好听是天真,说得不好听点,是有些傻的,没有安全的防范意识。家长、学校在这类的安全教育方面也是有缺失的。家长平日对孩子关心、沟通也不够。孩子在网上认识了什么人,出门要去做什么,见什么人好多都不清楚。从这一刻起,呼吁所有女生,一定要多加注意自身安全,学会危险情况下的应急措施。尽量不要走夜路,万不可搭乘黑车,会见网友要有他人陪伴,独自外出旅行做好功课定可靠地酒店,并告知家人行程,保持联系,万不可自行去偏僻的区域独自游玩。愿伤害、悲剧不再发生,好人平安一生!
avatar
c*m
3
我需要在服务器上监测一个ftp目录,客户上传文件之后,这里把文件拷贝(mv)到
backup目录然后解压分析处理。
我总能用列文件的方式对在这个目录出现的文件处理,但是我怎么能知道这个文件是“
正在传输中”还是“已经完成传输”?
我所能想到的方法就是用file modified time跟当前 server clock比较,如果已经超
过1分钟(或者更长时间,5分钟?)就认为完成传输。
有什么建议?谢谢。
Ubuntu 12.04服务器。
avatar
S*I
4
read "Dual status" section pub 519; however, if you're not married, using
first-year choice makes little difference.

first

【在 d*********s 的大作中提到】
: 谢谢
: 08年来美,11年10月份转成H1B,听说可以用first year choice报税,想知道用first
: year choice具体要做哪些?还可以用cintax or turbotax报税么?

avatar
c*m
5
另一个想法:如果这个文件正在传输,我 mv 它,是不是会失败?那么我就 try catch
这个失败,就可以忽略它了。
这个方式如何?
avatar
b*6
6
已经在 宝典 那里回答了。
看看 lsof 能不能行。
最好不要用 mv 这种方法,很危险。

catch

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

avatar
n*t
7
mv 不会失败

catch

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

avatar
h*t
8
我们的做法是传完后,客户端主动上传个小的带md5之类文件信息的文本文件.

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

avatar
c*m
9
啊,要是客户能多传一个"success"文件就完美了,可是我们不能这样要求客户啊。
avatar
a9
10
你可以尝试打开这个文件,打不开就是还没传完吧?

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

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

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

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

avatar
c*m
14
最后还是用验证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.
所以我用这个就足够判断了。
谢谢大家的讨论。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。