উপরের সরঞ্জামগুলি দুর্দান্ত থাকলেও আমি মনে করি আমি জানি প্রশ্নকারী কী জিজ্ঞাসা করছে। এটি প্রায়শই আমাকে ব্যথা করে যে আমি অন্যান্য ফাইলগুলির সাথে যেভাবে পারি তার কোনও তথ্য অ্যাক্সেস-লগ থেকে বের করতে পারি না।
এটি বোবা অ্যাক্সেস লগ ফর্ম্যাটটির কারণে:
127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"
তারা কেন [] তারিখের জন্য এবং "" অন্যান্য জিনিসের জন্য ব্যবহার করেছিল? তারা কি ভেবেছিল আমরা 4 তারিখের মাঠে ছিল জানি না? এটি অবিশ্বাস্যরূপে হতাশাব্যঞ্জক।
এই মুহুর্তে সেরা সরঞ্জাম গোক:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
উপরের তথ্য উপর আপনি দিতে হবে:
"GET /manual/elisp/index.html HTTP/1.1"
অন্য কথায়, এফপিএটি আপনাকে অ্যাপাচি-লগের ক্ষেত্রগুলি এমনভাবে টেনে আনার ক্ষমতা দেয় যাতে তারা কেবল স্থান পৃথকীকরণের পরিবর্তে প্রকৃত ক্ষেত্র। আমি সবসময় এটিই চাই। আমি তখন পাইপলাইন দিয়ে আরও কিছু বিশ্লেষণ করতে পারি।
এফএসপিএটি তৈরির কাজটি এখানে সংজ্ঞায়িত করা হয়েছে: http://www.gnu.org/software/gawk/manual/html_node/Splitting- বাই-কনটেন্ট.ইচটিএমএল
অতএব আপনি গ্যাঙ্ক তৈরি করতে একটি উপনাম সেট আপ করতে পারেন যা অ্যাপাচি লগগুলি পার্স করতে পারে:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' "
apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
এটা আমার জন্য তৈরি:
"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"
এবং অবশ্যই অন্য যে কোনও কিছু এখন সম্ভব।
উপভোগ করুন!