Ssh নিজেই আউটপুট থেকে একটি রিমোট কমান্ড থেকে আউটপুট আলাদা করার উপায় আছে?


5

আমি ssh এর মাধ্যমে একটি রিমোট কমান্ড কার্যকর করি এবং আমাকে এই কমান্ডের আউটপুট পার্স করতে হবে। রিমোট stdout / stderr আমার স্থানীয় ssh কমান্ডের stdout / stderr এর আমার স্থানীয় বাক্সে ssh দ্বারা সূক্ষ্মভাবে ফরোয়ার্ড করা হয়। যাইহোক, এসএসএস যখন আমার স্থানীয় স্টাডাউট / স্ট্ডারটিতে নিজস্ব স্ট্যাটাস / ত্রুটি বার্তাগুলিকে একাধিক করে তোলে তখন এটি ব্যর্থ হয়।

কোনও স্থানীয় ফাইলে তার নিজস্ব বার্তা প্রেরণের জন্য আমার স্থানীয় ssh কমান্ডকে বলার উপায় আছে কি? বা আমার কি আমার দূরবর্তী কমান্ডগুলি তাদের নিজস্ব আউটপুটগুলি এক জোড়া রিমোট ফাইলগুলিতে প্রেরণ করা এবং তারপরে নিরাপদে পার্স করতে তাদের এড়িয়ে যেতে হবে?


ssh-qসতর্কতা এবং ডায়াগনস্টিক বার্তাগুলি দমন করার একটি বিকল্প আছে - এটি কোনও সহায়তা?
রেডগ্রিটিব্রিক

না, এটি সমস্ত বার্তা সরিয়ে দেয় না। যেমন, আমি একটি পার্সার লিখতে চেষ্টা করছি যা সর্বদা কাজ করে এবং এটি যখন আমার সবচেয়ে বেশি প্রয়োজন হয় তা ব্যর্থ হয় না (এটি যখন ssh কমান্ড কিছুটা খারাপ হয়)
ম্যাথিউ

উত্তর:


1

ভার্চুটিটি হ্রাস / নির্মূল করতে এসএসএইচ ক্লায়েন্টের দুটি সুইচ রয়েছে।

ম্যান এসএস থেকে :

-q       Quiet mode.  Causes all warning and diagnostic messages to be
         suppressed.

-y       Send log information using the syslog(3) system module.  By
         default this information is sent to stderr.

-yসুইচ সম্ভবত আপনি যা চান তা নয়, কিন্তু এটি সব সংস্করণে উপলব্ধ নেই।

উবুন্টুর বর্তমান সংস্করণ (ওপেনএসএসএইচ_6.0 পি 1 দেবিয়ান -3 বুন্টু 1, ওপেনএসএসএল 1.0.1c 10 মে 2012) এটি সমর্থন করে, তবে অন্যরা এটি সমর্থন করতে পারে না।

আপনি যদি চান তবে একটি ভিন্ন লগ ফাইলে ssh সম্পর্কিত লগগুলি সংরক্ষণ করতে পারেন।

আপনি যদি rsyslog ব্যবহার করছেন, উদাহরণস্বরূপ, ফাইলটি তৈরি করুন /etc/rsyslog.d/ssh.logএবং এটিতে নিম্নলিখিত লাইনটি সংরক্ষণ করুন:

:msg,contains,"ssh:" /var/log/ssh.log

এখন নিম্নলিখিত কমান্ডটি প্রয়োগ করে আরএসএসলগ পুনরায় আরম্ভ করুন:

sudo service rsyslog restart

পিআইডি দিয়ে নির্দিষ্ট ssh প্রক্রিয়া সম্পর্কিত লগগুলি অ্যাক্সেস $PIDকরতে আপনি গ্রেপ ব্যবহার করতে পারেন:

grep "ssh\[$PID\]" /var/log/ssh.log

কোনও নির্দিষ্ট পিডের জন্য সিসলগ ট্র্যাফিককে থামানোর কোনও উপায় আছে কি? অর্থাত্, আমি ssh এরর বার্তাগুলিও পার্স করতে চাই ...
ম্যাথিউ

আমি আমার উত্তর আপডেট করেছি।
ডেনিস

আমি বিরক্ত হওয়ার জন্য দুঃখিত, তবে এর জন্য প্রয়োজন যে লগ ফাইলগুলি ব্যবহারকারীর দ্বারা প্রকৃতপক্ষে পাঠযোগ্য যা ssh কমান্ড চালায় যা অনুশীলনে ঘটার সম্ভাবনা নেই (খুব বেশি সংবেদনশীল ডেটা উপলভ্য হবে)। আমি অবাক হয়েছি যে সিসলোগে যাওয়া ইউডিপি প্যাকেটগুলি সেখানে পৌঁছানোর আগে সেগুলি আটকাতে কোনও LD_PRELOAD ট্রিক দিয়ে ssh প্রক্রিয়াটি চালানো কিছুটা সম্ভব কিনা is
ম্যাথিউ

আকর্ষণীয় ধারণা, তবে আপনাকে সাহায্য করার জন্য আমি এ বিষয়ে যথেষ্ট জানি না। আমি অনুমান করি আপনি হয় ব্যবহারকারীদের ssh.logএকা সুবিধাগুলি পড়তে পারেন (সবচেয়ে সংবেদনশীল তথ্য হোস্টের নাম হওয়া উচিত, এবং আপনি এটি প্রতি কয়েক মিনিট মুছে ফেলতে পারেন) বা মূল হিসাবে একটি পটভূমি কাজ সেট আপ করতে পারেন যা ব্যবহৃত পিআইডি এবং অনুলিপিগুলি ট্র্যাক করে রাখে তথ্য, পিআইডি উপর ভিত্তি করে, কেবলমাত্র সেই ব্যবহারকারী দ্বারা পঠনযোগ্য একটি ফাইলে।
ডেনিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.