Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-07-26 13:16:57

  zomb - Użytkownik

zomb
Użytkownik
Zarejestrowany: 2010-02-07

Problem z tworzeniem logów programu

Witam,
posiadam pewien program, chce monitorować jego prace poprzez tworzenie logów tekstowych.
Skrypt który stworzyłem do tworzenia logów:

Kod:

#!/bin/bash
ulimit -c unlimited
while true;
do
        echo "Restart : `date +%d-%m-%Y--%H:%M`" >> ./restart.log
        ./prog.sh >> log/`date +"%Y-%m-%d--%H:%M"`.txt;
        sleep 10
done

teraz opisze przykładowe działanie w/w skryptu:
uruchamia on program 'prog.sh', w przypadku gry program zakończy prace, uruchamia go ponownie, w pliku restart.log wypisuje date restartu.
nastepnie tworzy plik w którym loguje program, załóżmy że program wygląda tak:

Kod:

1
2
3
4
5
6 - tutaj zatrzymuje się na np 5 sekund
7
8
9
...
100
101
koniec

problem polega na tym, że co prawda wysyła do pliku log ale tylko do 6 czyli 1,2,3,4,5,6 i dalej nie, dopiero gdy program zakończy prace i sie zresetuje to dopisuje sie do pliku reszta tekstu, a ja chciałbym żeby dopisywała się ona cały czas w czasie rzeczywistym.
Proszę o pomoc/ sugestie

Offline

 

#2  2012-07-26 21:51:16

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: Problem z tworzeniem logów programu

1. Nie możesz zaimplementować zapisywania wiadomości diagnostycznych w samym programie? Twoje aktualne rozwiązanie jest lekko mówiąc nieeleganckie.
2. W jaki sposób sprawdzasz, kiedy dane zapisują się do pliku?
Ja sprawdziłem na takim skrypcie, który robi mniej więcej to co robi Twój skrypt, przynajmniej na podstawie tak nieprecyzyjnych informacji jakie nam przekazałeś na jego temat:

Kod:

cat prog.sh 
#!/bin/bash

for ((i=0; i<102;i++)); do
        echo "$i"
        if [ $i -eq 6 ]; then
                sleep 5
        fi
done
echo "koniec"

Śledząc log tailem wydaje się, że po pięciosekundowej przerwie nagle cała reszta jest zapisana do pliku. Ale to złudzenie — całość jest zapisywana na bieżąco, tylko wykonanie tego skryptu zajmuje komputerowi drobny ułamek sekundy. Człowiek nie jest w stanie tego dostrzec bez bardziej precyzyjnych narzędzi niż ludzkie oko.
3. Być może u Ciebie nie chodzi o złudzenie. Ale dopóki nie pokażesz zawartości pliku [tt]prog.sh[/tt], nie będziemy w stanie Ci pomóc.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)

[ Generated in 0.016 seconds, 13 queries executed ]

Informacje debugowania

Time (s) Query
0.00017 SET CHARSET latin2
0.00007 SET NAMES latin2
0.00203 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.223.196.171' WHERE u.id=1
0.00153 UPDATE punbb_online SET logged=1716071592 WHERE ident='18.223.196.171'
0.00076 SELECT * FROM punbb_online WHERE logged<1716071292
0.00137 DELETE FROM punbb_online WHERE ident='185.191.171.14'
0.00123 DELETE FROM punbb_online WHERE ident='47.128.59.1'
0.00109 SELECT topic_id FROM punbb_posts WHERE id=207418
0.00156 SELECT id FROM punbb_posts WHERE topic_id=21681 ORDER BY posted
0.00127 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=21681 AND t.moved_to IS NULL
0.00008 SELECT search_for, replace_with FROM punbb_censoring
0.00142 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=21681 ORDER BY p.id LIMIT 0,25
0.00118 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21681
Total query time: 0.01376 s