पर आधारित लॉग फ़ाइल प्रविष्टियां मेरे सर्वर में असामान्य रूप से उच्च CPU उपयोग है, और मैं देख सकता हूं कि अपाचे बहुत अधिक मेमोरी का उपयोग कर रहा है। मुझे एहसास है, मुझे एक आईपी द्वारा डॉस किया जा रहा है - शायद आप उसे ढूंढने में मेरी मदद कर सकते हैं?दिनांक सीमा
मैं 10 सबसे "सक्रिय" आईपी पता लगाने के लिए निम्न पंक्ति का उपयोग किया है,:
cat access.log | awk '{print $1}' |sort |uniq -c |sort -n |tail
शीर्ष 5 आईपी सर्वर के लिए के रूप में कई अनुरोधों के बारे में 200 गुना है, "औसत" उपयोगकर्ता के रूप में । हालांकि, मुझे पता नहीं चल सकता है कि क्या ये 5 बहुत ही आगंतुक हैं, या वे सर्वर पर हमला कर रहे हैं।
उपरोक्त खोज को समय अंतराल में निर्दिष्ट करने के लिए कोई तरीका है, उदाहरण के लिए। पिछले दो घंटे या आज 10-12 के बीच?
चीयर्स!
अपडेट किया गया 23 OCT 2011 - आदेशों मैं की जरूरत:
पिछले एक्स घंटे [यहाँ दो घंटे] के भीतर प्रविष्टियों जाओ
awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print Date FS $4}' access.log
प्राप्त पिछले एक्स घंटे [यहाँ दो के भीतर सबसे अधिक सक्रिय आईपी घंटे]
awk -vDate=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date) print $1}' access.log | sort |uniq -c |sort -n | tail
रिश्तेदार समयावधि
भीतर प्रविष्टियों जाओawk -vDate=`date -d'now-4 hours' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'now-2 hours' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && $4 < Date2) print Date FS Date2 FS $4}' access.log
जाओ पूर्ण समय के दौरान प्रविष्टियों
awk -vDate=`date -d '13:20' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'13:30' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && $4 < Date2) print $0}' access.log
प्राप्त पूर्ण समय के दौरान सबसे अधिक सक्रिय आईपी
awk -vDate=`date -d '13:20' +[%d/%b/%Y:%H:%M:%S` -vDate2=`date -d'13:30' +[%d/%b/%Y:%H:%M:%S` ' { if ($4 > Date && $4 < Date2) print $1}' access.log | sort |uniq -c |sort -n | tail
मैं आलसी हूं; मैं लॉग को Excel में कॉपी करता हूं और एक पिवट टेबल बना देता हूं ... – Ben
@बेन "अब आपके पास दो समस्याएं हैं।" – tripleee