ssh를 통해 다른 서버에 연결하는 서버에서 tail -f 실행


2

다음 명령을 사용하여 다른 서버에 연결하고 tail -f를 실행하는 서버에 연결했습니다.

ssh server1.com ssh server2.com tail -f file.log

이것은 지금까지 잘 작동합니다. 그러나 ctrl + c를 눌러 꼬리 프로세스를 종료하려면 꼬리 프로세스가 아니라 ssh 프로세스가 종료됩니다. 이로 인해 원격 서버에서 테일 프로세스가 실행되고 있지만 이는 그리 좋은 생각이 아닙니다.

아무도이 명령 줄을 어떻게 고칠 수 있는지 알고 있습니까? 또한 os x에서 실행되는 원격 서버의 다른 파일을 편안하게 전환 할 수있는 도구가 있는지 관심이 있습니다.


원격 서버에서 tmux 또는 화면을 사용할 수 없습니까? 그것이 내가 항상 한 일입니다.
Rob

이 Q & A 참조 : 명령 행 또는 쉘에서 작동하게하려면 ssh 에이전트도 전달해야합니다. 예를 들어 ssh 옵션 "A"(ssh man 페이지 참조)를 사용하십시오. ssh -A user_foo @ serverB "my_cmd"
hornetbzz

답변:


1

netcat을 server1.com에 설치 한 경우 (아마도 가능) ssh 지시문 ProxyCommand을 사용하여 server1.com을 원활하게 홉할 수 있습니다. 따라서 Ctrl + C를 누르면 SSH 세션이 아닌 server2.com의 명령 만 종료됩니다.

귀하의 예 ~/.ssh/config(파일이 존재하지 않으면 파일을 작성하고 파일이 있으면 추가하십시오) :

Host server2.com
  User piskvor
  ProxyCommand ssh -q server1.com nc -q0 server2.com 22

여기서 일어나는 일 :

  • ssh는 server1.com에 연결
  • 원격으로 거기에서 server2.com으로 연결합니다 (nc 사용)
  • server1.com을 통해 데이터를 전달하는

이것은 ssh 클라이언트에게 완전히 투명하므로 직접 연결된 것처럼 (예 : SFTP, X 전달, TCP 전달 등) server2.com을 사용할 수 있습니다.

더 자세한 설명 (이를 여러 홉으로 확장하는 것)에 대해서는이 기사 또는 이와 유사한 SU 관련 질문을 참조하십시오 .


감사. 더 많은 구성을 한 후에 이것은 ssh를 server2에 대한 멋진 지름길을 제공합니다 : "ssh server2.com"... 그러나 "ssh server2.com tail -f file.log"를 사용하면 같은 문제가 발생합니다. Ctrl + c는 ssh 연결을 종료하고 테일 프로세스를 실행 상태로 둡니다. 여러 창 등을 여는 스크립트 에서이 명령을 실행하고 싶습니다. 따라서 server2로 ssh하고 수동으로 tail 명령을 입력 할 수는 없습니다.
Steve Hummingbird

나는 당신의 제안 구성을 사용하여 훨씬 쉬워졌습니다 연결하는 나 자신이 내 최초의 질문에 대한 대답을 찾기 위해 더 이상 필요가 없습니다 것 같아요 ..., 원격 서버에 명령 스크립트 꼬리에 역부족 결코 같은 답변을 수락
스티브 벌새
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.