명령을 입력하면 명령이 원격 서버에 인증되고 일련의 작업을 수행합니다. 통과하면 bash 셸과 해당 환경이 제공됩니다.
내 목표는 나중에 검사할 수 있도록 이러한 로그를 내 터미널에 인쇄하여 저장하는 것입니다. 내 명령의 이름이 이라고 가정해 보겠습니다 target
.
target을 입력하면 다음 메시지가 표시됩니다.
Version: V1.94
Options:
Date: Thu Jun 6 17:18:39 2019
OS: CentOS release 6.10 (Final)
....
[DEV]target>
마지막 줄은 대상 쉘 환경에 진입했음을 의미합니다.
시도해 보았지만 echo $(target) > output.log
입력할 때까지 멈춥니다 CTRL+C
.
환경: CentOS 6.10
고쳐 쓰다
컴퓨터를 활성화할 때 이 스크립트가 자동으로 실행되기를 원한다고 가정해 보겠습니다. 그러나 셸에 들어가고 떠나지 않기 때문에 대상 명령을 실행할 때 여전히 멈춥니다.
#!/bin/bash
script -c target output.log
FILENAMEME=output.log
aws s3 cp "$FILENAME" s3://logs/
답변1
시도해 볼 수도 있습니다 script
.
script -c target output.log
그러면 명령이 시작되고 종료될 때까지 target
전체 세션의 기록이 target
파일 에 저장됩니다 output.log
. 명령(yours target
)이 여러 단어로 긴 경우 전체 명령을 인용해 주세요.
script
( )설명서를 참조하세요 man script
.
답변2
target
명령 자체를 변경할 수 없는 경우 다음이 도움이 될 것입니다.
target | tee output.bak
output.bak
모든 출력의 복사본(이 경우 표준 출력)이 포함되므로 초기 정보만 원하는 경우 이를 정리해야 합니다.