How can I know if a given file has finished uploading from another location?
Solution 1
you should be able to use the lsof command to check if the file is open in another program.
lsof | grep filename
if you get a result the file is open in another process and probably still uploading. If the result is blank the file is finished uploading or possibly the transfer failed for some reason.
Solution 2
There may be a cleverer way of doing it, but in these situations I just use ls
to show the file size and then wait for it to stop changing for a reasonable period of time (10-20 secs) -eg:
watch ls -l *.mp4
Solution 3
fuser -mv / 2>&1 | grep F
That will list all users, pid and files open and in writing in a given mount-point.
Related videos on Youtube
Doron
Updated on September 18, 2022Comments
-
Doron almost 2 years
Let's say we have machine 1 and machine 2.
Machine 2, which is linux based, is receiving a file (let's say cat.jpg sent via SCP from machine 1 (doesn't really matter which operating system..).How can I know in machine 2, that the file has finished uploading from machine 1 ?
Please note that by "knowing" I mean by running a command (via a cron that runs every minute), and not by an event driven way ("make the scp issue a command when it is finished uploading").Another limitation I have is that I can't change anything in machine 1 or in the way it SCP files.
If it really matters:
- the files being transferred are video file, MP4 extension.
- machine 2 is ubuntu 10.10
-
mpez0 about 13 yearsCheck if the receiving process still exists.
-
Mitrakov Artem almost 5 yearsThis might be unsafe. E.g. if you replace the existing file with the same or larger size