Bagaimana menjalankan file perintah di Putty menggunakan login otomatis di command prompt?

19

Saya menggunakan yang berikut ini untuk login secara otomatis ke server jauh dan kemudian menjalankan perintah yang tercantum dalam commands.txt, seperti ini:

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

commands.txt berisi yang berikut ini:

ps -elf|grep 'sometext'

Namun, ketika saya mencoba melakukannya muncul jendela baru untuk Putty, tetapi menutup dan keluar langsung setelah login. Akibatnya, saya tidak bisa melihat output dari perintah.

Saya tidak mengerti apa yang terjadi di sini. Apakah saya salah dalam pendekatan saya atau apakah saya perlu mengambil lebih banyak langkah untuk membuat jendela Putty berhenti untuk beberapa waktu sebelum keluar?

Peter Mortensen
sumber
2
Pertimbangkan untuk menggunakan Plink.exe sebagai gantinya (biasanya dibundel dengan Putty, ingatlah untuk memasukkannya dalam PATH). Saya menghabiskan 2 jam di Google untuk menentukan kunci rsa di baris perintah untuk Putty karena tidak aman untuk kata sandi kode keras. Saya mengabaikan solusi Plink karena, saya pikir panggilan itu harus dimulai dengan dempul. Periksa jawaban di bawah ini yang menyebutkan Plink. mis. `Plink.exe -ssh host -l user -ic: \ Users \ myName \ .ssh \ myGeneratedPuttyKey.ppk
Soren Havelund Welling

Jawaban:

11

Anda harus menggunakan plink.exe(antarmuka baris perintah ke ujung belakang Putty) dan tidakputty.exe

Anda mendapatkannya dari halaman unduhan Putty

Tanpa denting:

Tampaknya satu-satunya cara adalah menggunakan -log <logfile>opsi dan kemudian mencetak kontennya dan menghapusnya.

Aviram Segal
sumber
Saya tidak bisa menggunakan plink atau antarmuka baris perintah lainnya. Apakah ada cara lain untuk melakukan ini
2
@supportpb "Saya tidak bisa menggunakan plink" - mengapa? apa yang terjadi jika kamu mencoba?
gertvdijk
1
@gertvdijk yang terjadi adalah dia dipecat karena menggunakan perangkat lunak yang tidak disetujui pada mesin perusahaan ...
Torben Gundtofte-Bruun
opsi yang tidak didukung:-log
Allan Bowe
9

Pertama, Anda perlu membuat file terpisah yang berisi semua perintah yang ingin Anda jalankan.

Contoh: Saya ingin mengunduh dan menginstal Drupal di domain saya menggunakan Putty. Untuk melakukan itu Anda harus:

Pertama buat file .txt. Di dalam file itu ada perintah. Milik saya adalah: " drush dl drupal " baris berikutnya, " drush si --account-name = [nama akun] --account-pass = [pass akun] --db-url = mysql: // [pengguna]: [pass ] @ localhost / [nama database] --y "

Setelah menyimpan file itu, Anda sekarang akan membuat file BAT atau mengetiknya di prompt CMD:

  • ssh.cmd
  • @echo on [untukmu melihat apa yang terjadi]
  • [Arahkan ke instalasi Putty Anda. Milik saya adalah:] cd C: \ Program Files \ Putty
  • Mulailah 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]
Jero Dungog
sumber
Opsi -m tidak berfungsi untuk saya. itu mengeluarkan kesalahan yang mengatakan tidak bisa membuka file perintah <path ke file teks saya>
user590849
@ user590849 apakah path ke file teks perintah Anda memiliki spasi putih? Karena saya baru saja
Black Frog
2

Pendekatan Anda tampaknya bagus, namun, ada satu pengaturan standar dalam perilaku yang menyebabkan Anda bermasalah di sini dan mungkin membuat Anda yakin tidak ada yang terjadi.

Namun, ketika saya mencoba melakukannya muncul jendela baru untuk Putty, tetapi menutup dan keluar langsung setelah login

Sesi Anda berakhir segera setelah perintah dieksekusi, dan Putty menutup jendela secara default. Lihat dokumentasi Putty tentang cara mengubah perilaku ini untuk sesi Anda.

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.
gertvdijk
sumber
Menarik, tetapi itu akan mempengaruhi sesi manual juga ...
Aviram Segal
1
@ AviramSegal Ini adalah pengaturan sesi. Cukup duplikat konfigurasi sesi, ucapkan session-noclosedan gunakan yang di scripting.
gertvdijk
1
oh pengaturan sesi, maka ya itu akan berhasil
Aviram Segal
1

Tidak akan ada masalah jika Anda hanya ingin membuat file batch untuk membuka mesin Unix. Di bawah ini adalah contohnya:

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

Jalur Putty harus dalam tanda kutip ganda, seperti "C: \ Program Files \ putty \ putty.ext"

machinename = machinename tanpa tanda kutip ganda

kata sandi = dengan kutipan

pengguna443234
sumber
0

Selain jawaban Aviram:

Di bawah ini adalah contoh bagaimana Anda akan menjalankan perintah Putty dari command prompt:

  • Pertama pergi ke direktori instalasi Putty, misalnya C:\Program Files\PuTTY, dan kemudian jalankan perintah di bawah ini:

    plink.exe -ssh server_ip -P port_no l user_name -pw sandi

Vishrant
sumber