"screen -L"을 사용하여 로그를 강제로 덮어쓰는 방법은 무엇입니까?

"screen -L"을 사용하여 로그를 강제로 덮어쓰는 방법은 무엇입니까?

백그라운드에서 긴 컴퓨팅 작업을 실행하고 싶습니다. 나는 선택한다 screen. 하지만 화면이 리디렉션을 허용하지 않는 것으로 나타났습니다. 예를 들어

screen -dmS name ls>ls.dat

생성되지 않습니다 ls.dat.

다행히 screen -L화면의 로그가 파일로 출력됩니다. 그러나 pkill screen완전히 새로운 화면을 실행 하더라도 이전 로그 파일에 추가됩니다 .

새 화면을 시작할 때 이전 로그 파일을 강제로 덮어쓰도록 하는 방법이 있습니까?

답변1

화면이 로그를 덮도록 강제할 수는 없다고 생각합니다. screenlog.%n기본적으로 %n화면 창 번호에 기록됩니다(따라서 각 창에는 자체 로그가 있습니다). 파일이 있으면 파일에 추가됩니다.

그러나 타임스탬프를 포함하여 다른 파일 이름을 사용하도록 지시할 수 있으므로 screen매번 새 로그 파일을 가져오지만 이전 로그를 관리해야 합니다.

.screenrc다음 줄을 입력할 수 있습니다 .

logfile /path/to/log/screenlog-%n-%Y%m%d-%c:%s

%n창 번호( )와 연, 월, 일, 시간을 포함하는 로그 파일을 생성합니다 .

bash또는 screen을 실행하기 전에 로그 파일을 삭제하는 별칭을 만들 수 있습니다 . 예를 들면 다음과 같습니다.

alias screen='rm /path/to/log; screen'

screen현재 디렉터리의 로그 파일에 영향을 미치려면 /path/to/log/위 명령에서 삭제하면 됩니다.

마지막으로, 달성하려는 목표에 따라 Linux 도구가 script로그인보다 더 유용할 수 있습니다 screen. man script더 많은 정보를 알고 싶습니다.

관련 정보