후속 스크립트 실행을 설정된 SSH 연결 셸로 파이프할 수 있습니다.

후속 스크립트 실행을 설정된 SSH 연결 셸로 파이프할 수 있습니다.

SSH 연결이 성공한 후 스크립트 부분을 실행하고 싶습니다. 내가 작성하려는 스크립트를 사용하여 로그 파일을 더 쉽게 추적할 수 있도록 하고 싶습니다.

진행 중인 스크립트는 다음과 같습니다.

echo "[Log Tunnel]" 
 
if [ "$1" == "foo" ] 
        then 
                echo "connecting to foo.dev.company.net" 
                ssh foo.dev.company.net        
                tail -f var/logs/staff/backend/backend.log # what's the way to do this
fi 
 
if [ "$1" == "bar" ] 
        then 
                echo "connecting to bar.dev.company.net" 
                ssh bar.dev.company.net         
fi 

스크립트를 실행하면 다음과 같은 결과가 나올 것으로 예상됩니다.

[Log Tunnel]
connecting to foo.dev.company.net
[email protected]'s password: ***********
# Output of Tail

SSH 연결을 설정하고 시작 후 즉시 실행되어야 하는 후속 셸에 새 스크립트를 전달할 수 있는지 알고 싶습니다.

편집하다:

내 목표는 내 셸 내에서 원격 서버의 로그 파일을 추적하는 것입니다. 이 스크립트는 이러한 로그 파일을 추적하는 간단한 입력 방법을 단순화해야 합니다 ./rtail.sh foo. 이 명령을 실행할 때 쉘 매개변수를 통해 선택한 원격 서버를 기반으로 쉘이 특정 테일 출력을 표시하기를 원합니다. 나는 바로가기를 원한다:

  • SSH를 통해 원격 서버로
  • tail -f 경로/to/logfile.log

답변1

내가 올바르게 이해했다면 다음과 같은 것을 찾고 있습니다.


#!/bin/sh

echo "[Log Tunnel]" 
 
if [ "$1" = "foo" ] 
then 
  server="foo.dev.company.net"
  file="var/logs/staff/backend/backend.log"
elif [ "$1" = "bar" ]
then
  server="bar.dev.company.net"
  file="some/other/file"
fi

echo "connecting to $server" 
ssh "$server" tail -f "$file"

관련 정보