/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
script til at flytte filer?
Fra : Morten Fjendbo


Dato : 14-01-05 16:32

Jeg har en download maskine som skal flytte de filer den download over på et
andet mount, og har derfor sat dette i crontab:
0-59/4 * * * * root mv -f /mappe/* /mappe1/ > /dev/null 2>&1

Men problemer med det er at når det er store filer som skal flyttes, når den
ikke at blive færdig før den næste "mv" går i gang.. og går den i ring..
Er der en der vil hjælpe mig med at lave et script det ikke starte hvis den
er i gang med at flytte?
Eller evt. har andre gode idéer til at løse mit problem

Ved godt jeg kan sætte tiden op på cron jobet.. men det er ikke en optimal
løsning
Mange tak
--
Mvh Morten Fjendbo

Fjern: (REMOVE) i adresse ved svar til mail



 
 
Simon Lyngshede (14-01-2005)
Kommentar
Fra : Simon Lyngshede


Dato : 14-01-05 17:03

On Fri, 14 Jan 2005 16:31:51 +0100, Morten Fjendbo wrote:

> Jeg har en download maskine som skal flytte de filer den download over på et
> andet mount, og har derfor sat dette i crontab:
> 0-59/4 * * * * root mv -f /mappe/* /mappe1/ > /dev/null 2>&1
>
> Men problemer med det er at når det er store filer som skal flyttes, når den
> ikke at blive færdig før den næste "mv" går i gang.. og går den i ring..
> Er der en der vil hjælpe mig med at lave et script det ikke starte hvis den
> er i gang med at flytte?
> Eller evt. har andre gode idéer til at løse mit problem
>
> Ved godt jeg kan sætte tiden op på cron jobet.. men det er ikke en optimal
> løsning
> Mange tak

Du kunne lave en lille lock fil, bare touche en fil et eller andet sted og
fjerne den når mv er færdig. Når scriptet starter skal scriptet så
teste om filen er der og kun køre hvis den er.

f.eks


if [ -f /tmp/mvlock ]
   then
   exit

fi

touch /tmp/mvlock
mv -f /mappe/* /mappe1 > /dev/null 2>&1
rm /tmp/lock

Det er nok lidt nemmere at smide det i en fil et eller andet sted.

--
Simon Lyngshede
simon@giraf.spiceweasel.dk
Remove long necked animal.


Morten Fjendbo (14-01-2005)
Kommentar
Fra : Morten Fjendbo


Dato : 14-01-05 17:58


"Simon Lyngshede" <simon@giraf.spiceweasel.dk> wrote in message
news:pan.2005.01.14.16.02.41.290409@giraf.spiceweasel.dk...
> On Fri, 14 Jan 2005 16:31:51 +0100, Morten Fjendbo wrote:
>
>> Jeg har en download maskine som skal flytte de filer den download over på
>> et
>> andet mount, og har derfor sat dette i crontab:
>> 0-59/4 * * * * root mv -f /mappe/* /mappe1/ > /dev/null 2>&1
>>
>> Men problemer med det er at når det er store filer som skal flyttes, når
>> den
>> ikke at blive færdig før den næste "mv" går i gang.. og går den i ring..
>> Er der en der vil hjælpe mig med at lave et script det ikke starte hvis
>> den
>> er i gang med at flytte?
>> Eller evt. har andre gode idéer til at løse mit problem
>>
>> Ved godt jeg kan sætte tiden op på cron jobet.. men det er ikke en
>> optimal
>> løsning
>> Mange tak
>
> Du kunne lave en lille lock fil, bare touche en fil et eller andet sted og
> fjerne den når mv er færdig. Når scriptet starter skal scriptet så
> teste om filen er der og kun køre hvis den er.
>
> f.eks
>
>
> if [ -f /tmp/mvlock ]
> then
> exit
>
> fi
>
> touch /tmp/mvlock
> mv -f /mappe/* /mappe1 > /dev/null 2>&1
> rm /tmp/lock
>

Lige sådan en ide jeg kunne bruge..
Med "#!/usr/bin/bash" i toppen og så i en sh fil, og så var den potte ude


Mange tak

Mvh Morten



Jesper Krogh (14-01-2005)
Kommentar
Fra : Jesper Krogh


Dato : 14-01-05 18:00

I dk.edb.system.unix, skrev Morten Fjendbo:
> Lige sådan en ide jeg kunne bruge..
> Med "#!/usr/bin/bash" i toppen og så i en sh fil, og så var den potte ude
>

Lidt mere "skudsikker" så:
1) Ser du om filen er der.
2) Er den der ikke så opretter du den med "echo $$ > /tmp/lockfile"
3) Er den der, så kigger du efter om processen med det processid der stå
i logfilen eksistere.. hvis den gør det, så kører der en anden version
ellers overskriver du bare.

Så holder det også hvis ud kommer til at give den en "kill" eller slå
den ned på anden vis (reboot).

Jesper

--
../Jesper Krogh, jesper@krogh.cc, Jabber ID: jesper@jabbernet.dk
Danmark har fået sit eget Mozillaforum:
http://forum.mozilladanmark.dk/ eller nntp://news.sslug.dk/mozilladanmark.*


Thorbjoern Ravn Ande~ (14-01-2005)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 14-01-05 22:12

Jesper Krogh <jesper@krogh.cc> writes:

> 3) Er den der, så kigger du efter om processen med det processid der stå
> i logfilen eksistere.. hvis den gør det, så kører der en anden version

Det er jo ikke garanteret - hvordan sikrer man sig at det faktisk er
den version der blev startet og ikke en eller anden brugerprocess der
tilfældigvis fik samme processid?

Jeg mener at DJB har harcelleret en del over det med hans daemontools
men jeg kunne ikke finde den.

--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk - Unix, Java, Web, Netværk, Århus

Morten Guldager (14-01-2005)
Kommentar
Fra : Morten Guldager


Dato : 14-01-05 18:59

2005-01-14 Morten Fjendbo wrote
> Jeg har en download maskine som skal flytte de filer den download over på et
> andet mount, og har derfor sat dette i crontab:
> 0-59/4 * * * * root mv -f /mappe/* /mappe1/ > /dev/null 2>&1
>
> Men problemer med det er at når det er store filer som skal flyttes, når den
> ikke at blive færdig før den næste "mv" går i gang.. og går den i ring..

Skal det startes fra cron?

Ellers kunne du lave en loop i et bash script:

while true
do
mv -f /mappe/* /mappe1
sleep 10
done



/Morten

Kasper Dupont (15-01-2005)
Kommentar
Fra : Kasper Dupont


Dato : 15-01-05 03:22

Morten Fjendbo wrote:
>
> Eller evt. har andre gode idéer til at løse mit problem

Ja, lad det script, der downloader filerne
tage sig af flytningen. Så er du sikker på,
at det ikke sker før download er afsluttet.

--
Kasper Dupont

Søg
Reklame
Statistik
Spørgsmål : 177550
Tips : 31968
Nyheder : 719565
Indlæg : 6408823
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste