script to monitor directory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting script to monitor directory
# 15  
Old 08-21-2008
incron rpm build for : Fedora 8. For other distributions click here.

Name : incron
Version : 0.5.5 Vendor : Fedora Project
Release : 1.fc7 Date : 2007-03-13 19:16:38
Group : System Environment/Base Source RPM : incron-0.5.5-1.fc7.src.rpm
Size : 0.27 MB
Packager : Fedora Project < http://bugzilla_redhat_com/bugzilla>
Summary : Inotify cron system
Description :
This program is an \"inotify cron\" system.
It consists of a daemon and a table manipulator.
You can use it a similar way as the regular cron.
The difference is that the inotify cron handles
filesystem events rather than time periods.

for Fedora Core 8

taken from http://rpm.pbone.net/index.php3/stat....i386.rpm.html

maybe the src.rpm can be rebuilt for rhel4

or look at the list at http://rpm.pbone.net/index.php3?stat...cron&srodzaj=3
# 16  
Old 08-22-2008
nulinux,

You're spot-on about fileschanged, but it can still be used on the directory to detect when new files are starting to arrive -- that way, you don't have to "poll" the directory.

Test the upload process with lsof. See if the upload process keeps the file open. If it does, you're in luck, and you can go with that. Just write a simple script like this:

Code:
while true; do 
  test -f $DIR/$FILE || next
  echo -n `date +%s`:
  if lsof $DIR/$FILE ; then
    echo "$FILE is open";
  else
    echo "$FILE is CLOSED";
done

Run it, then upload a file. Look at the output from the script to see if it's open until closed, or open/closed, open/closed, etc. While you are uploading, perhaps suspend the upload (with CTRL-Z, or unplug the net cable) to see if long delays have any effect.

Last edited by otheus; 08-22-2008 at 05:54 AM.. Reason: wasn't finished
# 17  
Old 08-22-2008
Nice work otheus, I have been playing with that and, here is a test script that you can change as you need.

Some points,

1. The file must exist so "touch" test1.txt first
2. You will need to open 2 terminals and open the file you are testing in vi/vim on one and run this in another.
3. Use sudo or run as root (lsof requires root on RedHat)


Code:
#!/bin/bash

# Assuming you will use fileschaned output to get new filename 
# and also assuming that you will want to test THIS process before
# trying to incorperate fileschanged into the process...
# I wrote this as a test of the lsof side of the code.


# Assuming you test from your (not root) home directory and use sudo
# change as needed

WHO=`who am i |awk '{print $1}'`
DIR="/home/$WHO"
FILE=".test1.txt.swp"
CTR=0

while true
do
        # Attempt to sanely exit after 3 runs
        if [ "$CTR" -eq 3 ]
        then
                killall vim
        fi

        # Do you file open/closed logic here
        if [ -f $DIR/$FILE ]
        then
                LSOF=`lsof $DIR/$FILE`
        else
                unset LSOF
        fi
        echo -n `date +%s`:
        if [ -n "$LSOF" ]
        then
                echo "$DIR/$FILE is OPEN";
        else
                echo "$DIR/$FILE is CLOSED";
                exit
        fi
        CTR=`expr $CTR + 1`
done

here is the output:

1219411794:/home/ddreggors/.test1.txt.swp is OPEN
1219411794:/home/ddreggors/.test1.txt.swp is OPEN
1219411794:/home/ddreggors/.test1.txt.swp is OPEN
1219411794:/home/ddreggors/.test1.txt.swp is CLOSED

Last edited by ddreggors; 08-22-2008 at 11:18 AM..
# 18  
Old 08-22-2008
Noticing the epoch seconds in the output "1219411794" is the same on all lines and that this value is reset inside the while loop (so reset for each run) then that shows that 4 passes are done inside the space of a single second. You could probably add a "sleep x" line after the CTR increment line to force it to wait x amount of seconds if you like.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash script monitor directory and subdirectories for new pdfs

I need bash script that monitor folders for new pdf files and create xml file for rss feed with newest files on the list. I have some script, but it reports errors. #!/bin/bash SYSDIR="/var/www/html/Intranet" HTTPLINK="http://TYPE.IP.ADDRESS.HERE/pdfs" FEEDTITLE="Najnoviji dokumenti na... (20 Replies)
Discussion started by: markus1981
20 Replies

2. Shell Programming and Scripting

awk to monitor size in directory

i'm trying to find the most efficient way to monitor specific files in different directories in one go. /var/log/ /var/app/ /var/db/ each one of these directories can have subdirectories which need to be looked into as well. I want to find any file in this directory that has the name... (7 Replies)
Discussion started by: SkySmart
7 Replies

3. Shell Programming and Scripting

Shell script to monitor new file in a directory and mail the file content

Hi I am looking for a help in designing a bash script on linux which can do below:- 1) Look in a specific directory for any new files 2) Mail the content of the new file Appreciate any help Regards Neha (5 Replies)
Discussion started by: neha0785
5 Replies

4. Shell Programming and Scripting

Script to monitor directory size of specific users

Hi, i am new to shell scripts, i need to write a script that can monitor size of directory of specific users. Please help. Thanks, Nitin (2 Replies)
Discussion started by: nicksrulz
2 Replies

5. Shell Programming and Scripting

Directory Monitor in KSh

Hi, I need to write a directory monitor, i.e. a korn shell script which would Report changes to the directory contents, like: added file1, deleted file2, updated file3 , created subdir (optional)... There is no specific file pattern. So far I have written a little script... (1 Reply)
Discussion started by: olegkon
1 Replies

6. UNIX for Dummies Questions & Answers

Monitor directory and email

Hello all, Can anyone please guide / help me in the following task.... I have a directory where some external users will upload pdf files. The filename of these pdf will be of a particular format (<id>-<first name>_<last name>_<some number>.pdf) I want to make a script such that it takes... (6 Replies)
Discussion started by: dhawalkv
6 Replies

7. AIX

monitor directory events

I'm am looking for a cheap way to trigger a script when a new file is written in a specific directory. AIX 5.3. It is a production system, so no kernel patching (i.e. inotify). Filemon and audtiing are too expensive. Thanks in advance. (2 Replies)
Discussion started by: pbillast
2 Replies

8. Shell Programming and Scripting

Monitor capacity of directory

Good morning. I have been attempting to find a way to monitor the capacity of a directory so that when it reaches 80% or higher I can send an event. I was able to find a script that does this for the whole drive by I can not seem to figure out how to do this for just a single directory. ... (1 Reply)
Discussion started by: LRoberts
1 Replies

9. Shell Programming and Scripting

script to monitor files in a directory and sending the alert

Hi All, We are having important config files in an directory which was accessable by all /auto/config/Testbed/>ls config1.intial config2.intial config3.inital often we find that some of the lines are missing in config files, we doubt if some one is removing. I would like to write... (0 Replies)
Discussion started by: shellscripter
0 Replies

10. UNIX for Dummies Questions & Answers

Hep with script to monitor directory

Hello, I am a newbie who is attempting to write a script to monitor a directory for a set of 3 files that I am expecting to get ftp'd. Occasionally, we suspend operations for maintenance etc. but we still get the files so there can be more than 1 set. If there is more than 1 set, I would like... (2 Replies)
Discussion started by: cmf00186
2 Replies
Login or Register to Ask a Question