/ 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
Lidt shell/cron programmering
Fra : Jacob Larsen


Dato : 18-03-06 18:10

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hej

Jeg er gået i gang med et lille projekt for at komme lidt mere ind i
bash-shell'en. Og så kunne jeg ikke lige finde en download-manager der
havde de features jeg skulle bruge...

Min idé er at have et cron-job til at starte wget, der downloader fra en
liste af URL'er. Der kører så et andet cron-job senere, der lukker wget
ned. Næste gang det første cron-job starter, så fortsætter wget hvor den
slap på listen med -c optionen osv.

Umiddelbart virker det til at jeg har styr på at starte wget rigtigt,
men der er et par problemer med det rundt omkring.

1: Cron-job 2 skal bruge en parameter til kill. Hvordan trækker jeg PID
ud når jeg starter en proces i baggrunden? Vil det hjælpe at starte wget
med -b?

2: Jeg skal have læst URL'er fra en fil en ad gangen, hvilket jeg gør
med 'head -n1'. Men hvordan sletter jeg første linje fra den fil når jeg
er færdig med den? Er det noget sed/tr jeg skal bruge, eller kan jeg
finde antal linjer minus en på en eller anden måde, som jeg så kan bruge
til tail?

3: Hvordan kan jeg finde ud af at filen med URL'er er tom? Jeg regner
med at køre i et while-loop indtil filen er tom, så jeg skal bruge noget
til at bryde loopet.

Er der nogen herinde, der kan hjælpe?

/Jacob
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEHD7PiAWIAI3xXVYRAk/GAJ46eolrUp4OZ7KjQJPRqGRz7LL6OACgtYoM
MP39NJjFBJbp5g+tlYHHGoo=
=vGkO
-----END PGP SIGNATURE-----

 
 
Claus Rasmussen (19-03-2006)
Kommentar
Fra : Claus Rasmussen


Dato : 19-03-06 00:52

Jacob Larsen wrote:

> 1: Cron-job 2 skal bruge en parameter til kill. Hvordan trækker jeg PID
> ud når jeg starter en proces i baggrunden? Vil det hjælpe at starte wget
> med -b?

sleep 10 &
echo $! >fil
kill -9 $(cat fil)


> 2: Jeg skal have læst URL'er fra en fil en ad gangen, hvilket jeg gør
> med 'head -n1'. Men hvordan sletter jeg første linje fra den fil når jeg
> er færdig med den? Er det noget sed/tr jeg skal bruge, eller kan jeg
> finde antal linjer minus en på en eller anden måde, som jeg så kan bruge
> til tail?

sed -i 1d fil


> 3: Hvordan kan jeg finde ud af at filen med URL'er er tom? Jeg regner
> med at køre i et while-loop indtil filen er tom, så jeg skal bruge noget
> til at bryde loopet.

if [ -s fil ]
then # Tom fil
fi


> Er der nogen herinde, der kan hjælpe?

Masser.

-Claus


Claus Rasmussen (19-03-2006)
Kommentar
Fra : Claus Rasmussen


Dato : 19-03-06 01:34

Claus Rasmussen wrote:

> if [ -s fil ]

if [ ! -s fil ]



Jacob Larsen (19-03-2006)
Kommentar
Fra : Jacob Larsen


Dato : 19-03-06 16:18

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Claus Rasmussen wrote:
> Jacob Larsen wrote:
>
>
>>1: Cron-job 2 skal bruge en parameter til kill. Hvordan trækker jeg PID
>>ud når jeg starter en proces i baggrunden? Vil det hjælpe at starte wget
>>med -b?
>
>
> sleep 10 &
> echo $! >fil
> kill -9 $(cat fil)

Tak for det. Men nu jeg har prøvet det, og der er et lille problem.
Efter jeg har gemt PID i en fil, vil jeg gerne blokere scriptet indtil
wget er færdig. Hvordan gør jeg det? fg ser kun ud til at virke
interaktivt. Kan jeg gemme PID fra en process der ikke er sendt i
baggrunden? Eller er der en eller anden kommando der kan monitorere en
PID indtil processen stopper?

/Jacob
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFEHXYKiAWIAI3xXVYRAsv0AJ91VKfEbrycUvxiY6aK/yyYFQi/IwCfbDGF
JN9KQb3oUUIqSElNwboWct0=
=aIO9
-----END PGP SIGNATURE-----

Claus Rasmussen (19-03-2006)
Kommentar
Fra : Claus Rasmussen


Dato : 19-03-06 23:09

Jacob Larsen wrote:

> Efter jeg har gemt PID i en fil, vil jeg gerne blokere scriptet indtil
> wget er færdig. Hvordan gør jeg det? fg ser kun ud til at virke
> interaktivt.

wait $PID



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

Månedens bedste
Årets bedste
Sidste års bedste