(ローカルの)Windowsコマンドシェルから(Tclなど)スクリプトをリモートのUnixマシンで実行する必要があります。また、スクリプトの標準出力/標準エラー出力をWindows CLIに表示する必要があります。終了コードも役に立ちます。
これはssh(PuTTY)を使って可能ですか?それとも他の方法で?
ありがとうございます。
私が探していたのは、PuTTYのサイドキック、plink.exeです。端末エミュレータのように機能するPuTTYとは異なり、plink
は通常の(非対話型の)CLIプログラムのように機能します。
それを使って、私はこれをcmd.exe
で行い、リモートコマンド出力をローカルに保存することができます。
\> plink remote_Host "ls -l" > log.txt
とりわけ、これはsshおよびtelnetに有効です。
参考までに、これらは利用可能なオプションです。
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)
これは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 sshクライアントを使用している場合は、スクリプトが生成するコマンドライン出力が表示されます。スクリプトの実行後に終了コードを取得するには、次のように入力します。
echo $?
あなたのWindowsマシン上でログファイルを取得する他の方法は以下の通りです。 - UNIXシステムにWindows m/cをマウントします(UNIXの種類によっては、これはSambaサーバを使用することで可能です)。マウントされたディレクトリへのスクリプトログイン
UNIXの Windows と同等のtailを使用すると、出力がライブで表示されます。
もう一つの答え:
すべてのLinuxコマンドをcmdlist.txtファイルに保存して、以下のコマンドを使用します。
plink.exe -ssh -pw passwd [email protected] output.txt
passwd==デバイスログイン用のパスワード
uname==デバイスログイン用のユーザー名
1.2.3.4==デバイスのIPアドレス
このコマンドが実行されると、すべてのcmdlist.txtコマンドがリモートデバイス上で実行され、出力はoutput.txtというファイルに保存されます。
必ずplink.exeとcmdlist.txtを同じディレクトリに保存してください。DOSプロンプトを同じディレクトリに向けてください。