वैसे भी SSH के माध्यम से `कैट` टू रिमोट` टेल -फ` स्ट्रीम है?


5

मैं tail -fएक में उत्पन्न दो निरंतर पाठ धाराओं को संयोजित करना और उन्हें एक ही स्क्रीन में देखना चाहता था । क्या यह संभव है? दोनों पाठ धाराएँ लाइन-ओरिएंटेड हैं (जैसे लॉग्स), अगर यह मदद करता है।

अद्यतन: इसे स्पष्ट करने के लिए, दो tail -fधाराएँ स्थानीय फ़ाइलों पर नहीं बल्कि दो दूरस्थ SSH सत्रों से होती हैं, जैसेssh remote-host tail -f file.log

जवाबों:


8

tail उदाहरण के लिए, कई फ़ाइलों का समर्थन करता है:

tail -q -f file1 file2

उत्तर के लिए बहुत बहुत धन्यवाद! मैं मूल प्रश्न में बहुत स्पष्ट नहीं था। मैंने SSH पर धाराओं के बारे में और अधिक विशिष्ट बनाने के लिए वर्णन को अद्यतन किया।
Riobard

4

यदि आप लॉग लाइनों को देखना चाहते हैं, और बाद में डेटा की आवश्यकता नहीं है, तो क्यों नहीं:

ssh host1 tail -f file & ssh host2 tail -f file &

टिप्पणी में आप जो कहते हैं उसे पूरा करने के लिए, यदि आपके पास peeकमांड (अधिक जानकारी) है:

pee 'ssh host1 tail -f file' 'ssh host2 tail -f file' < /dev/null

धन्यवाद! मैं उम्मीद कर रहा था कि एक स्थानीय रूप से दो दूरस्थ धाराओं को संयोजित करने का एक उपकरण है, इसलिए उन्हें देखना आसान है (tmp फ़ाइलों को बनाए बिना), लेकिन इससे भी महत्वपूर्ण बात यह है कि मैं उन्हें एक और डाउनस्ट्रीम प्रक्रिया में एक साथ पाइप कर सकता हूं।
रियोबार्ड

2

दिमाग में आने वाला त्वरित और गंदा तरीका प्रत्येक दूरस्थ मशीन पर प्रत्येक लॉग फ़ाइल को पूंछना और उन्हें स्थानीय स्तर पर अस्थायी फ़ाइलों पर पुनर्निर्देशित करना है। फिर, जिस विधि से गोलिमार का सुझाव दिया गया है, उसके साथ दोनों लॉग को पूंछें

  1. ssh user @ host1 -C tail -f / path / to / log >> /tmp/log1.tmp
  2. ssh user @ host2 -C tail -f / path / to / log >> /tmp/log2.tmp
  3. tail -q -f /tmp/log1.tmp /tmp/log2.tmp

यह सुंदर नहीं है, इसके लिए स्थानीय डेटा रखने की आवश्यकता होती है, और पहले 2 कमांडों को बैकग्राउंड'ड ( screenया इसी तरह या रन ) में करने की आवश्यकता होती है, लेकिन इसे काम करना चाहिए!


धन्यवाद! यह काम। मैं उम्मीद कर रहा था कि कुछ दुर्लभ कमांड / विकल्प हो सकते हैं जो मैं tmp फ़ाइलों को बनाने के बिना एक पंक्ति में कर सकता था।
Riobard

यदि फ़ाइलें उसी सर्वर में हैं जो आप कर सकते हैंssh user@host -C tail -q -f /path/to/log1 /path/to/log2
मिगुएल

1

आप सहयोगी लॉग में चेकआउट कर सकते हैं।

एक जावा उपकरण जो मैंने बनाया, SSH का उपयोग करके स्थानीय और दूर की लॉग फ़ाइलों को पढ़ने में सक्षम। यह उपयोग करने के लिए काफी सरल है।

कुछ और स्पष्टीकरण: https://github.com/pschweitz/insidelog/wiki

आपके जावा रनटाइम के भीतर मूल जार रिलीज़ निष्पादन योग्य, आपके ऑपरेटिंग सिस्टम के अनुरूप संस्करण डाउनलोड करें (java 8_40 या उच्चतर की आवश्यकता है):

https://github.com/pschweitz/insidelog/releases

आप एक पूर्ण प्रलेखन (जीथब के पेज के साथ और साथ ही) पा सकते हैं

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