GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Skript unter Unix remote ausführen, Ausgabe lokal erhalten?

Dies ist die Standardeinstellung für SSH. Wenn Sie die Ausgabe aus der Ferne umleiten möchten, setzen Sie das Umleitungssymbol (normalerweise „>“) in die Anführungszeichen des Befehls.

Zum Beispiel:

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

Zum lokalen Speichern der Ausgabe auf dem Windows-Host,

ssh remote_host "ls" > .\file_on_local_host.txt

Um stderr remote zu kombinieren und zu speichern und stdout lokal auszuführen,

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

Was ich gesucht habe, ist Puttys Side-Kick, plink.exe . Im Gegensatz zu Putty, das wie ein Terminal-Emulator funktioniert, plink verhält sich wie ein normales (nicht interaktives) CLI-Programm.

Damit könnte ich das in cmd.exe machen und erhalten Sie die lokal gespeicherte Ausgabe des Remote-Befehls.

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

Das Beste daran ist, dass dies für ssh funktioniert sowie Telnet !

Nur zu Referenzzwecken sind dies die verfügbaren Optionen:

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)

Ja, wenn Sie den Putty-SSH-Client verwenden, sehen Sie jede Befehlszeilenausgabe, die Ihr Skript erzeugt. Um den Exit-Code zu erhalten, nachdem das Skript ausgeführt wurde, geben Sie Folgendes ein:

echo $?

Linux
  1. Ssh – Wie leitet man X über SSH weiter, um Grafikanwendungen remote auszuführen?

  2. Skript erneut ausführen lassen, wenn Eingabe ja ist?

  3. Dasselbe Skript auf mehreren Servern über SSH ausführen?

  4. Warum kann ich die Pgrep-Ausgabe nicht direkt auf eine Variable im Bash-Skript bringen?

  5. Shell-Skript parallel ausführen

So ändern Sie den SSH-Port auf VPS

So führen Sie ein Python-Skript in PHP aus

So richten Sie SSH-Tunneling ein

So führen Sie ein Bash-Skript aus

Wie ändere ich den SSH-Port auf Centos 7.x?

Wie ändere ich den SSH-Port auf Ubuntu?