所以,我陷入了这种困境:我只能观察几个 ftp 文件夹,看看它们是否有新文件。如果有,它需要抛出一个带有文件名的事件。从而告诉其他程序下载该文件。
这是一个相当简单的物体,我只是好奇是否有人知道这个操作会花费多少?
我计划使用命令 NLIST,因为我不需要文件大小信息,并且文件夹中没有子目录。文件夹中每个文件的名称恰好有 25 个字符。
每个文件夹可能有 10 到几千个(最多约 2000 个)文件(通常较低,为 100-300 个,但目前正在增加)。
这些文件的大小从 250kb 到非常不可能的 10mb 不等(通常在 250kb 到 4mb 范围内)。
可能有多达几百个文件夹(在这种情况下,我可以根据文件夹的数量更改监视频率),但目前只有几个(6-10 个左右)。
FTP 服务器也会有多个登录名,不同的登录名可以访问不同的文件夹。
我并不是在要求实现,只是如果有人对 FTP 有一些第一手或第二手的知识,这会如何影响我的网络。
我并不反对增加文件保留时间或者改变检查新文件的频率。
答案1
Inotify 工具:
inotifywait -e create -rmq $watch_directory | while read i; do
file=$(echo $i | awk '{print$3}')
dir=$(echo $i | awk '{print$1}')
# echo ${dir}${file}
done
答案2
假设您有 FTP 服务器的 shell 访问权限,那么 dnotify 就是您的好帮手。目录更改通知。