আপনি এই আদেশটি কীভাবে সহজ করবেন?


10

আমি স্ট্রেস / নেটস্যাট / ইত্যাদিতে একেবারে নতুন request

sudo strace -o /tmp/strace -f -s4096 -r -p $(netstat -antlp | \ 
    grep $(lsof -p `pidof telnet` | grep TCP | \
    perl -n -e'/localhost:(\d+)/ && print $1') | grep apache2 | \ 
    perl -n -e'/ESTABLISHED (\d+)/ && print $1')

ধন্যবাদ!


আপনি টেলনেট প্রক্রিয়া শুরু করার আগে বা পরে চালাচ্ছেন?
ডেল্টারে

এটি শুরু হওয়ার পরে, এটি আপনাকে
অ্যাপাচে

1
যদি আপনার কমান্ড কাজ করে তবে এটিকে সরল করার জন্য বিরক্ত করবেন না।
টম ও'কনর

উত্তর:


1

আমি মার্ক হেন্ডারসনের সামান্য উন্নতি করতে পারি, `instead এর পরিবর্তে $ () দিয়ে এবং আরও ভাল সিডের সাহায্যে গ্রেপ অপসারণ করতে পারি:

sudo strace -o /tmp/strace -f -s4096 -r -p $(netstat -antlp | \
   sed -e "/telnet/s/^.*ESTABLISHED\ \|\/.*$//g")

ব্যক্তিগতভাবে আমি মনে করি ব্যাকটিকগুলি পড়া সহজ করে তোলে; তদ্ব্যতীত, তারা est () সিনট্যাক্সের বিপরীতে বাসা বাঁধে না


+1, উচ্চতর স্ক্রিপ্ট ফু এবং কিছু শেল বৈশিষ্ট্যের জন্য ভাল শিক্ষার উদাহরণ।
জেফ ফেরল্যান্ড

এই স্ক্রিপ্টটি straceটেলনেটের মধ্যে রয়েছে, এটি পরিবেশন করা অ্যাপাচি প্রক্রিয়াতে নয়।
বিএমডান

2

strace -p $(ss -npt|sed -n "/:$(ss -npt|sed -n '/telnet/s/^.*\?:\([0-9]\+\).*/\1/p') \+u/s/.*,\(.*\),.*/\1/p")

যতক্ষণ না আপনার কেবল একটি telnetচলমান থাকে, এটি straceযদি কোনও হয় তবে এটি সম্পর্কিত সার্ভার।

যদি কোনওটি না থাকে ( যেমন আপনি telnetসর্বশেষে বাহ্যিক সার্ভারে এড করেছেন), straceব্যর্থ হবেstrace: option requires an argument -- 'p'


1
strace -p $(netstat -tnp|awk -F'[ /]+' "/:$(netstat -tnp|awk -F'[ :]+' 
"/\/telnet/{print \$5}") /&&/apache2/{print \$7}")

বা, সহজ পাঠের জন্য ফর্ম্যাট করা হয়েছে এবং ওপি'র স্ট্রেস পতাকাগুলি অক্ষত রয়েছে:

sudo strace -o /tmp/strace -f -s4096 -r -p $(netstat -tnp | \
awk -F'[ /]+' "/:$(netstat -tnp | awk -F'[ :]+' "/\/telnet/ \
{print \$5}") / && /apache2/ {print \$7}")

ভাঙ্গন, প্রথমতম:

netstat -tnp | awk -F'[ :]+' "/\/telnet/ {print \$5}"

সমস্ত সক্রিয় টিসিপি সংযোগগুলি ডিএনএস নামগুলিতে আইপি ঠিকানাগুলি সমাধান না করে আমাকে দেখান। পাইপটি আঁকড়ে ধরুন, যা শেষ হওয়া কোনও লাইনের পঞ্চম ক্ষেত্রটি মুদ্রণ করে /telnet, যেখানে ক্ষেত্রগুলি এক বা একাধিক স্পেস এবং কোলন দ্বারা পৃথক করা হয়েছে। এই ক্ষেত্রটি উত্স বন্দর হবে।

উন্নতি করার জন্য : বাজকের ক্রিয়াকলাপের ভিতরে | head -n 1একটি শেষ বা একটি ;exitঅভ্যন্তর যুক্ত করে আরও শক্তিশালী করা যেতে পারে , তবে আপনার মূল সংস্করণটির সমতুল্যের অভাব ছিল, তাই আমি এটিকে আর দীর্ঘ করতে চাই না।

netstat -tnp | awk -F'[ /]+' "/:**** / && /apache2/ {print \$7}")

****এখানে অংশ আমি ইতিমধ্যে উপরে বর্ণিত করেছি, হয়। এখানে, আমি netstat -tnpযে কোনও লাইনের সন্ধান করছি যা উপরের উত্স বন্দর হিসাবে একই পোর্ট রয়েছে এবং এটি অ্যাপাচে মালিকানাধীন; যখন আমি এটি পাই, আমি সপ্তম ক্ষেত্রটি (এক বা একাধিক স্পেস বা স্ল্যাশ দ্বারা সীমাবদ্ধ) মুদ্রণ করি। এটি অ্যাপাচি সন্তানের পিআইডি।

উন্নত করার জন্য : কেবলমাত্র একটি পিআইডি ফিরিয়ে দেওয়া (উপরের মতো একই পদ্ধতিগুলির মাধ্যমে) ফিরে আসার পাশাপাশি, ডিপোর্টের সাথে অন্য কোনও জিনিসটির বিপরীতে মিলানোর বিষয়টি যখন আসে ঠিক তেমনই ঘটে তবে প্যাটার্নটি ফিট করার ক্ষেত্রে আমি সবচেয়ে বেশি বৈষম্যমূলক হয়ে উঠতে পারি imagine এফএস ( -F) -তে কলোন যুক্ত করে এটি করা সহজ হত , তবে সমস্যাটি মিশ্র আইপিভি 4 বনাম আইপিভি 6 পরিস্থিতিতে ঘটে, যেখানে ঠিকানায় নিজেই কলোন থাকতে পারে এবং এগুলি দ্রুত গন্ধ পেতে পারে। এটিকে বেশ জোরালো মনে হয়েছিল, বিশেষত পিছনের জায়গার সাথে।

sudo strace -o /tmp/strace -f -s4096 -r -p

এটি আপনার মূল প্রশ্ন থেকে সরাসরি অনুলিপি; আমি এটিকে কমপক্ষে পরিবর্তন করিনি।

আপনি যদি আমাকে কয়েকটি অতিরিক্ত চরিত্রের অনুমতি দেন তবে আমি যে সংস্করণটি চালিয়েছি তা হ'ল:

sudo strace -o /tmp/strace -f -s4096 -r -p $(netstat -tnp | \
awk -F'[ /]+' "/:$(netstat -tnp | awk -F'[ :]+' "/\/telnet/ \
{print \$5;exit}") / && /apache2/ {print \$7;exit}")

0

এটি চেষ্টা করুন, আশা করি এটি সহায়তা করে:

sudo strace -o /tmp/strace -f -s4096 -r -p `netstat -antlp | \
  grep telnet | sed -e "s/^.*ESTABLISHED\ \|\/.*$//g"`

উত্তরগুলি দেখতে দেখতে আরও সুন্দর লাগবে যদি আপনার সমস্ত কিছু দেখার জন্য ডানদিকে স্ক্রোল করতে না হয়।
জাঙ্গোফান

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