유닉스에서 원격으로 스크립트를 실행하고 로컬로 출력합니까? stdout /

(로컬) Windows 명령 셸에서 원격 Unix 시스템에서 (Tcl 또는 기타) 스크립트를 실행해야하며 스크립트의 stdout / stderr가 Windows CLI에 표시되기를 원합니다. 종료 코드도 유용합니다.

ssh (putty)를 사용하여 가능합니까? 아니면 다른 방법으로?

감사!



답변

SSH의 기본값입니다. 출력을 원격으로 리디렉션하려면 명령 따옴표 안에 리디렉션 기호 (일반적으로 “>”)를 넣으십시오.

예를 들면 다음과 같습니다.

ssh remote_host "ls > /tmp/file_on_remote_host.txt"

Windows 호스트에서 로컬로 출력을 저장하려면

ssh remote_host "ls" > .\file_on_local_host.txt

원격으로 stderr을 결합하여 저장하고 stdout을 로컬로 저장하려면,

ssh remote_host "ls 2>&1" > .\combined_output_on_local_host.txt


답변

내가 찾고있는 것은 putty ‘s side-kick, plink.exe 입니다. 터미널 에뮬레이터처럼 작동하는 퍼티와 달리 plink일반 (비 대화식) CLI 프로그램처럼 작동합니다.

그것을 사용 하여이 작업을 수행 cmd.exe하고 원격 명령 출력을 로컬로 저장할 수 있습니다.

\> plink remote_host "ls -l" > log.txt

무엇보다도, 이것은 telnet 뿐만 아니라 ssh 에서도 작동합니다 !

참조 목적으로 만 사용 가능한 옵션은 다음과 같습니다.

PuTTY Link: command-line connection utility
Release 0.59
Usage: plink [options] [user@]host [command]
       ("host" can also be a PuTTY saved session name)
Options:
  -V        print version information and exit
  -pgpfp    print PGP key fingerprints and exit
  -v        show verbose messages
  -load sessname  Load settings from saved session
  -ssh -telnet -rlogin -raw
            force use of a particular protocol
  -P port   connect to specified port
  -l user   connect with specified username
  -batch    disable all interactive prompts
The following options only apply to SSH connections:
  -pw passw login with specified password
  -D [listen-IP:]listen-port
            Dynamic SOCKS-based port forwarding
  -L [listen-IP:]listen-port:host:port
            Forward local port to remote address
  -R [listen-IP:]listen-port:host:port
            Forward remote port to local address
  -X -x     enable / disable X11 forwarding
  -A -a     enable / disable agent forwarding
  -t -T     enable / disable pty allocation
  -1 -2     force use of particular protocol version
  -4 -6     force use of IPv4 or IPv6
  -C        enable compression
  -i key    private key file for authentication
  -noagent  disable use of Pageant
  -agent    enable use of Pageant
  -m file   read remote command(s) from file
  -s        remote command is an SSH subsystem (SSH-2 only)
  -N        don't start a shell/command (SSH-2 only)
  -nc host:port
            open tunnel in place of session (SSH-2 only)


답변

예. putty ssh 클라이언트를 사용하면 스크립트가 생성하는 명령 행 출력이 표시됩니다. 스크립트가 실행 된 후 종료 코드를 얻으려면 다음을 입력하십시오.

echo $?


답변

Windows 시스템에서 로그 파일을 얻는 다른 방법은 다음과 같습니다.-Unix 시스템에 Windows m / c 마운트 마운트 된 디렉토리에 스크립트 로그

Windows 용 tail과 동등한 UNIX를 얻으면 출력이 실시간으로 표시됩니다 .


답변

하나 더 답변 :

모든 리눅스 명령을 cmdlist.txt 파일 에 저장 하고 아래 명령을 사용하십시오.

plink.exe -ssh -pw passwd uname@1.2.3.4 output.txt

passwd == 장치 로그인 암호

장치 로그인을위한 uname == username

1.2.3.4 == 장치 IP 주소

이 명령이 실행되면 모든 cmdlist.txt 명령이 원격 장치에서 실행되고 출력은 output.txt라는 파일에 저장됩니다.

plink.exe 및 cmdlist.txt를 동일한 디렉토리에 유지하고 dos 프롬프트가 동일한 디렉토리를 가리키고 있는지 확인하십시오.


답변