리눅스 로그 > 윈도우 TCP/IP통신에서 CRLF적용 문제
글쓴이: kysu5095 / 작성시간: 월, 2020/10/26 - 12:57오후
안녕하세요. 며칠전 리눅스 환경에서 윈도우 환경으로 TCP/IP로 시리얼 통신하는 과정에서
LF(Linux) <-> CRLF(Windows) 차이로 인해 질문했었습니다.
아직도 해당문제를 해결하지 못하여 다시한번 질문드립니다ㅠ
현재 작업순서는 리눅스환경의 보드의 /var/log/messages를 윈도우환경으로 TCP/IP로 통신하여
윈도우에서 해당 로그를 확인하는 작업입니다.
시리얼을 받는 윈도우 환경에서 수정을 할 수 없는 상황이어서 보내는쪽인 리눅스환경에서 수정을 해야할거 같은데
도저히 방법이 떠오르지 않습니다ㅠ
추가로 TCP/IP 소스는 건드리지 않는선에서 해결해야 하기때문에 더 문제입니다
messages파일에 \n에 \r만 추가하면 될것같은데 생각대로 되질 않네요,,,
힌트 좀 부탁드리겠습니다,,,,
=======================추가==========================
sed 라는 명령어로 messages의 형식을 CRLF로 바꾼 후 통신할 수 있는건가요?
Forums:
이전 글에 댓글을 남겼는데,
이전 글에 댓글을 남겼는데,
1. 댓글이 뭔 소린지 잘 이해가 안가고,
2. 얼마전에 remserial 질문한 분과 같은 분이면,
remserial 실행 때 -s 옵션으로 icrnl 이나 ocrnl 줘 보세요.
답변 감사합니다.
기존 remserial을 실행할때 ./remserial -p 23000 -s "115200 raw" -d /var/log/messages &로 했던것을
./remserial -p 23000 -s "115200 raw icrnl" -d /var/log/messages & 과
./remserial -p 23000 -s "115200 raw ocrnl" -d /var/log/messages & 둘 다 해보았지만 아직도 LF방식으로만
출력되고 있습니다ㅠ
remserial은 모르지만 stty 옵션에 준해
remserial은 모르지만 stty 옵션에 준해 생각해보면,
ocrnl은 CR -> LF 변환해주는 옵션이겠고
onlcr이 LF -> CRLF 해주는 옵션이겠네요
https://linux.die.net/man/1/stty
이걸로 안 되면, 아래와 같이 process substitition으로 해결될수도 있겠습니다.
로그파일을 telnet 클라이언트에게 공유하는 것은
로그파일을 telnet 클라이언트에게 공유하는 것은 nc를 써서 아래와 같은 식으로 해도 되지 않나요? 로그파일을 처음부터 덤프하되 파일 끝에 도달해도 종료하지 말고 이후 추가되는 내용도 클라이언트에게 계속 보내는 식이며, nc의 -C 옵션이 stty onlcr 역할을 해줍니다.
1. 리눅스에서 로그를 어떻게(프로그램? 옵션?
1. 리눅스에서 로그를 어떻게(프로그램? 옵션? 프로토콜?) 송신합니까?
2. 윈도우에서 해당로그를 어떻게(프로그램? 옵션?) 확인하나요?
그 설명이 없는데... 누가 해결해 줄수 있겠습니까?
\n을 \r\n으로 바꾸면 됩니다.
\n을 \r\n으로 바꾸면 됩니다.
s/\n/\r\n/g
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
댓글 달기