कमांड प्रॉम्प्ट में स्वचालित लॉगिन का उपयोग करके PuTTY में कमांड फाइल कैसे चलाएं?


20

मैं एक दूरस्थ सर्वर पर स्वचालित रूप से लॉगिन करने के लिए निम्नलिखित का उपयोग कर रहा हूं और फिर commands.txtइस तरह से सूचीबद्ध कमांड चला सकता हूं :

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

commands.txt निम्नलिखित शामिल हैं:

ps -elf|grep 'sometext'

हालाँकि, जब मैं ऐसा करने की कोशिश करता हूं तो PuTTY के लिए एक नई विंडो दिखाई देती है, लेकिन यह लॉगिन के तुरंत बाद बंद हो जाती है और बाहर निकल जाती है। परिणामस्वरूप, मैं कमांड का आउटपुट नहीं देख सकता।

मुझे समझ नहीं आ रहा है कि यहाँ क्या हो रहा है। क्या मैं अपने दृष्टिकोण में गलत हूं या मुझे बाहर निकलने से पहले कुछ समय के लिए पुट्टी विंडो पोज बनाने के लिए और कदम उठाने की जरूरत है?


2
इसके बजाय Plink.exe का उपयोग करने पर विचार करें (आम तौर पर पोटीन के साथ बंडल, याद रखें कि पेट में शामिल करें)। मैंने 2 घंटे बिताए हैं कि कैसे पुटी के लिए कमांड लाइन में rsa कुंजी निर्दिष्ट करें क्योंकि यह हार्ड कोड पासवर्ड के लिए असुरक्षित है। मैंने पलक समाधान की अनदेखी कर दी क्योंकि, मुझे लगा कि कॉल को पोटीन से शुरू करना होगा। पलक का उल्लेख करते हुए नीचे दिए गए उत्तर की जाँच करें। जैसे `Plink.exe -ssh मेजबान -l उपयोगकर्ता -ic: \ Users \ Myname \ .ssh \ myGeneratedPuttyKey.ppk
सोरेन Havelund Welling

जवाबों:


11

आप का उपयोग करना चाहिए plink.exe(पुट्टी बैक एंड्स के लिए एक कमांड-लाइन इंटरफ़ेस) और नहींputty.exe

आपको वह पुट्टी डाउनलोड पेज से मिलती है

बिना पलक:

ऐसा लगता है कि एकमात्र तरीका -log <logfile>विकल्पों का उपयोग करना है और फिर इसकी सामग्री को प्रिंट करना और इसे हटाना है।


मैं पलक या अन्य कमांड लाइन इंटरफेस का उपयोग नहीं कर सकता। क्या ऐसा करने का कोई और तरीका है

2
@supportpb "मैं पलक का उपयोग नहीं कर सकता" - क्यों? यदि आप कोशिश करते हैं तो क्या होता है?
gertvdijk

1
@gertvdijk क्या होता है कि वह कॉर्पोरेट मशीनों पर गैर-अनुमोदित सॉफ़्टवेयर का उपयोग करने के लिए निकाल दिया जाता है ...
Torben Gundtofte-Bruun

असमर्थित विकल्प:-log
एलन बोवे

10

पहले आपको एक अलग फाइल बनाने की जरूरत होगी जिसमें उन सभी कमांड होंगे जिन्हें आप निष्पादित करना चाहते हैं।

उदाहरण: मैं PuTTY का उपयोग करके अपने डोमेन पर Drupal को डाउनलोड और इंस्टॉल करना चाहूंगा । ऐसा करने के लिए आपको:

सबसे पहले एक .txt फाइल बनाएं। उस फ़ाइल के भीतर कमांड हैं। मेरी हैं: " ड्रश डीएल ड्रुपल " अगली पंक्ति, " ड्रश सी --account-name = [अकाउंट नेम] --account-pass = [अकाउंट पास] --db-url = mysql: // [यूजर:] [पास ] @ लोकलहोस्ट / [डेटाबेस का नाम] --y "

उस फ़ाइल को सहेजने के बाद, आप अब BAT फ़ाइल बनाने जा रहे हैं या इसे CMD प्रॉम्प्ट में टाइप करें:

  • ssh.cmd
  • @ पर आप के लिए [क्या हो रहा है देखने के लिए]
  • [अपने PuTTY स्थापना पर नेविगेट करें। मेरा है:] cd C: \ Program Files \ Putty
  • शुरू 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]

-M विकल्प मेरे लिए काम नहीं करता है। यह यह कहते हुए एक त्रुटि दे रहा है कि कमांड फ़ाइल को नहीं खोल सकता है <मेरे पाठ फ़ाइल में पथ>
user590849

@ user590849 क्या आपकी कमांड टेक्स्ट फाइल का रास्ता कोई सफेद स्थान है? क्योंकि मैं सिर्फ
काले मेंढक

2

आपका दृष्टिकोण अच्छा लगता है, हालांकि, व्यवहार में एक डिफ़ॉल्ट सेटिंग है जो आपको यहां परेशान कर रही है और शायद आपको विश्वास है कि कुछ भी नहीं हो रहा है।

हालाँकि, जब मैं ऐसा करने की कोशिश करता हूं तो PuTTY के लिए एक नई विंडो दिखाई देती है, लेकिन लॉगिन के तुरंत बाद बंद हो जाती है और बाहर निकल जाती है

कमांड निष्पादित होने के तुरंत बाद आपका सत्र समाप्त हो जाता है, और PuTTY डिफ़ॉल्ट रूप से विंडो को बंद कर देता है। अपने सत्र के लिए इस व्यवहार को बदलने के तरीके पर PuTTY का प्रलेखन देखें ।

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.

दिलचस्प है, लेकिन यह मैनुअल सत्रों को भी प्रभावित करेगा ...
अविराम सहगल

1
@AviramSegal यह एक सत्र सेटिंग है। बस सत्र कॉन्फ़िगरेशन को डुप्लिकेट करें, कहें session-nocloseऔर स्क्रिप्टिंग में उस एक का उपयोग करें।
gertvdijk

1
ओह सत्र की स्थापना, फिर हाँ जो काम करेगा
अविराम सहगल

2

यदि आप यूनिक्स मशीन को खोलने के लिए बैच फ़ाइल बनाना चाहते हैं तो कोई समस्या नहीं होगी। नीचे उदाहरण है:

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

PuTTY पथ दोहरे कोट्स में होना चाहिए, जैसे "C: \ Program Files \ putty \ putty.ext"

machinename = डबल कोट के बिना machinename

पासवर्ड = उद्धरण के साथ


0

अविराम के जवाब के अलावा:

नीचे उदाहरण है कि आप कमांड प्रॉम्प्ट से PuTTY कमांड कैसे चलाएंगे:

  • सबसे पहले, उदाहरण के लिए C:\Program Files\PuTTY, PuTTY इंस्टॉलेशन डायरेक्टरी पर जाएं और फिर नीचे दिए गए कमांड को निष्पादित करें:

    plink.exe -ssh server_ip -पी port_no -l user_name -pw पासवर्ड

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.