GNU/Linux >> Linux Esercitazione >  >> Linux

Eseguire script in remoto su Unix, ottenere l'output in locale?

Questa è l'impostazione predefinita per SSH. Se si desidera reindirizzare l'output in remoto, inserire il simbolo di reindirizzamento (in genere ">") all'interno delle virgolette del comando.

Ad esempio:

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

Per salvare l'output in locale su host Windows,

ssh remote_host "ls" > .\file_on_local_host.txt

Per combinare stderr in remoto e salvarlo e stdout in locale,

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

Quello che stavo cercando è il calcio laterale di putty, plink.exe . A differenza di putty, che agisce come un emulatore di terminale, plink si comporta come un normale programma CLI (non interattivo).

Usandolo, potrei farlo in cmd.exe e ottenere l'output del comando remoto salvato in locale.

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

Soprattutto, funziona per ssh così come telnet !

Solo per riferimento, queste sono le opzioni disponibili:

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)

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

echo $?

Linux
  1. Ssh:come inoltrare X su Ssh per eseguire applicazioni grafiche in remoto?

  2. Ssh:come eseguire uno script immediatamente dopo la connessione tramite Ssh?

  3. Ottieni lo script da eseguire di nuovo se l'input è Sì?

  4. Eseguire lo stesso script su più server tramite Ssh?

  5. Perché non riesco a ottenere l'output di Pgrep direttamente su variabile sullo script Bash?

Come modificare la porta SSH su VPS

Come modificare la porta SSH in Linux

Come eseguire uno script Python in PHP

Come eseguire uno script Bash

Come modificare la porta SSH su Centos 7.x?

Come cambiare la porta SSH su Ubuntu?