![]() |
|
|
|
|
|||||||
| Forums | Portal | Register | Forum Rules | FAQ | Contribute | Members List | Arcade | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts here. |
|
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Perform action file name written to the pipe | fed.linuxgossip | Shell Programming and Scripting | 2 | 07-23-2008 07:38 AM |
| Checking for a file in file pattern before deleting it | dsrookie | UNIX for Dummies Questions & Answers | 1 | 05-09-2008 01:29 PM |
| Error checking a file from previous file size | stuck1 | Shell Programming and Scripting | 2 | 12-06-2007 05:39 AM |
| Operating on a file being written by another application | GMMike | UNIX for Dummies Questions & Answers | 3 | 02-01-2005 01:06 PM |
| File being used/written | sanjay92 | UNIX for Dummies Questions & Answers | 4 | 10-13-2001 10:31 AM |
|
|
Submit Tools | LinkBack | Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
|
Checking a file is not being written to
Hello All
I am attempting to write a shell script (bourne shell script) which will copy a tar'd and compressed file from a directory to a staging area but will not know whether the file is still open for write since files are being ftp's to my site at random times during the day. Once I am convinced that the file is stable (not being written to) I will move it to another directory, uncompress it and untar it and then process the data. What is a good way to determine that the file is not being written to (ftp from other site is complete) before I move it out of the directory in which it was ftp'd into. thanks Joe p.s. please respond by email: EMAIL ADDRESS REMOVED |
| Forum Sponsor | ||
|
|
|
#2
|
|||
|
|||
|
From the rules you forgot to read:
Quote:
|
|
#3
|
|||
|
|||
|
try creating a trigger file
Let the job which ftp's create a trigger file(with some unique pattern) after it is done with the ftp. This would give you an idea of the completion of the file transfer.
|
|
#4
|
||||
|
||||
|
This has worked for me in the past.
Code:
lsof /path/2/file/getting/modified Code:
[/tmp]$ /usr/sbin/lsof ~/temp/test.tar COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME cp 22551 xxxxxxx 4w REG 3,1 202321920 8798213 /private/ora/temp/test.tar [/tmp]$ echo $? 0 [/tmp]$ /usr/sbin/lsof ~/temp/test.tar [/tmp]$ echo $? 1 [/tmp]$ |
|
#5
|
|||
|
|||
|
How To Find File Is Transmig Or Transmtd
Hi vino
please tell what is lsof.when ever i tried to as man lsof it is failing.my actual problm is clearly what kanejm has wrriten. i tried like files=`lsof ${ALTAS_IN_DIR}/IINV*.* 2>/dev/null` after that depends on files value means that is zero or one proceeding(move the files to other directory.). but error is lsof not found.thats i want know about lsof. Regards, MallikarjunaRao |
|
#6
|
||||
|
||||
|
An error of 'lsof: not found' means that lsof is not available in your path. Check the value of the $PATH variable in your environment. Search for lsof on your box. Then add the path to lsof in the PATH variable in your environment. Here are the steps:
1. Code:
echo $PATH Code:
whereis lsof Code:
find /usr -name lsof -print Code:
PATH=$PATH:/path/to/lsof; export PATH mallikarjuna, in your code you are using *.* to pass filenames to lsof. I don't think that lsof can handle more than one filename at a time. Just check that out. --/EDIT-- |
|
#7
|
||||
|
||||
|
What OS are you running ?
Post the results of uname -a In my machine, lsof is /usr/sbin/lsof. Follow what blowtorch says and you should find lsof. |
||||
| Google The UNIX and Linux Forums |