답변:
이 도구 하나를 발견했습니다 ttylog
. CPAN 에서 사용할 수있는 Perl 프로그램 입니다. 여기에는 몇 가지주의 사항이 있습니다. 하나는 누군가 내 상자에 ssh'ing하는 일부로 만들어진 터미널에 연결하는 방법 만 알 수 있다는 것입니다. 다른 하나는 높은 권한 (예 : root 또는 sudo)으로 실행해야한다는 것입니다.
그러나 작동합니다!
먼저 TERM # 1에서 상자에 넣습니다.
TERM#1% ssh saml@grinchy
이 새로운 터미널의 tty에 주목하십시오 :
TERM#1% tty
/dev/pts/3
이제 다른 터미널 (TERM # 2)에서 다음 명령을 실행하십시오.
TERM#2% ttylog pts/3
DEBUG: Scanning for psuedo terminal pts/3
DEBUG: Psuedo terminal [pts/3] found.
DEBUG: Found parent sshd pid [13789] for user [saml]
이제 TERM # 1로 돌아가서 내용을 입력하면 TERM # 2에 표시됩니다.
내가 시도한 모든 명령 (top, ls 등)은을 사용하여 사건없이 작동했습니다 ttylog
.
gdb
내가 만난 첫 번째 옵션이었습니다. 나는 과거에 직접 사용했지만 적어도 나에게는 해키입니다. 기꺼이 도와주었습니다!
실제로 그렇습니다. / dev / vcs * 및 / dev / vcsa * 장치는 / dev / tty * 장치 (가상 터미널)에 해당합니다. F1 = tty1 = vcs1 / vcsa1 등. vcs / vcsa는 "현재"가상 터미널의 tty와 같습니다.
루트로서이 장치들 (예를 들어 cat / dev / vcs2)을 cat하고 스냅 샷을 찍는 것과 같이 해당 VT에있는 것들 (예 : F2의 / dev / tty2)을 볼 수 있습니다. vcsa *는 터미널 (화면)의 크기에 대한 정보를 포함한다는 점에서 vcs *와 다릅니다. 터미널에 할당 된 메모리에서 수집 된 화면에 표시되는 문자의 생생한 스냅 샷이므로 훌륭하고 쉽게 파싱 가능한 출력을 기대하지 마십시오.
단점은 정보가 너무 빨리지나 가면 캡처하기 어려울 수 있다는 것입니다. 여러 screenfulls를 따라야 할 경우 tail -f / dev / vcs1이 작동합니까? 먼저 파일로 간단히 리디렉션하는 것이 가장 쉬울 수 있습니다. 단자의 치수가 같으므로 VT (F1-F6)를 사용하여 보는 것이 좋습니다. 내 경험상, vcsa *가 아닌 vcs * 장치를 사용하는 것이 가장 좋습니다.
그래도 문제가 해결되지 않으면 관리자가 터미널의 활동을 감시 할 수있는 "거대한"패키지 중 하나 일 수 있습니다.
추신 : 사용중인 OS를 묻는 것을 잊었습니다. 유사한 장치가 다른 OS에도 존재할 수 있지만 이것은 Linux 용입니다. 장치 매뉴얼 페이지에서 "가상 콘솔 메모리"를 검색하십시오.
wlan0
실제로이 스크립트가 실패하는 곳을 디버깅하려고하는 catch-22 상황이 있습니다. 내가 USB 허브를 사용할 수 없다고 가정 해보십시오 ... 어떻게 든 문자를 / dev / tty1에 파이프하는 방법이 있습니까?
/dev/tty1
루트로 물건을 파이프 할 수 있지만이 모든 것은 문자를 화면에 표시하고 입력하지 않는 것입니다.
이것은 나를 위해 일했다 :
컴퓨터 "A"(예 : 제어 할 실제 컴퓨터)의 키보드를 사용하여 다음을 실행하십시오. screen -q
연결과 ssh
컴퓨터 "B"에서 컴퓨터에 "A".
ssh 세션에서 : screen -ls
를 입력 하여 연결할 세션 ID를 가져 오십시오 ( tty 를 포함하는 행의 4 자리 숫자 ).
screen -x <session id>
... screen -ls
위 명령 에서 수신 한 세션 ID 번호를 사용하여 위 세션에 연결하십시오 .
"세션"중 하나에 입력 된 내용은 두 "세션"모두에서 발생하므로 예를 들어 입력 screen -d
하면 두 세션이 모두 종료 됩니다 .
화면에서 tty1을 시작하지 않았 으므로이 스크립트가 도움이되었습니다.
위의 Baard Kopperud의 답변을 사용했습니다. "128"은 tty1의 한 줄입니다. 수면은 적절한 숫자로 설정 될 수 있습니다.
#!/bin/bash
while true
do
sudo tail -c 128 /dev/vcs1 && echo ""
sleep 10
done
터미네이터에서 이것을 사용하고 열의 크기를 조정하여 스크롤이 한 줄의 텍스트가되도록했습니다.
두 개의 터미널을 엽니 다. tty
각각을 입력 하면 ID가 다음 과 같이 나타납니다./dev/pts/nº
그런 다음 첫 번째에 입력 script -f /dev/pts/nºofSecondTerminal
하고 두 번째에 반대를 수행하여 연결script -f /dev/pts/nºofFirstTerminal
되도록
축하합니다! 두 터미널 모두 동일한 내용을 출력하고 수신합니다. 세 번째가 필요하십니까? 글쎄, 당신은 조합을 공부 했습니까? 6 개의 script -f
명령 이 필요 합니다. 더 tty? 곧...
screen
또는tmux
시작하기 전에 고려하십시오 .