防止守望者在文件上传期间触发?
Prevent watchman from triggering during file upload?
我想要查看新文件的上传文件夹,并在上传任何内容时触发脚本。为此,我在我的 CentOS 7 盒子上安装了 watchman,并将其设置为监视上传文件夹。这行得通,但是当上传大文件时,watchman 会在上传完成前触发一次或多次。由于我的脚本将移动文件,这可能会导致数据损坏和上传失败。如何过滤掉这些 "partial" 触发器?
例如,我制作的测试脚本只是将信息转储到一个文件中,在单次上传过程中为我提供了以下输出:
Wed Sep 18 08:39:20 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:743734", "exists": true, "new": true, "size": 5924978688, "name": "test.nc"}]
Wed Sep 18 08:39:22 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:747283", "exists": true, "new": false, "size": 6056411136, "name": "test.nc"}]
Wed Sep 18 08:39:22 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:747324", "exists": true, "new": false, "size": 6057754624, "name": "test.nc"}]
Wed Sep 18 08:39:24 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:752502", "exists": true, "new": false, "size": 6229433544, "name": "test.nc"}]
我可以通过调整 "settle" 参数来解决这个问题。显然,默认的 20 毫秒对于网络传输来说太低了,导致磁盘在输入数据被缓冲或其他情况下处于空闲状态。通过将此设置提高到 500,watchman 在文件传输完成之前不再触发。
我想要查看新文件的上传文件夹,并在上传任何内容时触发脚本。为此,我在我的 CentOS 7 盒子上安装了 watchman,并将其设置为监视上传文件夹。这行得通,但是当上传大文件时,watchman 会在上传完成前触发一次或多次。由于我的脚本将移动文件,这可能会导致数据损坏和上传失败。如何过滤掉这些 "partial" 触发器?
例如,我制作的测试脚本只是将信息转储到一个文件中,在单次上传过程中为我提供了以下输出:
Wed Sep 18 08:39:20 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:743734", "exists": true, "new": true, "size": 5924978688, "name": "test.nc"}]
Wed Sep 18 08:39:22 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:747283", "exists": true, "new": false, "size": 6056411136, "name": "test.nc"}]
Wed Sep 18 08:39:22 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:747324", "exists": true, "new": false, "size": 6057754624, "name": "test.nc"}]
Wed Sep 18 08:39:24 AKDT 2019 - test.nc STDIN: [{"mode": 33188, "oclock": "c:1568822800:18913:1:752502", "exists": true, "new": false, "size": 6229433544, "name": "test.nc"}]
我可以通过调整 "settle" 参数来解决这个问题。显然,默认的 20 毫秒对于网络传输来说太低了,导致磁盘在输入数据被缓冲或其他情况下处于空闲状态。通过将此设置提高到 500,watchman 在文件传输完成之前不再触发。