strumienie ">>" i zapisywanie tekstu do pliku

Potrzebujesz pomocy z C, C++, perl, python, itp.
Awatar użytkownika
sector
Beginner
Posty: 113
Rejestracja: 28 kwietnia 2010, 10:48
Lokalizacja: Kraków

strumienie ">>" i zapisywanie tekstu do pliku

Post autor: sector »

Witam,
mam taki skrypt, który przekierowuje ostatnie linijki logów postgresa do pliku określonego przez użytkownika. W dużym uproszczeniu wygląda to tak:

Kod: Zaznacz cały

tail -f /var/log/postgreSQL-8.4-uft8-dev.log >> /home/sector/log.txt
W zasadzie wszystko pięknie, tylko jest jedno ale. Czasami postgres zapisuje zapytania w dziwny sposób czyli mniej wiece tak:

Kod: Zaznacz cały

select * from tabela where ....
           and .... like ....
Nie jest to chyba zwykły enter bo to w drugiej linijce już nie zapisuje się do pliku i zostaje jedynie pierwsza linijka i kod się urywa. Pierwszy raz spotkałem się z czymś takim. Gdy sprawdzam log postgresa to np. zapytanie ma 3 linijki podczas gdy mój plik log.txt ma jedynie 1.

Czy ktoś z was spotkał się z czymś takim i wie jak to "naprawić" ?
Czocher
Beginner
Posty: 140
Rejestracja: 26 maja 2007, 23:19

Post autor: Czocher »

Może Postgres zapisuje C stringi z EOF na końcu do pliku (choć to pewnie można zaklasyfikować jako błąd tzw. bug). Polecam przebadać bajt po bajcie jak wygląda ta linijka w pliku (np vimem w trybie szesnastkowym albo innym hex-edytorem) i sprawdzić czy tam nie ma EOFa albo coś w tym stylu.
ODPOWIEDZ