यूनिक्स पर दूरस्थ रूप से रन स्क्रिप्ट, स्थानीय रूप से आउटपुट प्राप्त करें?


45

मुझे एक (स्थानीय) विंडोज कमांड शेल से, एक दूरस्थ यूनिक्स मशीन पर एक (Tcl, या जो भी) स्क्रिप्ट चलाने की आवश्यकता है, और मैं चाहता हूं कि स्क्रिप्ट का stdout / stderr विंडोज सीएलआई में दिखाई दे। निकास कोड भी उपयोगी होगा।

यह ssh (पोटीन) का उपयोग संभव है? या किसी अन्य माध्यम से?

धन्यवाद!

जवाबों:


44

यह SSH के लिए डिफ़ॉल्ट है। यदि आप आउटपुट को पुनर्निर्देशित करना चाहते हैं, तो कमांड कोट्स के अंदर रीडायरेक्ट सिंबल (आमतौर पर ">") डालें।

उदाहरण के लिए:

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

Windows होस्ट पर स्थानीय रूप से आउटपुट सहेजने के लिए,

ssh remote_host "ls" > .\file_on_local_host.txt

Stderr को दूरस्थ रूप से संयोजित करने के लिए और इसे सहेजने और स्थानीय स्तर पर,

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

क्या putty.exe के साथ ऐसा करना संभव है? यानी डिफ़ॉल्ट के विपरीत "सामान्य" सीएलआई कार्यक्रम के रूप में काम करता है, जो एक टर्मिनल का अनुकरण करना है।
१३:१३

मैंने विंडोज 2003 सिस्टम में पोट्टी की है और कमांड लाइन चला रहा हूं, हां। होस्ट के पास SSH सर्वर का HP संस्करण था, जो उनके सिस्टम एडमिनिस्ट्रेशन टूल्स को सपोर्ट करने के लिए स्थापित किया गया था। यदि आपके पास केवल SSH क्लाइंट है तो सब कुछ रिमोट सिस्टम पर चल रहा है।
किमी।

1
यह एक गैर-विंडोज स्थानीय मशीन के लिए भी काम करता है।
शिरी

पीछे के मार्ग को छोड़कर, हाँ।
17

20

क्या मैं देख रहा था पोटीन की साइड-किक, plink.exe है । पोटीन के विपरीत, जो एक टर्मिनल एमुलेटर की plinkतरह काम करता है, एक सामान्य (गैर-इंटरैक्टिव) सीएलआई कार्यक्रम की तरह कार्य करता है।

इसका उपयोग करते हुए, मैं ऐसा कर सकता था cmd.exeऔर दूरस्थ कमांड आउटपुट को स्थानीय रूप से सहेजा जा सकता था।

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

सबसे अच्छा, यह ssh के साथ-साथ टेलनेट के लिए भी काम करता है !

केवल संदर्भ उद्देश्यों के लिए, ये उपलब्ध विकल्प हैं:

PuTTY Link: command-line connection utility
Release 0.59
Usage: plink [options] [user@]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)

3

हाँ यदि आप पोटीन ssh क्लाइंट का उपयोग करते हैं तो आप देखेंगे कि कोई भी कमांड लाइन आउटपुट आपकी स्क्रिप्ट का उत्पादन करेगा। स्क्रिप्ट चलाने के बाद निकास कोड प्राप्त करने के लिए टाइप करें:

echo $?

1

अपनी विंडोज़ मशीन पर लॉग फ़ाइल प्राप्त करने का अन्य तरीका है: - यूनिक्स सिस्टम पर विंडोज m / c माउंट करें (UNIX के स्वाद के आधार पर, यह सांबा सर्वर का उपयोग करके संभव हो सकता है) - किसी भी दूरस्थ क्लाइंट का उपयोग करके विंडोज़ से स्क्रिप्ट चलाएं - स्क्रिप्ट लिपिबद्ध है

यदि आप Windows के लिए UNIX को पूंछ के बराबर प्राप्त करते हैं, तो आप आउटपुट लाइव देख सकते हैं ।


0

एक और जवाब:

Cmdlist.txt फाइल में अपने सभी linux कमांड को सेव करें और नीचे दिए कमांड का उपयोग करें।

plink.exe -ssh -pw passwd uname@1.2.3.4 output.txt

डिवाइस लॉगिन के लिए पासवार्ड == पासवर्ड

डिवाइस लॉगिन के लिए uname == उपयोगकर्ता नाम

1.2.3.4 == डिवाइस आईपी पता

इस कमांड के निष्पादित होने के बाद, आपके सभी cmdlist.txt कमांड को रिमोट डिवाइस पर निष्पादित किया जाएगा और आउटपुट आउटपुट में फाइल में सेव किया जाता है।

उसी निर्देशिका में plink.exe और cmdlist.txt रखना सुनिश्चित करें और आप उसी निर्देशिका में अपने डॉस प्रॉम्प्ट को इंगित कर रहे हैं।

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