18. december 2002 - 13:57Der er
2 kommentarer og 1 løsning
shell script, standard ksh eller sh eller csh
hej! Jeg vil gerne lave en shell script der kan se om en fil er mere eller mindre end 1 time gammel. Jeg har fået lavet et alternativt med ls -l filanvn og brugt awk sed og alt muligt andet skrammel, men det betyder at jeg er nød til at lægge en masse check ind vedr. over midnat og datoer m.m
Kunne man evt. anvende find. på en eller anden måde
hvis nu find kunne søge efter en fil der hedder timestamp og er 60 min eller mere gammel. og retunere 0 hvis den findes.
Eller er det en anden indfalds vinkel jeg skal have.
PS. jeg vil lave det i shell script da det er en del af et større script. Så forslag vedr. "bare anvende perl eller php" er jeg ikke interesseret i "denne gang!"
Følgende script tager et filnavn som argument og finder ud af om filen er yngre/ældre end 1 time. Den skaber en fil der er en 1 time gammel og bruger som du selv foreslog find til at checke input filens alder. Kønt er det egentlig ikke, men det lader til at funke ...
#!/bin/sh
markerFile=/tmp/__mf.tmp
############################################################################ mkMarker() # Creates the marker file ############################################################################ { now=`date +"%s%z"` time=`echo $now | awk -F+ '{print $1}'` # The time TZ=`echo $now | awk -F+ '{print $2}' | cut -c1-2` # The timezone TZ_offset=`expr 3600 \* $TZ` # - in secs
if [ -f $markerFile ]; then rm $markerFile ; fi touch -t $oneHourAgo $markerFile }
# Start the show if [ -n "$1" ] && [ -f $1 ]; then # Check the input mkMarker dir=`dirname $1` file=`basename $1` hits=`find $1 -cnewer $markerFile | wc -l | sed 's/[ ]//g'` if [ 0 -eq $hits ]; then echo "Pfew, $1 is old hat" else echo "Yepper $1 saw life less than 1 hour ago" fi rm $markerFile else echo "Input error" fi
Faktisk er det et script der skal køre som en daemon, while : do bla bla sleep 300 done
Mange tak for hjælpen, jeg løste det i perl, men kan sagtens bruge dette til en anden gang.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.