GNU/Linux >> Znalost Linux >  >> Linux

Vzdáleně spustit skript na Unixu, získat výstup lokálně?

Toto je výchozí nastavení pro SSH. Pokud chcete přesměrovat výstup vzdáleně, vložte symbol přesměrování (obvykle ">") do uvozovek příkazu.

Například:

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

Pro uložení výstupu lokálně na hostiteli Windows

ssh remote_host "ls" > .\file_on_local_host.txt

Chcete-li zkombinovat stderr na dálku a uložit jej a stdout lokálně,

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

To, co jsem hledal, je putty's side-kick, plink.exe . Na rozdíl od putty, který funguje jako emulátor terminálu, plink funguje jako normální (neinteraktivní) program CLI.

S jeho pomocí bych to mohl udělat v cmd.exe a získejte lokálně uložený výstup vzdáleného příkazu.

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

Nejlepší ze všeho je, že to funguje pro ssh stejně jako telnet !

Pouze pro referenční účely jsou dostupné tyto možnosti:

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)

Ano, pokud používáte klienta putty ssh, uvidíte jakýkoli výstup příkazového řádku, který váš skript vytvoří. Chcete-li získat výstupní kód po spuštění skriptu, zadejte:

echo $?

Linux
  1. Paralelní spuštění skriptu shellu

  2. Jak mohu spustit SSH na jiném portu než 22?

  3. HTTPS SSH tunel

  1. Jak změnit port SSH v Linuxu

  2. Jak nastavit SSH tunelování

  3. Ssh – Jak předat X přes Ssh, aby bylo možné vzdáleně spouštět grafické aplikace?

  1. Ssh – Jak spustit skript ihned po připojení přes Ssh?

  2. Přesměrování výstupu subshell do procesu?

  3. Znovu spustit skript, pokud je vstup Ano?