11

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.

Quentin
  • 914,110
  • 126
  • 1,211
  • 1,335
HRM
  • 2,097
  • 6
  • 23
  • 37

2 Answers2

21

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
Quentin
  • 914,110
  • 126
  • 1,211
  • 1,335
cnicutar
  • 178,505
  • 25
  • 365
  • 392
  • @user2760369 Not sure if it's the right way, but it is *one* way and there's almost no coding required, which you mentioned. – cnicutar Sep 09 '13 at 06:02
2

inotify is the perfect solution to your problem. It is available as a system command that can be used in a shell, or as a system call that can be used in a C/C++ program. For details see the accepted answer to this question: Inotify - how to use it? - linux

Update: you need inotify-tools for use on command line. The answer to the question above only describes C/C++ system calls. Here is the link to inotify-tools. It is also available as a packaged distribution so search your favorite install repository (yum/apt-get/rpm etc.): https://github.com/rvoicilas/inotify-tools/wiki

Community
  • 1
  • 1
necromancer
  • 23,916
  • 22
  • 68
  • 115