看板FreeBSD
标 题Re: date 指令
发信站中山计中美丽之岛 (Mon Apr 26 20:20:02 2004)
转信站ptt!ctu-reader!ctu-peer!Spring!news.nctu!news.nsysu!Formosa
> ==> [email protected] (龙五手上只要有枪) 的文章中提到:
> date 指今有没有办法直接输出这样的格式 27/Apr/2004
> date +'%m' , Numeric month, a number from 1 to 12.
> 有没有其也参数可以输出 mount的 short name ?
> 我现在有两种替代方式
> 1.
> set date=`php -r "echo date('d/M/Y', mktime(0,0,0,4,27,2004));"`
> echo $date
> 前提是 要先安装 php-cli
> 2.
> Y=`date +'%Y'`
> M=`env LC_TIME=C date | awk '{print $2}'`
> d=`date +'%d'`
> date="$d/$M/$Y"
> echo $date
> 我这样做是想写一个 script 统计 httpd-access.log 的每日流量
> cd /var/log
> cat httpd-access.log | awk -v date=$date -v count=0 -v byte=0 'match($4,date) && $6=="\"GET" && $9=="200" {count++;byte+=int($10); print count,byte}' |
tail -1
> 大家有没有好的想法, 请多多指教
一天的流量?不用这麽麻烦啦,apache 自己有附 log 档的 rotate
程式,找一下 apache 网站,他会依 timestamp 来切割每日的 log
,date 指令本身可以产生特定时间的 timestamp,然後配合你的统
计程式来统计即可,并可删除旧的 log 档,这样你的 log 档也不会
持续暴增,也不会因为 newsyslog 导致 apache 不继续写入新的 log
档。
当然用 php 也是可以啦,不过不是每台电脑都有灌 PHP,这样弹性就
不如几乎每个作业系统都会附的 date 指令了。
--
* Origin: 中山大学-美丽之岛BBS * From: 140.127.179.242 [已通过认证]