Я должен работать (Tcl, или безотносительно) сценарий на удаленной машине Unix, от (локального) командного процессора Windows, и я хочу, чтобы stdout/stderr сценария обнаружился в Windows CLI. Код выхода также был бы полезен.
Это возможное использование ssh (шпаклевка)? Или какими-либо другими средствами?
Спасибо!
То, что я искал, является корешем шпаклевки, plink.exe. В отличие от шпаклевки, которая действует как эмулятор терминала, 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
Другой способ получить лог-файл на машине windows - : - mount Windows m/c на Unix системе (в зависимости от вкуса UNIX, это может быть возможно с помощью Samba сервера) - запустить скрипт из windows с помощью любого удалённого клиента - запишите журнал скрипта в каталог смонтированных систем
Вы сможете увидеть результат в реальном времени, если получите UNIX-эквивалент tail для Windows.
.Да, если вы используете клиент putty ssh, вы увидите любой вывод из командной строки, который будет выдан вашим скриптом. Для получения кода выхода после выполнения скрипта наберите:
echo $?