Hello together. I try to use a systemd path unit, to monitor a directory structure. But as of now, I was only successful for the top level directory. The unit should be triggered, if a new file is written to either the top level of the monitored directory and also, if there is a new file in any of its subdirectories. I don’t know how to do that. Any ideas?
Additionally, the triggered service unit should be delayed for some time. Background is, that I automatically upload sometimes more than one file in a batch. So I will give the script triggered by the service unit the chance, to wait until the upload of all files is finished, so that I can work with all the new files with one script call, instead of multiple calls for every file. Is that possible?
I don’t think you’ll be able to achieve that with systemd paths, I’m afraid. It’s not a use-case it is designed for.
It’s hard to come up with a suggestion without knowing more about the depth of the directory and the number of nodes in each level. But you could try updating a dummy file such as
latest_timestamp
in the top-level directory (which a systemd path can monitor BTW) and let the service unit be triggered by that.The depth is changing constantly, because new subdirs are created and removed during the day and/or upload/sync process. Thats why the script is walking across the complete directory structure every time. But the dummy file is a nice suggestion. In this case, I can monitor only the dummy file and trigger the script on dummy file change. Good idea.