我将要部署的文件上传到远程目录。该远程服务器有一个脚本可以监视目录中的新文件:
inotifywait --monitor --event create --format '%f' --quiet /foo
当检测到新文件时,部署过程开始。
问题是上传需要时间 - 文件一开始写入就会被检测到。因此部署失败,因为它尝试使用部分文件。
有没有办法去抖动,inotifywait
所以它只有在完全创建后才报告新文件?
我将要部署的文件上传到远程目录。该远程服务器有一个脚本可以监视目录中的新文件:
inotifywait --monitor --event create --format '%f' --quiet /foo
当检测到新文件时,部署过程开始。
问题是上传需要时间 - 文件一开始写入就会被检测到。因此部署失败,因为它尝试使用部分文件。
有没有办法去抖动,inotifywait
所以它只有在完全创建后才报告新文件?
正如您所经历的那样,监视
create
事件并不是很有用:这些事件在文件创建时触发,但这并不能告诉您是否已向其中写入任何数据,也不知道何时完成了数据写入它。您通常需要监视
close
或close_write
事件。从手册页: