Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
Google Site



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 10-24-2006
Registered User
 

Join Date: oktober 2006
Inlägg: 2
Hep med skript för att övervaka katalog

Hej,

Jag är en nybörjare som försöker skriva ett skript för att övervaka en katalog för en uppsättning av 3 filer som förväntar jag mig att få ftp'd. Ibland har vi avbryta operationer för underhåll etc. men vi har fortfarande få filer så det kan finnas mer än 1 set. Om det finns mer än 1 set, jag skulle vilja flytta alla men den senaste inställd till ett arkiv katalog.

Till exempel säger de filer som heter:
acme1_090106.txt
acme1_091006.txt
acme1_092206.txt
acme2_090106.txt
acme2_091006.txt
acme2_092206.txt
acme3_090106.txt
acme3_091006.txt
acme3_092206.txt

Jag skulle vilja flytta äldre filer till ett arkiv katalog
acme1_090106.txt
acme1_091006.txt
acme2_090106.txt
acme2_091006.txt
acme3_090106.txt
acme3_091006.txt

Jag använder AIX version 5.31.

Detta är vad jag har hittills. Någon förslag skulle vara mycket uppskattat.

#! / bin / ksh
#
filer \u003d 0
LoopCnt \u003d 0
while (($ filer <4)); göra
echo "dag"
för namn i "ls ACME *" göra
Om [-f $ namn]
låt filer \u003d filer 1
fi
gjord
if (($ filer <3)) och sedan
if ((LoopCnt <6)); sedan
echo "inte har 3 filer ännu, sova 10 minuter"
echo ""
sova 600
filer \u003d 0
Låt LoopCnt \u003d LoopCnt 1
annan
exit
fi
fi
gjord
Det är där jag fastnar

if (($ filer> 3)) och sedan
echo "har mer än 3 filer, flytta alla men den senaste att arkivera"
exit
fi
Sponsrade länkar
  #2 (permalänk)  
Old 10-25-2006
Registered User
 

Join Date: Dec 2005
Ort: London
Inlägg: 222
Det finns många sätt att göra det ... en är baserad på Temne filen skapas i systemet och det andra sättet är baserat på datum i filnamnet ...

Det kommer att bli ett problem med den första metoden, om den senaste filen ftp'd innan gamla filer ... gamla filer har senaste filen skapas datum än senaste filer och flyttas senaste filerna till arkivet mapp ...

Därför jag antagit den andra metoden som arkiv filen baserat på datum i filnamnet ... hoppas att detta hjälper.


Kod:
#!/usr/bin/ksh

for name in $(ls acme* | sed 's/_[0-9]*.txt//g' | uniq)
do
   cnt=0
   for fname in $(ls $name* | sed 's/_\([0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/_\3\1\2/g' | sort -r )
   do
      echo $fname
      nm=$(echo $fname | sed 's/_\([0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)/_\2\3\1/g' )
      cnt=$(($cnt+1));
      if [ $cnt -ne 1 ]
      then
          mv $nm  ./bkup
          echo "$nm moved to backup"
      fi
   done
done

Jag har testat och det fungerade bra ...
  #3 (permalänk)  
Old 10-25-2006
Registered User
 

Join Date: oktober 2006
Inlägg: 2
mahendramahendr,

Jag försökte din kod och det fungerar perfekt!. Tack så mycket för din hjälp.
Sponsrade länkar
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är Av


Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Server Monitor script ... zedex Shell-programmering och Skript 1 06-01-2008 05:10
behöver hjälp att göra ett skript för att kontrollera om filer går igenom jonathan184 Shell-programmering och Skript 0 05-15-2007 12:47
belastning övervaka script locabuilt UNIX för avancerade & Expertanvändare 7 01-19-2007 02:37
Script till Monitor databaser hjälp med kedjor nelmest Shell-programmering och Skript 1 09-05-2005 11:50
Monitor som användare går in på min hemkatalog mnpradeep Programmering 1 03-21-2002 05:08



Alla tider är GMT -4. Klockan är nu 09:26.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2010. All Rights Reserved.Ad Management by RedTyger

Content Relevant webbadresser från vBSEO 3.2.0