একাধিক রিমোট ফাইলগুলি টেইল করুন


41

রিমোট টেল 2 ফাইলের কোনও উপায় আছে?

লোড ব্যালান্সারের পিছনে আমার দুটি সার্ভার রয়েছে (ক এবং খ) এবং আমি যদি সম্ভব হয় তবে এটির মতো কিছু করতে চাই:

tail -f admin@serverA:~/mylogs/log admin@serverB:~/mylogs/log

ধন্যবাদ!


আপনি উত্তরটি মুছলেন কেন?
পাবলো ফার্নান্দেজ

কারণ বেশিরভাগ এটা কাজ করে নি :-)
মাদুর

@ মাত ওহ, আমি প্রায় চেষ্টা করে যাচ্ছিলাম :)। যাইহোক, ধন্যবাদ!
পাবলো ফার্নান্দেজ

এটি কার্যকর হয় না কারণ <(foo) কনস্ট্রাক্টটি মূল কমান্ড লাইনের একটি পাইপ দ্বারা প্রতিস্থাপনের আগে অভ্যন্তরীণ কমান্ডটি শেষ হওয়ার জন্য অপেক্ষা করবে যা থেকে সফ্টওয়্যারটি পড়তে সক্ষম হবে, এবং লেজ কখনও শেষ করবে না :-)
মাদুর

উত্তর:


31

এটি আমার পক্ষে কাজ করেছে:

ssh -n user@hostname1 'tail -f /mylogs/log' &
ssh -n user@hostname2 'tail -f /mylogs/log' &

হ্যাঁ, আমি এটি কীভাবে করি, সাধারণত আমার একাধিক জিনোম-টার্মিনাল খোলা থাকে না, প্রত্যেকটির ভিতরে একটি সেশন থাকে
টম ও'কনোর

1
একাধিক স্বতন্ত্র ssh সেশন না খোলার উপায় কি এখানে আছে?
tigs

8
তবে এটি আপনাকে সাথে লেজ বন্ধ করতে দেয় না Ctrl+C
sorin

প্রক্রিয়াগুলি সমাপ্ত করতে @ সোরিন, কেবল প্রত্যেকে প্রত্যেকেই অগ্রণীতে ফিরিয়ে আনুন fg; তাহলে আপনি ctrl+cএটি করতে পারেন। আপনার চলমান প্রতিটি লেজের জন্য আপনি একবার এটি করতে চাইবেন। অথবা আপনি pkill -f sshএকই সাথে তাদের সকলকে লক্ষ্য করতে পারেন।
ডেল অ্যান্ডারসন

34

আমার পছন্দের বিকল্পটি মাল্টিটাইলের সাথে যেতে হবে go আমি কিছু চালাতে চাই:

multitail -l 'ssh user@host1 "tail -f /some/log/file"' -l 'ssh user@host2 "tail -f /some/log/file"'

1
ধন্যবাদ! আমি ssh / দূরবর্তী হোস্টগুলিতে মাল্টিটেল কীভাবে ব্যবহার করতে পারি তার একটি উদাহরণ খুঁজছিলাম!
নোহ সুসমান

মাল্টিটাইল একটি আরও শক্তিশালী সমাধান।
obfk

আমাদের ওয়েবসাইটে 10 টিরও বেশি ওয়েব নোড রয়েছে এবং Operation not permitted2 3 টি ওয়েব নোডের সাহায্যে ত্রুটিটি সহ প্রথম চেষ্টাতে মাল্টিটেল ব্যর্থ হয় , ঠিক আছে
হিয়ু ভো

আমিও Operation not permitted, কোন ক্লু পেয়েছি ?
এরিক অাইনার

7

আপনি কয়েকটি হোস্টকে লেজ দেওয়ার জন্য ফ্যাব্রিক ব্যবহার করতে পারেন (এবং গ্রেপ ফলাফলগুলিও প্রয়োজন হলে):

$ fab -P -u 'USER' -p 'PASSWORD' --linewise -H host1,host2,host3 -- tail -f /path/to/my/log.log | grep ERROR

6

আমি ভাবছিলাম এটি ব্যবহার করাও সম্ভব হতে পারে:

ssh -f user@hostname1 "tail -f /var/log/file" > /tmp/somefile &
ssh -f user@hostname2 "tail -f /var/log/file" > /tmp/somefile &

Ssh এর পরে -f বিকল্পটি আপনাকে ব্যাকগ্রাউন্ডে চলার আগে একটি পাসওয়ার্ড প্রবেশ করার অনুমতি দেয়। তারপরে আপনার একক ফাইল এবং চলমান অবস্থায় লাইন বাই লাইন ফলাফল থাকতে পারে:

tail -f /tmp/somefile

আপনি যদি আউটপুট প্রদর্শনের জন্য অন্যান্য লেজ বিকল্পগুলি ব্যবহার করতে চান তবে আপনাকে বর্তমান "লেজ" কমান্ডের উপরে আরও কিছুটা নিয়ন্ত্রণ দিতে পারে।


6

এই উত্তরটি স্ট্যাকওভারফ্লোতে পরীক্ষা করে দেখুন - এতে dsh এবং টেল-ফ ব্যবহার করা হয়।


5

মাল্টিটেল একবার দেখুন । উপরের উদাহরণগুলির মতো, আপনি এটি ssh এর আদেশ হিসাবে দিতে পারেন, এবং তারপরে আপনি এক পর্দা প্রদর্শন করতে পারবেন (এবং সহজ স্ক্রোলব্যাকের জন্য বাফারিং) একাধিক লগ। এটি রঙও করে, যা অনিয়মগুলি দাগ দেওয়ার জন্য খুব দরকারী।


2

সমান্তরাল ssh এর জন্য একটি দুর্দান্ত সমাধান রয়েছে:

pssh -t0 -H 'host-01 host-02 host-03 host-04' -P tail -f /var/log/app.log
  • -t0 সংযোগের সময়সীমা অক্ষম করে, অন্যথায় pssh সংযোগটি বন্ধ করে দেয়
  • -H '<host>...' কমান্ড চালানোর জন্য হোস্টের তালিকা
  • -P প্রতিটি হোস্টের stdout মুদ্রণ সক্ষম করা হয়
  • tail -f /var/log/app.log আপনার রিমোট শেল চালাতে পারে এমন কোনও আদেশ হতে পারে


1

কেবল একটি অদ্ভুত সমাধান, তবে এটি কার্যকর!:

পর্দা 1

ssh user@hostname1 "tail -f /var/log/file" > /dev/pts/6

স্ক্রিন 2

ssh user@hostname2 "tail -f /var/log/file" > /dev/pts/6

এটি কাজ করবে, / dev / pts / 6 টার্মিনালে লাইনগুলি আউটপুট দেয় (আপনার নিজস্ব টার্মিনালটি সন্ধান করতে: চালনা করুন: who am i এবং এটি আপনাকে প্রদর্শন করবে))
অলিভিয়ার ডুলাক

1

আপনি dbitail চেকআউট করতে পারেন।

আমি তৈরি একটি জাভা সরঞ্জাম, এসএসএইচ ব্যবহার করে স্থানীয় এবং দূরবর্তী লগ ফাইলগুলি পড়তে সক্ষম। এটি ব্যবহার করা মোটামুটি সহজ।

আরও কিছু ব্যাখ্যা: https://github.com/pschweitz/DBITail/wiki

আপনার জাভা রানটাইম-এর মধ্যে এক্সিকিউটেবল নেটিভ জার রিলিজের কেবল আপনার অপারেটিং সিস্টেমের সাথে সম্পর্কিত সংস্করণটি ডাউনলোড করুন (জাভা 8_40 বা তার বেশি প্রয়োজন):

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

আপনি একটি সম্পূর্ণ ডকুমেন্টেশন (এমবেডেড এবং আমি গিথুবের পৃষ্ঠাও সন্ধান করতে পারেন) পেতে পারেন

ফিলিপ


0

অথবা আপনি দুটি টার্মিনাল তৈরি করতে পর্দা ব্যবহার করতে পারেন এবং তারপরে সেগুলি বিভক্ত করতে পারেন।

লেবেল চালানোর আগে এবং লগ ফাইল চালনার আগে আপনার প্রথম হোস্টের মধ্যে এসএসএইচ প্রবেশ করুন, স্ক্রিনটি প্রবেশ করুন।

তারপরে এই হোস্টটিতে ফাইলটি লেজ করুন।

CTRL + A, c একটি নতুন স্ক্রিন বা উইন্ডো তৈরি করবে। এই নতুন উইন্ডো থেকে দ্বিতীয় হোস্টের মধ্যে ssh করুন এবং সেখানে ফাইলটি টাল করুন।

এখন বিভক্ত স্ক্রিন তৈরি করতে

সিটিআরএল + এ, শিফট + এস, এটি উপরের অংশে এবং নীচের অংশটি খালি খালি দিয়ে একটি স্প্লিট স্ক্রিন তৈরি করবে। নীচের অংশে স্যুইচ করতে এবং এর মধ্যে প্রথম স্ক্রিনটি রাখার জন্য,

সিটিআরএল + এ, ট্যাব, এটি আপনাকে নীচের অংশে নিয়ে যাবে। এই ক্ষেত্রে আপনার প্রথম এসএসএইচ অধিবেশন আনার জন্য:

CTRL + A, "(উদ্ধৃতি প্রতীক) এবং প্রথম সেশনটি নির্বাচন করুন এবং এন্টার টিপুন।

আমি বুঝতে পারি এটি দেখতে অনেকটা জিমন্যাস্টিকের মতো হতে পারে, এবং এটিও তবে আপনি একবার ব্যবহার করে একবার ব্যবহার করলেন once

এখানে একটি সত্যিই ভাল টিউটোরিয়াল বা স্ক্রিনের আদেশগুলির দ্রুত রেফারেন্স দেওয়া হয়েছে: http://www.pixelbeat.org/lkdb/screen.html

অতিরিক্তভাবে, আপনি একটি স্ক্রিনসিআরসি ফাইল তৈরি করতে পারেন যাতে আমি বর্ণিত যা অনেকটাই প্রথমবার যখন আপনি স্ক্রিনে প্রবেশ করেন তখন স্বয়ংক্রিয় করা যায়।

এ সম্পর্কে আরও একটি দুর্দান্ত বিষয় হ'ল আপনি কেবল নিজের সেশনটি বন্ধ করতে এবং এটি অন্য কোনও জায়গায় আবার চালু করতে পারেন। উদাহরণস্বরূপ, আপনি কাজ করছেন এবং আপনার কিছু পর্যবেক্ষণ চলছে। আপনি লগ আউট না করেই আপনার সেশনটি বন্ধ করতে পারেন, এবং আপনি ঘরে বা অন্য কোনও জায়গায় যাওয়ার পরে পুনরায় শুরু করতে পারেন।


0

আপনি ব্যাশ এবং আরএসএনসি ব্যবহার করে ফাইলগুলি দূরবর্তীভাবে টেইল করতে পারেন, আমি এটি ব্যবহার করছি এবং এটি একটি দুর্দান্ত বাশ স্ক্রিপ্টটি নীচের টিউটোরিয়ালটি দেখুন

টেইল ফাইলগুলি দূরবর্তীভাবে ব্যাশ এবং আরএসসিএন ব্যবহার করে


লিঙ্কটি কাজ করে না
czerasz
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.