首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
wuqingwei
V2EX  ›  Linux

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

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

    本来想使用 @mattx 脚本的方式实现,发现没有那么简单,因为后续需要对文件的操作涉及到的东西较多。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1782 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 21ms · UTC 07:45 · PVG 15:45 · LAX 23:45 · JFK 02:45
    ♥ Do have faith in what you're doing.