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.