Skip to content
Advertisement

Continuously monitor a directory in linux and notify when a new file is available

I’m a starter in Linux and scripting environment. My requirement is like this:

  1. From an asp.net application, a file will be generated and copied to a predefined folder on a Linux server machine. (I’m assuming this can be done by remote file sharing using samba server)

  2. A service or script or whatever should be there in Linux machine to track continuously whether the file is available.

  3. Once a new file is available, just parse the file, extract some input variables and execute a shell script based on these parameters.

My question lies in point no:2. –> How can I write a service or script which should execute continuously and monitor whether a file is available in a particular folder?

I’ve searched a lot, got into a lot of links and I’m confused what is the easiest method to do this. Because I don’t want to spend a lot of coding here as the script to be executed further and the asp.net app is more important and this should be a connector in between.

Advertisement

Answer

You are looking for something like inotify.

[cnicutar@ariel ~]$ inotifywait -m -e create ~/somedir/
Setting up watches.
Watches established.
/home/cnicutar/somedir/ CREATE somefile

For example, you could do it in a loop:

inotifywait -m -e create ~/somedir/ | while read line
do
    echo $line
done
User contributions licensed under: CC BY-SA
5 People found this is helpful
Advertisement