GNU/Linux >> Tutoriales Linux >  >> Linux

¿Ejecutar secuencias de comandos de forma remota en Unix, obtener resultados localmente?

Este es el valor predeterminado para SSH. Si desea redirigir la salida de forma remota, coloque el símbolo de redirección (normalmente ">") dentro de las comillas del comando.

Por ejemplo:

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

Para guardar la salida localmente en el host de Windows,

ssh remote_host "ls" > .\file_on_local_host.txt

Para combinar stderr de forma remota y guardarlo y stdout localmente,

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

Lo que estaba buscando es el complemento de Putty, plink.exe . A diferencia de Putty, que actúa como un emulador de terminal, plink actúa como un programa CLI normal (no interactivo).

Usándolo, podría hacer esto en cmd.exe y obtenga la salida del comando remoto guardada localmente.

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

Lo mejor de todo, esto funciona para ssh así como telnet !

A modo de referencia, estas son las opciones disponibles:

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í, si usa el cliente ssh de PuTTY, verá cualquier salida de línea de comando que produzca su secuencia de comandos. Para obtener el código de salida después de que se ejecute el script, escriba:

echo $?

Linux
  1. Cómo cambiar el puerto SSH en Linux

  2. Cómo configurar túneles SSH

  3. Ssh:¿cómo ejecutar un script inmediatamente después de conectarse a través de Ssh?

  4. ¿Redirigiendo una salida de un subshell a un proceso?

  5. Cómo ejecutar ssh en varios puertos

Cómo cambiar el puerto SSH en VPS

Cómo ejecutar un script de Python en PHP

Cómo ejecutar un script Bash

¿Cómo cambiar el puerto SSH en Centos 7.x?

¿Cómo cambiar el puerto SSH en Ubuntu?

Túnel HTTPS SSH