GNU/Linux >> Tutoriels Linux >  >> Linux

Exécuter un script à distance sur Unix, obtenir une sortie localement ?

C'est la valeur par défaut pour SSH. Si vous souhaitez rediriger la sortie à distance, placez le symbole de redirection (généralement ">") entre les guillemets de la commande.

Par exemple :

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

Pour enregistrer la sortie localement sur l'hôte Windows,

ssh remote_host "ls" > .\file_on_local_host.txt

Pour combiner stderr à distance et l'enregistrer et stdout localement,

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

Ce que je cherchais, c'est l'acolyte de putty, plink.exe . Contrairement à putty, qui agit comme un émulateur de terminal, plink agit comme un programme CLI normal (non interactif).

En l'utilisant, je pourrais le faire en cmd.exe et obtenez la sortie de la commande à distance enregistrée localement.

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

Mieux encore, cela fonctionne pour ssh ainsi que telnet !

À titre indicatif, voici les options 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)

Oui, si vous utilisez le client mastic ssh, vous verrez toute sortie de ligne de commande que votre script produira. Pour obtenir le code de sortie après l'exécution du script, tapez :

echo $?

Linux
  1. Comment configurer le tunnel SSH

  2. Ssh - Comment transférer X sur Ssh pour exécuter des applications graphiques à distance ?

  3. Comment exécuter ssh sur plusieurs ports

  4. Comment exécuter un script shell sur une console Unix ou un terminal Mac ?

  5. Comment puis-je exécuter SSH sur un port autre que 22 ?

Comment changer le port SSH sur VPS

Comment changer le port SSH sous Linux

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Comment changer le port SSH sur Centos 7.x ?

Comment changer le port SSH sur Ubuntu ?