Eseguire lo script in remoto su Unix, ottenere output localmente?


45

Devo eseguire uno script (Tcl o altro) su una macchina Unix remota, da una shell dei comandi (locale) di Windows, e voglio che lo stdout / stderr dello script venga visualizzato nella CLI di Windows. Anche il codice di uscita sarebbe utile.

È possibile usare ssh (putty)? O con qualsiasi altro mezzo?

Grazie!

Risposte:


44

Questo è il valore predefinito per SSH. Se si desidera reindirizzare l'output in remoto, inserire il simbolo di reindirizzamento (in genere ">") tra virgolette.

Per esempio:

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

Per salvare l'output localmente sull'host Windows,

ssh remote_host "ls" > .\file_on_local_host.txt

Per combinare stderr in remoto e salvarlo e stdout localmente,

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

È possibile farlo con putty.exe? Vale a dire che funziona come un normale programma CLI in contrapposizione al default, che è quello di emulare un terminale.
Cristi Diaconescu,

Ho inserito un sistema Windows 2003 ed eseguito la riga di comando, sì. L'host aveva installato la versione HP del server SSH per supportare i propri strumenti di amministrazione del sistema. Se hai solo un client SSH di tutto è in esecuzione sul sistema remoto.
kmarsh

1
Questo funziona anche per un computer locale non Windows.
Shiri,

Ad eccezione del percorso della barra rovesciata, sì.
km

20

Quello che stavo cercando è kick-side di putty, plink.exe . A differenza del mastice, che si comporta come un emulatore di terminale, si plinkcomporta come un normale programma CLI (non interattivo).

Usandolo, ho potuto farlo cmd.exee ottenere l'output del comando remoto salvato localmente.

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

Soprattutto, questo funziona sia per ssh che per telnet !

Solo a scopo di riferimento, queste sono le opzioni disponibili:

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)

3

Sì, se usi il client putty ssh vedrai qualsiasi output della riga di comando che verrà prodotto dallo script. Per ottenere il codice di uscita dopo l'esecuzione dello script, digitare:

echo $?

1

Un altro modo per ottenere il file di registro sul tuo computer Windows è: - montare Windows m / c sul sistema Unix (a seconda del tipo di UNIX, questo potrebbe essere possibile usando il server Samba) - eseguire lo script da Windows usando qualsiasi client remoto - avere il log degli script nella directory montata

Puoi vedere l'output dal vivo se ottieni l'equivalente UNIX di tail per Windows .


0

Un'altra risposta:

Salvare tutti i comandi linux nel file cmdlist.txt e utilizzare il comando seguente.

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

passwd == password per l'accesso al dispositivo

uname == nome utente per l'accesso al dispositivo

1.2.3.4 == indirizzo IP del dispositivo

Dopo l'esecuzione di questo comando, tutti i comandi cmdlist.txt verranno eseguiti sul dispositivo remoto e l'output verrà salvato nel file denominato output.txt

Assicurati di mantenere plink.exe e cmdlist.txt nella stessa directory e stai indirizzando il tuo prompt dos nella stessa directory.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.