Eu carrego arquivos para implantação em um diretório remoto. Esse servidor remoto possui um script que observa o diretório em busca de novos arquivos:
inotifywait --monitor --event create --format '%f' --quiet /foo
Quando um novo arquivo é detectado, o processo de implantação é iniciado.
O problema é que o upload leva tempo - e o arquivo é detectado assim que começa a ser gravado. Portanto, a implantação falha ao tentar usar um arquivo parcial.
Existe uma maneira de debounce inotifywait
para que ele relate o novo arquivo somente depois que ele for totalmente criado?
Como você experimentou, observar
create
eventos não é muito útil: esses eventos são acionados quando o arquivo é criado, mas isso não informa se algum dado foi gravado nele, nem você sabe quando algo terminou de gravar dados em isto.Você geralmente desejará monitorar os eventos
close
ou .close_write
Da página man: