Удаленно запустите скрипт на Unix, будьте произведены локально?

Я должен работать (Tcl, или безотносительно) сценарий на удаленной машине Unix, от (локального) командного процессора Windows, и я хочу, чтобы stdout/stderr сценария обнаружился в Windows CLI. Код выхода также был бы полезен.

Это возможное использование ssh (шпаклевка)? Или какими-либо другими средствами?

Спасибо!

45
задан 13.04.2010, 15:05

1 ответ

То, что я искал, является корешем шпаклевки, 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)
20
ответ дан 07.12.2019, 08:37

По умолчанию это 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
44
ответ дан 07.12.2019, 08:37

Другой способ получить лог-файл на машине windows - : - mount Windows m/c на Unix системе (в зависимости от вкуса UNIX, это может быть возможно с помощью Samba сервера) - запустить скрипт из windows с помощью любого удалённого клиента - запишите журнал скрипта в каталог смонтированных систем

Вы сможете увидеть результат в реальном времени, если получите UNIX-эквивалент tail для Windows.

.
1
ответ дан 07.12.2019, 08:37

Да, если вы используете клиент putty ssh, вы увидите любой вывод из командной строки, который будет выдан вашим скриптом. Для получения кода выхода после выполнения скрипта наберите:

echo $?
3
ответ дан 07.12.2019, 08:37

Теги

Похожие вопросы