여러 원격 파일 테일


41

원격 테일 2 파일로 연결하는 방법이 있습니까?

로드 밸런서 뒤에 두 개의 서버 (a 및 b)가 있으며 가능한 경우 다음과 같은 작업을 수행하려고합니다.

tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log

감사!


왜 답을 지웠습니까?
Pablo Fernandez

대부분 작동하지 않았기 때문에 :-)
mat

@ mat 아, 나는 그것을 시도하려고했습니다 :). 어쨌든 고마워!
Pablo Fernandez

의 <(foo는) 구조가 내부 명령 대기하므로이 일을하지 않는 마무리 소프트웨어가 읽을 수 있습니다, 그리고 꼬리 :-) 완료 절대 된 원래 명령 줄에서 파이프로 대체되기 전에
매트

답변:


31

이것은 나를 위해 일했다 :

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &

그래, 그건 내가 보통 여러 그놈 터미널은 열이를 제외하고 내가 그 안에 하나 개의 세션으로, 각 그것을 할 방법
톰 오코너

1
여러 개의 독립적 인 ssh 세션을 열지 않고이를 수행하는 방법이 있습니까?
tgies

8
그러나 이로 인해 광미를 중지 할 수 없습니다 Ctrl+C.
sorin

프로세스를 종료하려면 @sorin을 사용하여 각 프로세스를 다시 전경으로 가져옵니다 fg. 그럼 당신은 할 수 ctrl+c있습니다. 당신은 당신이 달리는 각 꼬리에 대해 한 번 그렇게 할 것입니다. 또는 pkill -f ssh그들 모두를 동시에 타겟팅 할 수도 있습니다.
데일 앤더슨

34

내가 선호하는 옵션은 multitail과 함께하는 것입니다. 나는 다음과 같은 것을 실행했다 :

multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'

1
감사! 원격 호스트에서 ssh /를 통해 multitail을 사용하는 방법의 예를 찾고있었습니다!
노아 서스

멀티 테일은 훨씬 강력한 솔루션입니다.
obfk

우리 웹 사이트는 10 개 이상의 웹 노드를 가지고 있으며, 첫 번째 시도에서 멀티 테일이 실패하고, Operation not permitted2 개의 3 개의 웹 노드가 있으면 괜찮습니다
Hieu Vo

나도 Operation not permitted단서가 있습니까?
Erik Aigner

7

패브릭 을 사용 하여 여러 호스트를 테일링 할 수 있습니다 (필요한 경우 grep 결과도 가능).

$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR

6

나는 또한 그것을 사용할 수 있다고 생각했다.

ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &

ssh 뒤의 -f 옵션을 사용하면 백그라운드에서 실행하기 전에 비밀번호를 입력 할 수 있습니다. 그런 다음 한 줄씩 결과를 단일 파일로 만들고 실행할 수 있습니다.

tail -f /tmp/somefile

출력을 표시하기 위해 다른 테일 옵션을 사용하려는 경우 현재 "테일"명령을 조금 더 제어 할 수 있습니다.



5

multitail을 살펴 보십시오 . 위의 예와 같이 ssh에 명령으로 제공하면 여러 로그를 표시하고 쉽게 스크롤 할 수 있도록 버퍼링하는 하나의 화면이 나타납니다. 또한 착색을 수행하여 이상 현상을 발견하는 데 매우 유용합니다.


2

Parallel ssh 에는 다음과 같은 훌륭한 솔루션이 있습니다.

pssh -t0 -H 'host-01 host-02 host-03 host-04' -P tail -f /var/log/app.log
  • -t0 연결 시간 초과를 비활성화하고, 그렇지 않으면 pssh가 연결을 닫았습니다.
  • -H '<host>...' 명령을 실행할 호스트 목록입니다.
  • -P 각 호스트의 표준 출력을 인쇄하는 것입니다.
  • tail -f /var/log/app.log 원격 쉘이 실행할 수있는 모든 명령이 될 수 있습니다.


1

이상한 해결책이지만 작동합니다! :

화면 1

ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6

화면 2

ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6

이것은 / dev / pts / 6 터미널에서 라인을 출력합니다 (자신의 터미널을 찾기 위해 : execute : who am i 그리고 그것을 보여줄 것입니다)
Olivier Dulac

1

dbitail을 체크 아웃 할 수 있습니다.

SSH를 사용하여 로컬 및 원격 로그 파일을 읽을 수있는 Java 도구입니다. 사용이 매우 간단합니다.

좀 더 설명 : https://github.com/pschweitz/DBITail/wiki

Java Runtime 내에서 기본 jar 릴리스 실행 파일의 운영 체제에 해당하는 버전을 다운로드하십시오 (java 8_40 이상 필요).

https://github.com/pschweitz/DBITail/releases

완전한 문서를 찾을 수 있습니다 (I Github 페이지와 함께 제공됨)

필립


0

또는 화면을 사용하여 두 개의 터미널을 만든 다음 분할 할 수 있습니다.

로그 파일의 꼬리를 맞추고 꼬리를 실행하기 전에 첫 번째 호스트에 SSH를 입력하고 화면을 입력하십시오.

그런 다음이 호스트에 파일을 추가하십시오.

CTRL + A, c는 새 화면이나 창을 만듭니다. 이 새 창에서 두 번째 호스트로 ssh하고 거기에 파일을 추가하십시오.

이제 분할 화면을 만들려면

Ctrl + A, SHIFT + S를 누르면 위쪽 부분에 현재 셸이 있고 아래쪽 부분이 비어있는 분할 화면이 만들어집니다. 하단으로 전환하여 첫 번째 화면을 넣으려면

Ctrl + A, Tab을 누르면 아래쪽으로 이동합니다. 이제 첫 번째 SSH 세션을이 영역으로 가져 오십시오.

CTRL + A, "(인용 부호)를 입력하고 첫 번째 세션을 선택한 후 Enter 키를 누르십시오.

나는 이것이 많은 체조처럼 보일 수 있다는 것을 알고 있지만, 몇 번 사용하면 그것을 사용할 수 있습니다.

다음은 화면에 대한 유용한 자습서 또는 빠른 참조입니다. http://www.pixelbeat.org/lkdb/screen.html

또한 .screenrc 파일을 만들어 처음으로 화면을 입력했을 때 설명한 내용의 대부분을 자동화 할 수 있습니다.

이것에 대한 또 다른 좋은 점은 세션을 닫고 다른 곳에서 다시 시작할 수 있다는 것입니다. 예를 들어, 작업 중이며 모니터링이 진행 중입니다. 로그 아웃하지 않고 세션을 닫고 집이나 다른 위치로 돌아갈 때 다시 시작할 수 있습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.