![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| UNIX voor Dummies Questions & Answers Als u niet zeker weet waar je een Unix-of Linux vraag, post het hier. Alle UNIX-en Linux beginners van harte welkom!! |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Server Monitor script ... | zedex | Programmeren en Shell Scripting | 1 | 06-01-2008 05:10 PM |
| hulp nodig doet een script te controleren wanneer bestanden worden door | jonathan184 | Programmeren en Shell Scripting | 0 | 05-15-2007 12:47 |
| belasting monitor script | locabuilt | UNIX for Advanced & Expert Gebruikers | 7 | 01-19-2007 02:37 PM |
| Script te controleren databanken helpen met arrays | nelmest | Programmeren en Shell Scripting | 1 | 09-05-2005 11:50 PM |
| Controleren welke gebruikers mijn home-directory | mnpradeep | Hoog Niveau Programmering | 1 | 03-21-2002 05:08 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Hep met script te zien op map
Hallo,
Ik ben een newbie die probeert om een script te zien op een map voor een set van 3 bestanden dat ik verwachtte te krijgen ftp'd. Af en toe hebben we schorten acties voor onderhoud enz. maar we krijgen nog steeds de bestanden dus er kan meer dan 1 set. Als er meer dan 1 set, ik zou graag willen bewegen alle maar de laatste set aan een archief directory. Bijvoorbeeld zeggen dat de bestanden worden genoemd: 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 Ik wil graag om de oudere bestanden aan een archief directory acme1_090106.txt acme1_091006.txt acme2_090106.txt acme2_091006.txt acme3_090106.txt acme3_091006.txt Ik ben actief AIX versie 5.31. Dit is wat ik heb tot nu toe. Eventuele suggesties zou zeer gewaardeerd. #! / bin / ksh # bestanden \u003d 0 LoopCnt \u003d 0 while (($ bestanden <4)); doen echo `date` voor de naam in `ls Acme *"; doen if [-f $ naam] Vervolgens laat bestanden bestanden +1 \u003d fi gedaan if (($ bestanden <3)), vandaar if ((LoopCnt <6)), vandaar echo "geen 3 bestanden nog slaapt 10 minuten" echo "" slapen 600 bestanden \u003d 0 Laat LoopCnt \u003d LoopCnt +1 anders afrit fi fi gedaan Dit is waar ik ben vast if (($ bestanden> 3)), vandaar echo "Veel meer dan 3 bestanden, verplaatsen alle maar de laatste naar archief" afrit fi |
|
||||
|
Er zijn veel manieren doen ... is gebaseerd op de tijd die het bestand gemaakt in het systeem en de andere manier is gebaseerd op de datum in de naam van het bestand ... Er zal een probleem met de eerste methode als het laatste bestand ftp'd voordat de oude bestanden ... oude bestanden zullen laatste bestand datum dan de meest recente bestanden en zal uiterlijk bestanden aan het archief map ... Vandaar dat ik op de tweede methode, die de archieven van het bestand op basis van de datum in de naam van het bestand ... hoop dat dit helpt. 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
Ik heb het getest en het werkte prima ... |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|