/ 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
Logging af output fra bash-script?
Fra : Jacob Tranholm


Dato : 17-02-05 17:37

I forbindelse med opsætning af bittornado (http://bittornado.com/) er jeg
stødt ind i et lille problem:

I forbindelse med opstarten bliver computeren bedt om at eksekvere følgende
kommando:

su mit_brugernavn -c /home/mit_brugernavn/bin/btlaunchmany_start

Hvor btlaunchmany_start-filen har følgende udseende:

#! /bin/bash
#

/bin/nohup /bin/nice -n 10 /usr/bin/btlaunchmany.py /mnt/shared/torrent/ \
--minport 10001 --max_uploads 4 --max_upload_rate 48 \
--display_interval 20 >>/mnt/shared/torrent/torrent.log 2>&1 &

Det hele forløber egentligt perfekt og hvis jeg placerer en .torrent-fil
i /mnt/shared/torrent/-directory'et bliver opgaven udført, men... Jeg kan
ikke løbende læse logfilen. Hvis processen dræbes er logfilen korrekt
skrevet til den specificerede fil, men imens scriptet kører, kan jeg ikke
læse det nyeste indhold af logfilen.


 
 
Esben Collstrup (17-02-2005)
Kommentar
Fra : Esben Collstrup


Dato : 17-02-05 18:23

Jacob Tranholm <jacob_tranholm@hotmail.com> wrote in
news:sqtee2-gap.ln1@tranholm.homenetwork:

> Hvor btlaunchmany_start-filen har følgende udseende:
>
> #! /bin/bash
> #
>
> /bin/nohup /bin/nice -n 10 /usr/bin/btlaunchmany.py
> /mnt/shared/torrent/ \
> --minport 10001 --max_uploads 4 --max_upload_rate 48 \
> --display_interval 20 >>/mnt/shared/torrent/torrent.log 2>&1 &
>
> Det hele forløber egentligt perfekt og hvis jeg placerer en
> .torrent-fil i /mnt/shared/torrent/-directory'et bliver opgaven
> udført, men... Jeg kan ikke løbende læse logfilen. Hvis processen
> dræbes er logfilen korrekt skrevet til den specificerede fil, men
> imens scriptet kører, kan jeg ikke læse det nyeste indhold af
> logfilen.

Jeg havde samme problem med den oprindelig BitTorrent klient, og jeg
løste problemet ved at angive "python -u btlaunchmany.py ..."
Tilsyneladende er problemet at python buffer stdout, -u angiver
unbuffered stdout.

--
Esben
---
"Carpe Caelum"

http://www.geocities.com/ecollstrup

Jacob Tranholm (17-02-2005)
Kommentar
Fra : Jacob Tranholm


Dato : 17-02-05 20:55

Esben Collstrup wrote:
>
> Jeg havde samme problem med den oprindelig BitTorrent klient, og jeg
> løste problemet ved at angive "python -u btlaunchmany.py ..."
> Tilsyneladende er problemet at python buffer stdout, -u angiver
> unbuffered stdout.
>

Mange tak... Nu er problemet løst og mit btlaunchmany_start-script ser i
stedet således ud:

-----
#! /bin/bash
#

/bin/nohup /bin/nice -n 10 /usr/bin/python -u /usr/bin/btlaunchmany.py \
/mnt/shared/torrent/ --minport 10001 --max_uploads 4 --max_upload_rate 48 \
--display_interval 20 >> /mnt/shared/torrent/torrent.log 2>&1 &
-----

Det er ikke kønt, men det fungerer...


Kasper Dupont (17-02-2005)
Kommentar
Fra : Kasper Dupont


Dato : 17-02-05 19:06

Jeg ved ikke om det er relevant i den her
forbindelse, men jeg har i hvert fald tit haft
glæde af at bruge script kommandoen til at logge
in shell session.

Når du kører kommandoen script startes en ny
shell, og alt dens output sendes til en fil.
Når du ikke vil logge mere afslutter du bare
shellen (ctrl-D eller exit).

I de fleste tilfælde synes jeg det er mest
praktisk at bruge en -f option til script, så
den flusher stdout ved hver skrivning. Ellers
vil du igen løbe ind i problemet med at du ikke
ser opdateringerne med det samme.

En script kommando kunne f.eks. se sådan her ud:
script -f nogetoutput.txt

Og hvis man har brug for at køre nogle shell
ting i baggrunden er screen også ofte praktisk.
Og de kan selvfølgelig bruges sammen, start en
screen og kør så script kommandoen.

--
Kasper Dupont

Kim Hansen (17-02-2005)
Kommentar
Fra : Kim Hansen


Dato : 17-02-05 19:11

Kasper Dupont <kasperd@daimi.au.dk> writes:

> Og hvis man har brug for at køre nogle shell
> ting i baggrunden er screen også ofte praktisk.
> Og de kan selvfølgelig bruges sammen, start en
> screen og kør så script kommandoen.

Screen kan selv logge (C-a H), saa det er ikke noedvendigt at bruge
begge kommandoer sammen.

--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Vadgårdsvej 3, 2.tv. | /,`.-´` -. ;:-. | Jeopardy.
2860 Søborg | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Tlf: 39 56 24 37 | '---''(_/--' `-'\_) | spørgsmålet.

Kasper Dupont (17-02-2005)
Kommentar
Fra : Kasper Dupont


Dato : 17-02-05 21:58

Kim Hansen wrote:
>
> Screen kan selv logge (C-a H), saa det er ikke noedvendigt at bruge
> begge kommandoer sammen.

Man lærer noget nyt hele tiden

Det der med at den som default venter ti sekunder før den
skriver til filen synes jeg er lidt underligt. Men det
ser da heldigvis ud til at være nemt at ændre.

Hvorfor logger den egentlig kun xit når jeg trykker c-d
for at terminere en shell? Shellen udskriver da exit.

--
Kasper Dupont

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

Månedens bedste
Årets bedste
Sidste års bedste