Linux FTP 服务器可以监测上传文件完成,并自动对文件操作吗?

2019-05-20 09:22:58 +08:00
 wuqingwei
linux 服务器,目前是 Centos,做 FTP 服务器,目前使用的是 vsftpd,想实现如下功能,自动监测 FTP 服务,如果有客户端上传文件完成,就对文件进行某个操作(具体什么操作不重要),这样的功能用什么方式实现较好,先谢过。
5398 次点击
所在节点    Linux
20 条回复
ebingtel
2019-05-20 09:26:46 +08:00
问题来了 怎么判断用户上传完了? NOW() - LAST_MODIFIED_TIME() > INTERVAL?
liwl
2019-05-20 09:32:29 +08:00
inotify?
AlisaDestiny
2019-05-20 09:34:33 +08:00
你这个用现成的软件恐怕不好做,你可以看下你会的语言的 ftp 协议库,定制一个。
bbvps
2019-05-20 09:34:58 +08:00
bash 脚本,死循环,每秒检测一下。
bbvps
2019-05-20 09:36:11 +08:00
其他的方法都太难,这个最简单。
jasamboro
2019-05-20 09:42:27 +08:00
具体什么操作不重要
判断用户上传完成-->自动删除
wuqingwei
2019-05-20 09:50:14 +08:00
@liwl 研究下。
lithiumii
2019-05-20 09:55:30 +08:00
Microsoft Flow 有个对接 FTP 的服务,可以在发现文件修改后进行操作
但我猜他就是定时去看一看你文件改过了没有。
mattx
2019-05-20 09:55:32 +08:00
clino
2019-05-20 09:57:04 +08:00
让用户同时上传一个文件的元信息文件用来校验
zong400
2019-05-20 09:57:57 +08:00
同时上传一个包含 md5 值的文件,操作的脚步循环校验
lkan
2019-05-20 10:14:00 +08:00
python 的 ftp 库适合你 简单易用
gstqc
2019-05-20 10:29:22 +08:00
不依赖外部手段无法实现
1.以前玩 0day 的时候,FTP 用 sfv(Simple File Verification)文件来校验文件完整性
2.有些 FTP 客户端的实现是用临时文件,传输完成后用 FTP 的 rename 命令重命名
lihongjie0209
2019-05-20 10:33:51 +08:00
xnode
2019-05-20 11:13:54 +08:00
可能需要双端比对 MD5
sagaxu
2019-05-20 11:48:22 +08:00
proftpd 有这个功能
chcx
2019-05-20 11:49:59 +08:00
inotify 就可以
lieh222
2019-05-20 17:29:22 +08:00
写个端口转发 映射 ftp 服务器控制端口,监控控制信令,如果上传命令完成就可以认为是上传成功了
ps1aniuge
2019-05-20 17:52:24 +08:00
1 ftp,http,上传文件,下载文件,是不可靠的。
2 ftp,http,上传文件,下载文件,完成通知,也是是不可靠的。
3 经常会有上传下载完成了。但是文件只有 99%相同。
4 所以人家才会发明 sfv,校验码等。
5 只有带校验码,并再读一遍。才可靠。如 bt,rsync。
wuqingwei
2019-05-21 09:36:54 +08:00
inotify 确实是个好东西。

本来想使用 @mattx 脚本的方式实现,发现没有那么简单,因为后续需要对文件的操作涉及到的东西较多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/565675

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX