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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam,
posiadam pewien program, chce monitorować jego prace poprzez tworzenie logów tekstowych.
Skrypt który stworzyłem do tworzenia logów:
#!/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:
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
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:
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 prog.sh, nie będziemy w stanie Ci pomóc.
Offline
Strony: 1