業餘:要紀錄網頁瀏覽人次,自己寫shell script要怎寫
netstat : 選我、選我,我可是能紀錄每個程序的來源IP跟port,當然這只是許多方法的其中一種方式,還有很多參數可以使用呢
業餘 :使用netstat 可以抓取IP等相關資訊,的確是個方法,不過只有一個方式有點難達到我想要的目的
真央:少年 試試看 這幾個方式吧
grep awk uniq mktmp
真央:建立時間跟儲存目錄,主要功能是抓取來源IP
IP_set(){
netstat -an |
grep 80 |
awk '{print $5}'|
awk '{FS=":"}{print $1}'|
grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' |
grep -v '*' >> ${tmp_file}
}
IP的訊息存在暫存檔裡面,並且計算有多少來源IP正在使用web
get_log(){
cat ${tmp_file} |
grep -v "Time" |
uniq -c >> ${home}${set_DATE}IP.log
total=$( cat ${tmp_file} | grep -v "Time" | uniq | wc -l )
echo "total ${total}" >> ${home}${set_DATE}IP.log
}
業餘:如果使用排程是每分鐘執行一次,單次執行的時間點只有一秒不到,取樣頻率不符合需求,那就將這些方法寫進去迴圈裡讓他自己去撈!
while ((1))
do
tmp_file=$(mktemp)
IP_set
echo Time:$(date +%Y%m%d-%H%M) >> ${home}${set_DATE}IP.log
get_log
[ -f "${tmp_file}" ] && rm -f ${tmp_file}
sleep 30
done
業餘:另外一支排程的shell script又是一個故事了