|
|
|
|
Google Site
|
|||||||
| Forum | Registrera | Blogg | Manualsidor | Forum Regler | Länkar | Album | FAQ | Användare | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| 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! |
![]() |
|
|
Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|||
|
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 | ||
|
|
|
|||
|
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
doneJag har testat och det fungerade bra ... |
|
|||
|
mahendramahendr,
Jag försökte din kod och det fungerar perfekt!. Tack så mycket för din hjälp. |
| Sponsrade länkar | ||
|
|
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|
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 |