Come eseguire un file di comando in PuTTY utilizzando l'accesso automatico in un prompt dei comandi?


19

Sto utilizzando quanto segue per accedere automaticamente a un server remoto e quindi eseguire i comandi elencati in a commands.txt, in questo modo:

C:\path\to\putty.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt contiene quanto segue:

ps -elf|grep 'sometext'

Tuttavia, quando provo a farlo appare una nuova finestra per PuTTY, ma si chiude ed esce immediatamente dopo il login. Di conseguenza, non riesco a vedere l'output dei comandi.

Non capisco cosa sta succedendo qui. Sbaglio nel mio approccio o devo fare più passi per mettere in pausa la finestra PuTTY per un po 'di tempo prima di uscire?


2
Si consiglia di utilizzare invece Plink.exe (in genere in bundle con Putty, ricordarsi di includere in PATH). Ho passato 2 ore a cercare su Google come specificare la chiave rsa in una riga di comando per PuTTY perché non è sicuro per le password del codice. Ho trascurato la soluzione Plink perché, pensavo che la chiamata dovesse iniziare con stucco. Controlla la risposta sotto menzionando Plink. ad es. `Plink.exe -ssh host -l user -ic: \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Risposte:


11

È necessario utilizzare plink.exe(un'interfaccia della riga di comando per i back-end PuTTY) e nonputty.exe

Lo ottieni dalla pagina di download di PuTTY

Senza plink:

Sembra che l'unico modo sia usare le -log <logfile>opzioni e quindi stamparne il contenuto ed eliminarlo.


Non riesco a usare plink o altre interfacce da riga di comando. C'è un altro modo per farlo

2
@supportpb "Non posso usare plink" - perché? cosa succede se ci provi?
gertvdijk,

1
@gertvdijk quello che succede è che viene licenziato per l'utilizzo di software non approvato su macchine aziendali ...
Torben Gundtofte-Bruun

opzione non supportata:-log
Allan Bowe,

9

Innanzitutto è necessario creare un file separato contenente tutti i comandi che si desidera eseguire.

Esempio: vorrei scaricare e installare Drupal sul mio dominio usando PuTTY. Per farlo devi:

Innanzitutto crea un file .txt. All'interno di quel file ci sono i comandi. I miei sono: " drush dl drupal " riga successiva, " drush si --account-name = [nome account] --account-pass = [pass account] --db-url = mysql: // [user]: [pass ] @ localhost / [nome database] --y "

Dopo aver salvato quel file, ora creerai un file BAT o lo digiterai nel prompt CMD:

  • ssh.cmd
  • @echo on [per vedere cosa sta succedendo]
  • [Vai all'installazione di PuTTY. Il mio è:] cd C: \ Programmi \ Putty
  • Inizio putty.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]

L'opzione -m non funziona per me. sta dando un errore dicendo che non è possibile aprire il file di comando <percorso del mio file di testo>
user590849

@ user590849 il percorso del file di testo del comando ha spazi bianchi? Perché ho appena
Black Frog l'

2

Il tuo approccio sembra buono, tuttavia, c'è un'impostazione predefinita nel comportamento che ti causa problemi qui e probabilmente ti fa credere che non stia succedendo nulla.

Tuttavia, quando provo a farlo appare una nuova finestra per PuTTY, ma si chiude ed esce immediatamente dopo il login

La sessione termina immediatamente dopo l'esecuzione del comando e PuTTY chiude la finestra per impostazione predefinita. Consulta la documentazione di PuTTY su come modificare questo comportamento per la tua sessione.

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.

Interessante, ma ciò influirà anche sulle sessioni manuali ...
Aviram Segal,

1
@AviramSegal È un'impostazione di sessione. Basta duplicare la configurazione della sessione, dire session-noclosee usare quella negli script.
gertvdijk,

1
oh impostazione della sessione, quindi sì che funzionerà
Aviram Segal

1

Non ci sarebbero problemi se si desidera semplicemente creare il file batch per aprire la macchina Unix. Di seguito è riportato l'esempio:

"PuTTY path" -ssh machinename -l username -pw password

Il percorso PuTTY deve essere racchiuso tra virgolette, come "C: \ Programmi \ putty \ putty.ext"

machinename = machinename senza virgolette doppie

password = con virgolette


0

Oltre alla risposta di Aviram:

Di seguito è riportato l'esempio di come eseguirai i comandi PuTTY dal prompt dei comandi:

  • Prima vai alla directory di installazione di PuTTY, ad esempio C:\Program Files\PuTTY, quindi esegui il comando seguente:

    plink.exe -ssh ip_server -P port_no -l nome_utente -pw la password

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.