![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| UNIX for Dummies Spørsmål og svar Hvis du er usikker på hvor du skal legge inn en UNIX-eller Linux-spørsmålet, legger den her. Alle UNIX og Linux newbies velkommen! |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Server Monitor script ... | zedex | Shell programmering og Skripting | 1 | 06-01-2008 04:10 |
| trenger hjelp til å gjøre et skript for å overvåke om filene går gjennom | jonathan184 | Shell programmering og Skripting | 0 | 05-15-2007 11:47 |
| Beregnigner overvåke script | locabuilt | UNIX for Advanced & ekspertbrukere | 7 | 01-19-2007 02:37 |
| Script til Monitor databaser hjelp med arrays | nelmest | Shell programmering og Skripting | 1 | 09-05-2005 10:50 |
| Overvåk hvilke brukere som skal inn på hjemmekatalog | mnpradeep | High Level Programmering | 1 | 03-21-2002 05:08 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
HEP med skript for å overvåke katalog
Hallo,
Jeg er en nybegynner som forsøker å skrive et skript for å overvåke en katalog for et sett av 3 filer som jeg forventer å få ftp'd. Noen ganger stopper vi driften for vedlikehold etc. men vi fremdeles få filer så det kan være mer enn 1 sett. Hvis det er mer enn 1 sett, jeg vil flytte, men den siste satt til et arkiv-katalog. For eksempel si at filene er kalt: 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 Jeg ønsker å flytte eldre filer til et arkiv-katalog acme1_090106.txt acme1_091006.txt acme2_090106.txt acme2_091006.txt acme3_090106.txt acme3_091006.txt Jeg kjører AIX versjon 5.31. Dette er hva jeg har så langt. Eventuelle forslag vil bli dypt verdsatt. #! / bin / ksh # filer \u003d 0 LoopCnt \u003d 0 while (($ filer <4)); gjøre echo `date` for navn i `ls Acme *`; gjøre Hvis [-f $ name] Deretter lar filene \u003d filer 1 fi ferdig if (($ filer <3)), deretter if ((LoopCnt <6)), deretter echo "ikke har 3 filer ennå, sover 10 minutter" echo "" dvale 600 filer \u003d 0 la LoopCnt \u003d LoopCnt 1 ellers exit fi fi ferdig Det er her jeg sitter fast if (($ filer> 3)), deretter echo "Har du mer enn 3 filer, flytte alle, men de siste til å arkivere" exit fi |
|
||||
|
Det er mange måter å gjøre det ... en er basert på det tidspunkt som opprettes i systemet, og den andre måten er basert på dato i filnavnet ...
Det vil være et problem med den første metoden hvis den siste filen ftp'd før gamle filer ... gamle filer ha siste filen opprettelsesdato enn nyeste filene og vil flytte nyeste filene til arkivet mappe ... Derfor jeg vedtok den andre metoden som arkiver filen basert på dato i filnavnet ... håper dette hjelper. Code:
#!/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
|
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|