एक महीने में मौजूदा अपाचे लॉगफाइल को अलग-अलग फ़ाइलों में कैसे विभाजित कर सकता है?महीने में मौजूदा अपाचे लॉगफाइल को कैसे विभाजित करें?
मैंने वेब को खराब कर दिया है और मुझे कुछ भी नहीं मिला है। हाँ, मैं logrotate और cronolog और यह सब के बारे में पता है। लेकिन मुझे जो कुछ भी मिला है, वह मुझे मौजूदा फाइलों को विभाजित करने में मदद नहीं करता है।
क्या कोई अजीब स्क्रिप्ट या कुछ है?
एक तरह से awk
का उपयोग कर:
awk 'BEGIN {
split("Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ", months, " ")
for (a = 1; a <= 12; a++)
m[months[a]] = a
}
{
year = array[3]
month = sprintf("%02d", m[array[2]])
split($4,array,"[:/]");
print > FILENAME"-"year"_"month".txt"
}' incendiary.ws-2009
हो जाएगा ताकि
124.115.5.11 - - [30/May/2011:23:21:37 -0500] "GET/HTTP/1.0" 200 206492 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322;TencentTraveler)"
58.61.164.39 - - [31/May/2011:00:36:35 -0500] "GET/HTTP/1.0" 200 206492 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322;TencentTraveler)"
114.80.93.55 - - [31/May/2011:01:42:17 -0500] "GET/HTTP/1.0" 200 206492 "-" "Sosospider+(+http://help.soso.com/webspider.htm)"
114.80.93.73 - - [31/May/2011:02:03:44 -0500] "GET/HTTP/1.0" 200 206492 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322;TencentTraveler)"
123.125.71.98 - - [31/May/2011:12:33:30 -0500] "GET/HTTP/1.1" 103 24576 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"
220.181.108.187 - - [31/May/2011:12:33:55 -0500] "GET/HTTP/1.1" 103 24576 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"
123.125.71.117 - - [31/May/2011:13:27:56 -0500] "GET/HTTP/1.1" 103 24576 "-" "Baiduspider+(+http://www.baidu.com/search/spider.htm)"
123.125.71.78 - - [31/May/2011:16:45:48 -0500] "GET /node/54 HTTP/1.1" 200 3219 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
124.115.1.8 - - [31/May/2011:19:59:58 -0500] "GET/HTTP/1.1" 200 206492 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
123.125.71.69 - - [31/May/2011:22:05:46 -0500] "GET/HTTP/1.1" 200 206492 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
यहाँ मेरी समाधान, बहुत नीचे स्टीव जवाब से प्रेरित है:
यहाँ डेटा का एक टुकड़ा है आउटपुट फाइलें जैसे:
incendiary.ws-2010-2010_04.txt
incendiary.ws-2010-2010_05.txt
incendiary.ws-2010-2010_06.txt
incendiary.ws-2010-2010_07.txt
एक 150 MB लॉग फ़ाइल के खिलाफ, chepner द्वारा स्वीकृत जवाब एक 3.4 GHz 8 कोर जिऑन E31270 पर 70 सेकंड लगे, जबकि इस विधि 5 सेकंड ले लिया।
मूल प्रेरणा: https://stackoverflow.com/a/11714105/430062
जो लोग awk (या कुछ पता :) जरूरी जानते हैं या आप कोशिश कर रहे हैं डेटा फ़ाइल तक पहुंच नहीं हो सकता:
तरहहो जाएगा ताकि उत्पादन फ़ाइलें हेरफेर करने के लिए, यह अच्छा होगा अगर आप यह दिखाने के लिए कुछ इनपुट/आउटपुट जोड़े प्रदान कर सकें कि आप क्या काम कर रहे हैं/यदि संभव हो तो बाहर निकलना चाहते हैं – Levon
मैंने आपके उत्कृष्ट सुझाव को लागू किया है। –