Удаленный запуск сценария в Unix, получить выход локально?

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

Возможно ли использование ssh (putty)? Или любыми другими способами?

Спасибо!

41 голос | спросил Cristi Diaconescu 13 PMpTue, 13 Apr 2010 16:05:35 +040005Tuesday 2010, 16:05:35

5 ответов


20

То, что я искал, - это ударный удар, 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] [[email protected]]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)
ответил Cristi Diaconescu 13 PMpTue, 13 Apr 2010 20:21:40 +040021Tuesday 2010, 20:21:40
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
ответил kmarsh 13 PMpTue, 13 Apr 2010 16:34:21 +040034Tuesday 2010, 16:34:21
3

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

echo $?
ответил Mark 13 PMpTue, 13 Apr 2010 16:36:57 +040036Tuesday 2010, 16:36:57
1

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

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

ответил James 13 PMpTue, 13 Apr 2010 17:33:48 +040033Tuesday 2010, 17:33:48
0

Еще один ответ:

Сохраните все ваши 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 в тот же каталог.

ответил manjesh23 7 +03002016-10-07T06:11:09+03:00312016bEurope/MoscowFri, 07 Oct 2016 06:11:09 +0300 2016, 06:11:09

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132