나중에 모든 내용을 확인하려면 Screen 의 전체 출력을 파일 로 저장해야합니다 .
그 이유는 직렬 포트를 통해 플래시 메모리를 덤프하고 Screen을 사용하여 플래시 메모리를 덤프하기 때문입니다. 메모리 구조를 확인하기 위해 파일에 저장하고 싶습니다.
난 노력 했어:
$: screen /dev/ttyUSB0 115200 >> foo.txt
$: screen /dev/ttyUSB0 115200 | tee foo.txt
또한 화면에서 버퍼 파일을 사용하려고 시도했지만 사용 방법을 이해하지 못합니다.
쉬운 방법이 있습니까?
답변
로깅을위한 명령 행 옵션이 있습니다. 출력은 screenlog.n 파일에 저장됩니다. 여기서 n은 화면의 수입니다. 화면 맨 페이지에서 :
‘-L’화면에 창에 대한 자동 출력 로깅을 설정하도록 지시합니다.
답변
Control-a + H를 사용하여 로깅을 screenlog.n 파일에 저장할 수도 있습니다. 한 번 더 Control-a + H를 끕니다.
Ca H : “screenlog.n”파일에 대한 현재 창의 로깅을 시작 / 종료합니다.
답변
선택한 답변이 여러 세션에서 제대로 작동하지 않으며 사용자 정의 로그 파일 이름을 지정할 수 없습니다.
여러 화면 세션의 경우 이것은 내 공식입니다.
-
각 프로세스에 대한 구성 파일을 작성하십시오.
logfile test.log logfile flush 1 log on logtstamp after 1 logtstamp string "[ %t: %Y-%m-%d %c:%s ]\012" logtstamp on
“즉석에서”수행하려는 경우
logfile
자동으로 변경할 수 있습니다 .
\012
“new line”을 의미합니다. 사용\n
하면 로그 파일에 출력됩니다 : source . -
“-c”및 “-L”플래그를 사용하여 명령을 시작하십시오.
screen -c ./test.conf -dmSL 'Test' ./test.pl
그게 다야. 첫 번째 플러시 후 “test.log”가 표시됩니다.
... 6 Something is happening... [ test.pl: 2016-06-01 13:02:53 ] 7 Something else... [ test.pl: 2016-06-01 13:02:54 ] 8 Nothing here [ test.pl: 2016-06-01 13:02:55 ] 9 Something is happening... [ test.pl: 2016-06-01 13:02:56 ] 10 Something else... [ test.pl: 2016-06-01 13:02:57 ] 11 Nothing here [ test.pl: 2016-06-01 13:02:58 ] ...
“로그온”이 구성 파일에 있어도 “-L”이 여전히 필요하다는 것을 알았습니다.
화면에서 사용되는 시간 형식 변수 (예 : % m) 목록을 찾을 수 없습니다. 해당 형식의 링크가 있으면 아래에 게시하십시오.
특별한
“즉석에서”수행하려는 경우이 스크립트를 사용할 수 있습니다.
#!/bin/bash
if [[ $2 == "" ]]; then
echo "Usage: $0 name command";
exit 1;
fi
name=$1
command=$2
path="/var/log";
config="logfile ${path}/${name}.log
logfile flush 1
log on
logtstamp after 1
logtstamp string \"[ %t: %Y-%m-%d %c:%s ]\012\"
logtstamp on";
echo "$config" > /tmp/log.conf
screen -c /tmp/log.conf -dmSL "$name" $command
rm /tmp/log.conf
사용하려면 (screen.sh) 저장하고 + x 권한을 설정하십시오.
./screen.sh TEST ./test.pl
…. / test.pl을 실행하고 /var/log/TEST.log에 로그 파일을 만듭니다.
답변
다음 명령은 Screen 버전 4.06.02에서 작동합니다.
screen -L -Logfile Log_file_name_of_your_choice command_to_be_executed
-Logfile file : By default logfile name is "screenlog.0".
You can set new logfile name with the "-Logfile" option.
screen -version을 사용하여 기존 버전의 Screen 을 확인할 수 있습니다 . https://www.gnu.org/software/screen/ 에서 최신 Screen 버전을 다운로드하여 설치할 수 있습니다 .
답변
Mac 터미널의 경우 :
script -a -t 0 out.txt screen /dev/ttyUSB0 115200
세부
script
: “터미널 세션의 타이프 스크립트 작성”을위한 내장 응용 프로그램-a
: 출력 파일에 추가-t 0
: 출력 파일에 쓰는 시간이 0 초이므로 out.txt는 모든 새 문자에 대해 업데이트됩니다.out.txt
: 출력 파일 이름 일뿐screen /dev/ttyUSB0 115200
: 외부 장치 연결을위한 질문 명령
그런 다음 tail 을 사용 하여 파일이 업데이트되고 있는지 확인할 수 있습니다 .
tail -100 out.txt
답변
Ctrl+A그런 다음 Shift+H나를 위해 작동합니다. screenlog.0
프로그램이 계속 실행되는 동안 파일 을 볼 수 있습니다 .
답변
유닉스에서 ‘스크립트’명령은 트릭을 수행해야합니다. 새 콘솔이 시작될 때 실행하면됩니다.
