tcpdump - -জি, -ডাব্লু এবং -সি ব্যবহার করে ক্যাপচার ফাইলগুলি ঘোরান


14

আমি ঘূর্ণায়মান tcpdump আউটপুট ক্যাপচার করতে সক্ষম হতে দেখছি যা ঘূর্ণায়মানভাবে 48 ফাইলের মধ্যে 30 মিনিটের মূল্যের ডেটা ক্যাপচার করে।

ম্যান পেজটি বোঝায় এটি সম্ভব হওয়া উচিত, তবে আমার পরীক্ষার ফলে আমি যে ফলাফলটি খুঁজছি তা বোধ হয় না:

-W

      -Cবিকল্পের সাথে একত্রে ব্যবহৃত , এটি নির্দিষ্ট সংখ্যায় তৈরি ফাইলগুলির সংখ্যা সীমাবদ্ধ করবে এবং শুরু থেকেই ফাইলগুলিকে ওভাররাইটিং শুরু করবে, এইভাবে একটি 'ঘোরানো' বাফার তৈরি করবে। তদতিরিক্ত, এটি সর্বাধিক সংখ্যক ফাইলের সমর্থন করার জন্য পর্যাপ্ত নেতৃস্থানীয় 0 টি ফাইলগুলির নাম দেবে, যাতে তারা সঠিকভাবে বাছাই করতে পারে।

      -Gবিকল্পের সাথে একত্রে ব্যবহৃত , এটি সীমাবদ্ধতা 0 এ পৌঁছানোর পরে স্থিতি 0 দিয়ে প্রস্থান করা, ঘোরানো ডাম্প ফাইলগুলির সংখ্যা সীমাবদ্ধ করবে। যদি -Cপাশাপাশি এটি ব্যবহার করা হয় তবে আচরণটির ফলে প্রতি টাইমসাইলে চক্রাকার ফাইল তৈরি হবে।

আমি এটি ওএস এক্স 10.9.5 / 10.10.3 ক্লায়েন্টগুলিতে চালাচ্ছি। টেস্ট কমান্ড এখানে; এটি কেবল তৃতীয় ফাইলের পরে উপস্থিত হয়:

tcpdump -i en0 -w /var/tmp/trace-%Y-%M-%d_%H.%M.%S.pcap -W 3 -G 3 -C -K -n

pls আমার উত্তর দেখুন
মারিয়াসমাতুটিয়

উত্তর:


13

এর -W 3বদলে আপনি লিখেছেন -W 48। আপনার কমান্ডে অবশ্য অন্যান্য ত্রুটি রয়েছে।

বিকল্পটির -Gঅর্থ:

-G rotate_seconds

      যদি নির্দিষ্ট করা হয়, তবে -wপ্রতিটি ঘোরা_সেকেন্ডস সেকেন্ডে বিকল্পের সাথে উল্লিখিত ডাম্প ফাইলটি ঘোরান । সেভফাইলে নির্দিষ্ট করা নাম থাকবে -wযার দ্বারা স্ট্রফটাইম (3) দ্বারা সংজ্ঞায়িত সময় বিন্যাস অন্তর্ভুক্ত করা উচিত। যদি কোনও সময় বিন্যাস নির্দিষ্ট না করা হয় তবে প্রতিটি নতুন ফাইল পূর্ববর্তীটিতে ওভাররাইট করে।

      যদি -Cবিকল্পটির সাথে একত্রে ব্যবহৃত হয় তবে ফাইলের নামগুলি ' ফাইল <অ্যাকাউন্ট>' রূপে নেবে ।

যেহেতু আপনি লিখেছেন -G 3, আপনি প্রতি 3 সেকেন্ডে এটি ঘুরবেন, যখন আপনি জানিয়েছেন

... যা ৩০ মিনিটের মূল্যবান ডেটা ক্যাপচার করে

এছাড়াও, নামকরণের স্কিমটি ভুল: উপরের থেকে,

যদি -Cবিকল্পটির সাথে একত্রে ব্যবহৃত হয় তবে ফাইলের নামগুলি ' ফাইল <অ্যাকাউন্ট>' রূপে নেবে ।

সুতরাং নামের জন্য সময় বিন্যাস নির্দিষ্ট করে কোন লাভ নেই।

এছাড়াও, -Cবিকল্পটির কোনও যুক্তি নেই, যদিও ম্যান পৃষ্ঠা অনুসারে , এটি হওয়া উচিত:

tcpdump [  -AdDefIKlLnNOpqRStuUvxX  ] [  -B  buffer_size  ] [  -c  গণনা  ]
-C  FILE_SIZE  ] [  -G  rotate_seconds  ] [  -F  ফাইল  ] [  -আমি  ইন্টারফেস  ] [  -m  মডিউল  ] [  -m  গোপন  ] [  -r  ফাইল  ] [  -s  snaplen  ] [  -T  টাইপ  ] [  -w  ফাইল  ] [  -w  filecount  ] [  -E  SPI @ IpAddr algo: SECRET ... ] [  -Y  datalinktype  ] [  -z  postrotate-কমান্ড  ] [  -Z  ব্যবহারকারী  ] [  অভিব্যক্তি  ]

Man পৃষ্ঠা পদ বলে:

-C

      কোনও সেফফাইলে কাঁচা প্যাকেট লেখার আগে, ফাইলটি বর্তমানে ফাইল_ সাইজের চেয়ে বড় কিনা তা পরীক্ষা করুন এবং যদি তা হয় তবে বর্তমান সেভফিলটি বন্ধ করুন এবং একটি নতুন খুলুন। প্রথম সেভফিলের পরে সেভফাইলগুলির -wপতাকাটি দিয়ে নির্দিষ্ট করা নাম থাকবে, তার পরে একটি নম্বর থাকবে, 1 থেকে শুরু হবে এবং উপরের দিকে চলবে । ফাইল_সাইজের ইউনিটগুলি কয়েক মিলিয়ন বাইট ( এক হাজার 10,000 বাইট, 1,048,576 বাইট নয়)।

সুতরাং আপনার -C 100100 এমবি ফাইল উত্পাদন করার জন্য নির্দিষ্ট করা উচিত ।

শেষ পর্যন্ত, আপনার আদেশটি হওয়া উচিত:

tcpdump -i en0 -w /var/tmp/trace -W 48 -G 1800 -C 100 -K -n

এটি 481 পিরিয়ড সহ, প্রতি 1800 সেকেন্ড (= 30 মিনিট) বা প্রতি 100 এমবি, যেটি প্রথমে আসে তার সাথে ফাইলগুলি (নামগুলি ট্রেস 1, ট্রেস 2, ...) চক্রাকারে ঘোরানো হবে।


শেষ উত্তর শর্ত অনুপস্থিত If no time format is specified, each new file will overwrite the previous.(আমি উত্তর আপডেট করেছি।)
okwap

2
@ ওপওয়াপ, যখন আপনি উত্তরটি সম্পাদনা করেছেন (% Y-% m-% d_% H:% M:% S) যুক্ত করার পরে, আপনি -G, -C, এবং -W একসাথে ব্যবহারের চক্রীয় অংশটি ভেঙে ফেলেছেন। W / ফাইল নামটির জন্য just / var / tmp / trace ব্যবহার করে আসল উত্তরটি সঠিক ছিল এবং বর্ণিত হিসাবে বর্ণিত চক্রীয় আউটপুট তৈরি করেছে (trace1, trace2, ...)। -জি, -সি এবং -ডে একসাথে ব্যবহার করার সময় আপনি ফাইলনেমে স্ট্রফটাইম ফর্ম্যাটটি ব্যবহার করতে পারবেন না এবং এখনও সাইক্লিক আউটপুট পাবেন না। আপনার সম্পাদনা দিয়ে, tcpdump কেবল চক্রবিহীনভাবে ফাইলগুলি লেখা চালিয়ে যেতে থাকবে কারণ ফাইলের নামগুলি কখনও পুনরাবৃত্তি করে না।
বিল মিনিস

@ বিলমিনিস এটি আমার নজরে আনার জন্য ধন্যবাদ, আমি Okwap এর সম্পাদনা বাতিল করে দিয়েছি।
মারিউস ম্যাটুটিয়ায়

ঠিক নীচের মন্তব্যে সুইন্সটারের মতোই, আমি নোট করি যে এই উত্তরটি প্রত্যাশিত আচরণ তৈরি করে না। মিলিয়ে -w -W -C এবং -G ব্যবহার করা একই ফাইলটিকে বারবার ওভাররাইট করা হয়। এটা আছে না ফাইলের একটি সংখ্যা -w সমান তৈরি করা <এন> হিসাবে এক আশা হতে পারে।
নীল 2000

6

উপর সম্প্রসারিত flabdablet এর উত্তর (পরিবর্তন -G 1800করার জন্য -G 300- ঘূর্ণন প্রতি পাঁচ মিনিট - শুধু উদ্দেশ্যে পরীক্ষার জন্য),

tcpdump -i en0 -w /var/tmp/trace-%m-%d-%H-%M-%S-%s -W 3 -G 300

দিতে হবে %m=month, %d=day of month, %H=hour of day, %M=minute of day, %S=second of day, %s=millisecond of day, ফলে

/var/temp/trace-03-02-08-30-56-1520002568
/var/temp/trace-03-02-08-35-56-1520002568
/var/temp/trace-03-02-08-40-56-1520002568

এই সমস্যাযুক্ত বিরতিযুক্ত সমস্যার জন্য ট্রেসগুলি সংগঠিত করার জন্য খুব দরকারী। এছাড়াও, আপনি যদি রুট না হন তবে আপনি এটি করতে sudoএবং অবশ্যই এটি একটি নোপআপ করতে পারেন:

sudo bash -c "nohup tcpdump -i en0 -w /var/tmp/trace-%m-%d-%H-%M-%S-%s -W 3 -G 300 &"

3

আপনার যা প্রয়োজন তা আমার কাছে মনে হচ্ছে

tcpdump -i en0 -G 1800 -w /var/tmp/trace-%H-%M.pcap

স্ট্রফটাইম ফর্ম্যাট স্পেসিফায়ার যা -G -W ফাইলনেমে প্রত্যাশা করে তার একটি সম্পূর্ণ তারিখ এবং সময় উপস্থাপন করতে হবে না। সেখানে কেবল% এইচ এবং% এম থাকায় এবং ঠিক আধা ঘন্টার আবর্তিত সময়ের সাথে সাথে, tcpdump এর প্রদত্ত যে কোনও অনুরোধ কেবল আধা ঘন্টা দূরে দুটি ভিন্ন% এম মান উত্পন্ন করবে এবং গতকালের ট্রেস ফাইলগুলি একই ঘন্টা যখন ওভাররাইট হয়ে যাবে এবং মিনিট নম্বর আবার চারপাশে রোল।


1

কিছু পরীক্ষা-নিরীক্ষার পরেও, আমি প্রত্যাশা মতো কাজ করার জন্য @ মারিয়াসমাতুটিয় উত্তর পেতে পারি না। যদি সময়টি সীমাবদ্ধকরণের কারণ হয়ে ওঠে এবং ফাইলের নামের সাথে সময় বিন্যাসটি যুক্ত না করে, তবে বর্তমান পিসিপি ফাইলটি কেবল ওভাররাইট করা হয় is

উদাহরণস্বরূপ, চেষ্টা করুন:

tcpdump -i en0 -w /var/tmp/trace -W 10 -G 5 -C 1

আপনি শেষ পর্যন্ত সমস্ত trace.pcap0লিখে দেওয়া হয়।

মন্তব্যে যেমন পরামর্শ দেওয়া হয়েছে, আপনি যদি ফাইলের নামের সাথে সময় বিন্যাস যোগ করেন, তবে আপনার কেবল ফাইলের প্রতিটি ক্রমবর্ধমান তালিকা সমাপ্ত হবে।

অতএব, আমাকে সাধারণ আকারের সীমিত ফাইলগুলি সহ আটকে থাকতে হয়েছিল:

tcpdump -i en0 -w /var/tmp/trace -W 48 -C 100

0

হ্যাঁ, মরিয়াসম্যাটুয়িয়েয়ের উত্তরটি বলছে বলে মনে হচ্ছে এটি কাজ করে না ।

tcpdump ...{other options}... -w httpdebug.pcap -W 48 -G 1800 -C 100
$ ls -l
-rw-r--r--. 1 tcpdump tcpdump  100007441 Mar 17 17:57 httpdebug.pcap00
-rw-r--r--. 1 tcpdump tcpdump   46895104 Mar 17 18:02 httpdebug.pcap01
-rw-r--r--. 1 tcpdump tcpdump   93091143 Mar 17 17:47 httpdebug.pcap02
-rw-r--r--. 1 tcpdump tcpdump    5372072 Mar 17 16:17 httpdebug.pcap03

এটি আমার কাছে দেখে মনে হচ্ছে এটি -C 10030 মিনিটের সময়কালে যতটা সম্ভব এমবি ফাইলগুলি ক্যাপচার করছে কারণ httpdebug.pcap03এটির প্রাথমিকতম টাইমস্ট্যাম্প রয়েছে এবং এটি 100 এমবি থেকে অনেক ছোট, সুতরাং এটি 30 মিনিটের ব্যবধানে কেটে গেছে বলে মনে হচ্ছে। এটি একবার 30 মিনিট মারলে, এটি httpdebug.pcap00100 এমবিতে হিট হওয়ার সাথে সাথে পিছনে ঝাঁপিয়ে পড়ে সংখ্যাটি বাড়িয়ে দেবে বলে মনে হয় । এর অর্থ হ'ল যদি 30 মিনিটের সময়কালে আপনার কাছে প্রচুর অনুরোধ থাকে তবে আপনি খুব উচ্চতর httpdebug.pcapXX নম্বর পেতে পারেন। যদি আপনি কোনও সময়ের মধ্যে আর কখনও এতগুলি অনুরোধ পৌঁছে না থাকেন তবে সেই উচ্চ httpdebug.pcapXX নম্বরগুলি কখনই ওভাররাইট করা যাবে না।

তাই আমি টাইমলাইস প্রতি চক্রীয় ফাইলগুলি ভাবছি এর অর্থ টাইমলাইস -G 1800এটি প্রতিটি চক্র -G 1800এবং প্রতিটি বৃদ্ধি পাবে -C 100

আমি -W 48এটিকে প্রভাবিত করে কিনা তা নিশ্চিত নই , তবে সম্ভবত আপনি যদি httpdebug.pcap47(গণনা 0` থেকে শুরু হয়) এটি প্যাকেটগুলি ধরা বন্ধ করে দেবে।


কিছুটা আগে, বিভ্রান্তিকর শব্দটি সম্পর্কে একটি গিটহাব সমস্যা খোলা হয়েছিল । তারা বাস্তবায়ন পরিবর্তন করেনি, তবে তারা ডকুমেন্টেশনটি কিছুটা পরিষ্কার করার চেষ্টা করেছিল।

প্রস্তাবিত পরিবর্তনের সালে মিশে গিয়ে তৈরি করা হয়েছে 28 জানুয়ারি, 2019

আজ, 17 ই মার্চ, 2019, এখানে বর্তমান ডকুমেন্টেশন রয়েছে:

-C:

.BI \-C " file_size"
Before writing a raw packet to a savefile, check whether the file is
currently larger than \fIfile_size\fP and, if so, close the current
savefile and open a new one.  Savefiles after the first savefile will
have the name specified with the
.B \-w
flag, with a number after it, starting at 1 and continuing upward.
The units of \fIfile_size\fP are millions of bytes (1,000,000 bytes,
not 1,048,576 bytes).

-G:

.BI \-G " rotate_seconds"
If specified, rotates the dump file specified with the
.B \-w
option every \fIrotate_seconds\fP seconds.
Savefiles will have the name specified by
.B \-w
which should include a time format as defined by
.BR strftime (3).
If no time format is specified, each new file will overwrite the previous.
Whenever a generated filename is not unique, tcpdump will overwrite the
preexisting data; providing a time specification that is coarser than the
capture period is therefore not advised.
.IP
If used in conjunction with the
.B \-C
option, filenames will take the form of `\fIfile\fP<count>'.

-W:

.B \-W
Used in conjunction with the
.B \-C
option, this will limit the number
of files created to the specified number, and begin overwriting files
from the beginning, thus creating a 'rotating' buffer.
In addition, it will name
the files with enough leading 0s to support the maximum number of
files, allowing them to sort correctly.
.IP
Used in conjunction with the
.B \-G
option, this will limit the number of rotated dump files that get
created, exiting with status 0 when reaching the limit.
.IP
If used in conjunction with both
.B \-C
and
.B \-G,
the
.B \-W
option will currently be ignored, and will only affect the file name.

আমি এখনও মনে করি এটি কিছুটা বিভ্রান্তিকর, তবে আমার উপরোক্ত উপসংহার থেকে পার্থক্যটি অনুমান করি, এটি -Wযখন বলে যে এটি ব্যবহার করা -C -Gহয় তখন ফাইলের নাম বাদে কোনও কিছুই প্রভাবিত করে না।

সাধারণভাবে, -Wফাইল সংখ্যা সীমাবদ্ধ করার জন্য ব্যবহৃত হয়। সুতরাং আপনি যদি অনির্দিষ্টকালের জন্য ক্যাপচার করতে চান তবে এটি ব্যবহার করবেন না।

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