How to select all files added to a directory in the past 5 mins (HP-UX)?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to select all files added to a directory in the past 5 mins (HP-UX)?
# 1  
Old 02-16-2015
How to select all files added to a directory in the past 5 mins (HP-UX)?

Hey everyone,

I need to select all files that were added to a specific directory in the past 5 mins and copy them over to a different directory. I am using HP-UX OS which does not have support for amin, cmin, and mmin. B/c of this, I am creating a temp file and will use the find -newer command to compare files to a temporary file with an altered timestamp (5 mins ago). HP-UX does not support the -d option for the 'touch' command so I cannot do something like this:

Code:
touch -d "5 mins ago" temp

Q: Does anyone know how I can select files added to the directory in the past 5 mins?

Any help would be greatly appreciated.

Thanks,
Matt
# 2  
Old 02-16-2015
GNU find has a -min option.

If you already have touch -d "5 mins ago" temp, you're probably already using GNU Smilie
# 3  
Old 02-16-2015
Quote:
Originally Posted by Scott
GNU find has a -min option.

If you already have touch -d "5 mins ago" temp, you're probably already using GNU Smilie
Unfortunately, HP-UX does not support the '-d' option for 'touch' and there is also no support for amin, cmin, and mmin for the 'find' command.
# 4  
Old 02-16-2015
I now kinda wish I read your entire question before replying Smilie
# 5  
Old 02-16-2015
what about perl in HP-UX?

Code:
find . | perl -ane 'chomp($_); $bef = time() - (5 * 60); $a = (lstat($_))[9]; if ($a > $bef) { print $_, "\n"}'

This User Gave Thanks to agent.kgb For This Post:
# 6  
Old 02-17-2015
I would use perl too, but to get the required start time. We can then create a reference file and use find based on that to select files.

Assuming you can't just use "date +%s", something like:-
Code:
#!/bin/ksh


date '+%Y %m %d %H %M %S' | read in_Y in_m in_d in_H in_M in_S                                   # Get current time values 
((in_m=$in_m-1))                                                                                 # Reduce month by one as epoch counts from 1/1/1970 as month zero

perl -e "use Time::Local; print timelocal($in_S,$in_M,$in_H,$in_d,$in_m,$in_Y), ;" | read cur_S  # Get current time in seconds since epoch
((old_S=$cur_S-300))                                                                             # Go back five minutes (in seconds)

perl -e 'use POSIX qw(strftime);\
print scalar(strftime "%Y %m %d %H %M %S", localtime $ARGV[0]), "\n";' $old_S | read Y m d H M S # Display answer in required format to be read in

touch -mt ${Y}${m}${d}${H}${M}.${S} /tmp/ref_file                                                # Create reference file

find . -type f -newer /tmp/ref_file                                                              # Find required files

It's a bit messy, but I hope you can see what is being done and why.


Does this help?


Robin
This User Gave Thanks to rbatte1 For This Post:
# 7  
Old 02-17-2015
Doing date delta can be done in many languages, but for shell the easiest is the GNU date (which you can add to your system, perhaps as a user local executable) or you can search here for my tool tm2tm.c and compile it.

I some situations, you can "touch marker_file ; sleep 300 ; find ... -newer marker_file ....", for instance if you want to poll a subtree every 5 minutes. If you want to avoid double reporting:
Code:
touch marker_old
 
while :
do
 sleep 300
 touch marker_new
 find ... -newer marker_old \( ! -newer marker_new \) ...
 mv -f marker_new marker_old
done

This User Gave Thanks to DGPickett For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to find directory is getting files in every 10 mins, if not then when last time file received

Dears, I am looking for a script which will work as a watch directory. I ha directory which keep getting files in every 10 mins and some time delay. I want to monitor if the directory getting the files in every 10 mins if not captured the last received file time and calculate the delay. ... (6 Replies)
Discussion started by: sadique.manzar
6 Replies

2. Shell Programming and Scripting

How to copy the two most recently added files to another directory - HP-UX?

Hello, I am attempting to find and copy the two most recently added files to a specific directory, that fit a specific format. I was able to find the command to list the two most recently added files in directory: ls -1t | head -n 2 The command lists the two files names in a vertical list,... (11 Replies)
Discussion started by: mattkoz
11 Replies

3. Shell Programming and Scripting

How to get past 30 mins time in Solaris?

Hi guys, could you help to find a way to get the past 30 mins time in solaris. version: bash-3.00# uname -a SunOS solaris 5.10 Generic_142910-17 i86pc i386 i86pc I had tried the following ways, it works fine in GNU Linux, but doesn't work in Solaris. # date Tue Apr 2 01:01:49 CST... (4 Replies)
Discussion started by: ambious
4 Replies

4. Shell Programming and Scripting

Select files for two different directory

I have run one file.but this file is two different directory is there.I wrote the if loop but one directory to find it the file and another directory is not find. #!bin/bash a=/tmp mau="manual.sh" if then echo `ls -l $mau` else echo "file not there" b=/scr #not find the directory... (1 Reply)
Discussion started by: rajivgandhi
1 Replies

5. Solaris

#1 added to directory on rmount DVD drive

Currently have an issue were we use a script to load a security .dat key. The script was failing to load stating "Unable to open directory". I ssh'd into the server and performed an ls -la on the /cdrom directory. I show the usual cdrom0 but the directory on the cd should be key but is showing... (0 Replies)
Discussion started by: hypp1e
0 Replies

6. Shell Programming and Scripting

rebuild/update fuppes database if files are added/removed from directory

The title says it all. I have a upnp server running fuppes that is connected to my xbox360. In order to see the files on the xbox360 i have to manually update and rebuild the database anytime i add or remove files. I have tried cron jobs to do it every 20 min which works, but if I am streaming... (0 Replies)
Discussion started by: tr6699
0 Replies

7. Shell Programming and Scripting

Need script to select multiple files from archive directory based on the date range

hi all, here is the description to my problem. input parameters: $date1 & $date2 based on the range i need to select the archived files from the archived directory and moved them in to working directory. can u please help me in writing the code to select the multiple files based on the... (3 Replies)
Discussion started by: bbc17484
3 Replies

8. Shell Programming and Scripting

Perl - To print past 5 mins timestamp

hi , I would like to ask how to get past 5 minutes system time and date, if i have following to get current time. # get current time ($sec,$min,$hour,$mday,$mon,$year) = localtime(time); $year = $year + 1900; $mon = sprintf ("%02s",$mon+1); $mday = sprintf ("%02s",$mday); $hour =... (1 Reply)
Discussion started by: rauphelhunter
1 Replies

9. UNIX for Advanced & Expert Users

How Can I Easily Determine If A File Has been Added to a Directory

I am uploading files that need to be processed prior to uploading. I will put the files in a directory. My question is how can I write an easy process to kick off a script once a file has been added? Is there an easy way to determine if a file has been added to a directory? Thanks (7 Replies)
Discussion started by: goodmis
7 Replies

10. UNIX for Dummies Questions & Answers

How Can I Easily Determine If A File Has been Added to a Directory

I am uploading files that need to be processed prior to uploading. I will put the files in a directory. My question is how can I write an easy process to kick off a script once a file has been added? Is there an easy way to determine if a file has been added to a directory? Thanks (1 Reply)
Discussion started by: goodmis
1 Replies
Login or Register to Ask a Question