在工作中,运营人员需要统计到push被点击的次数,客户端当push被点击打开的时候,服务端会记录到日志文件push_feed_back_log.log中,格式如下:
2015-04-13 00:05:51,android,queryItemList,81a9831f09baf5f876bf3244db6f2392,pinpait_2862
2015-04-13 00:06:21,android,queryItemList,1e570c6400ef8e65ad07d5aa865c7779,pinpait_2862
2015-04-13 00:06:30,android,queryItemList,1e570c6400ef8e65ad07d5aa865c7779,pinpait_2862
2015-04-13 00:08:20,android,queryItemList,5bbb9bcebf819d2d6f91418982a43414,campaign_568
2015-04-13 00:09:41,android,queryItemList,9c96753a365ecc8bfb207fdc9c519c6c,campaign_568
1,如果每次用linux命令去统计,浪费时间,为了提高效率
于是写了统计的shell脚本:
#!/bin/sh date=`date -d -1day +%Y-%m-%d`; masterPath=/home/www/logs/taofen8/master; apiPath=/home/www/logs/taofen8/api; path=/home/www/logs/taofen8; hisPath=/data/history/taofen8; log=$path/master/push_feed_back_log.log.$date echo "==============start=================="; if [ ! -f "$log" ]; then #判断文件是否存在 masterPath=$hisPath/master; apiPath=$hisPath/api; fi echo "==============date$date===================" > /tmp/mymaster.txt; cat $masterPath/push_feed_back_log.log.$date |awk -F "," '{a[$2" "$5]+=1}END{for(i in a) printf "%s %s\n",i,a[i]}' | sort -k 3 -n -r | head -n 15 >>/tmp/mymaster.txt echo "===============API==================" >> /tmp/mymaster.txt; cat $apiPath/push_feed_back_log.log.$date |awk -F "," '{a[$2" "$5]+=1}END{for(i in a) printf "%s %s\n",i,a[i]}' | sort -k 3 -n -r | head -n 15 >>/tmp/mymaster.txt echo "=================end================" >> /tmp/mymaster.txt;
2,服务器授权并执行shell脚本,就会将统计结果输出到/tmp/mymaster.txt文件中:
格式如下:
==============date2015-04-12===================
android pinpait_2862 93
android campaign_568 66
android pinpait_2930 25
iphone campaign_568 23
===============API==================
android campaign_568 702
android pinpait_2862 239
android pinpait_2930 158
iphone campaign_568 116
iphone pinpait_2862 77
=================end================
相关推荐
关于notify-via-pushover 我希望能够向一组不同的手持设备发送推送通知,我找到了 Pushover.net,这是一项支持 ... 这个工具最初是为了与 Naemon 和 op5 一起使用来发送通知而编写的,但采用这个脚本来适应其他领域
Git Bash是Windows操作系统中用于使用Git命令行工具的模拟环境,它使得在Windows上可以方便地执行类Unix命令,如bash shell脚本。Git Bash包含了Git的所有功能,并且提供了类似于Linux终端的界面,这对于习惯于...
"Shell"标签表明"耸肩版本控制"可能依赖于Shell脚本,这是一系列用于自动化Unix或类Unix操作系统任务的命令。通过Shell脚本,开发者可以编写自定义的工具或脚本来执行Git操作,如提交、推送、拉取等,而无需直接与...
1. **版本控制**:Git能够记录代码的每一次修改,用户可以轻松查看历史版本,比较不同版本之间的差异,并能恢复到任何历史状态。 2. **分支管理**:Git的分支系统是其强大之处,开发者可以快速创建、切换和合并分支...
1. **Perl的历史**:Perl最初是为了替代UNIX上的shell脚本而设计的,随着时间的发展,它逐渐演变成了一种广泛应用于多种领域的通用编程语言。 2. **Perl的概念**:Perl是一种解释型语言,意味着它可以逐行解释并执行...
JavaScript(简称JS)和Visual Basic Script(简称VBS)是两种常见的脚本语言,广泛应用于网页和系统自动化中。这份"JS/VBS教程chm手册"涵盖了这两种语言的基础到高级概念,是学习和提升这两种技术的宝贵资源。 ...
1. **设备连接**:adb可以通过USB或Wi-Fi连接到Android设备,提供了一个桥梁,使得开发者可以将应用安装到设备、传输文件、执行shell命令以及获取设备日志。 2. **安装应用**:使用`adb install`命令,开发者可以将...
- **脚本编写**:了解如何编写Shell脚本来自动化Git任务,提高开发效率。 8. **实际应用**: - **Semcomp Beta项目**:可能是参与者们共同协作的一个编程竞赛或教学项目,通过Git进行团队协作和代码管理。 在这...
4. **脚本(Scripting)**:Unix shell允许编写shell脚本,实现自动化任务,如`for file in *.txt; do echo $file; done`将列出所有.txt文件。 Git则是版本控制系统的代表,由Linus Torvalds为Linux内核开发。Git的...
Perl集成了多种语言的特点,包括C、C++、shell script、sed以及awk的语法,最初被设计用于取代UNIX中的sed和awk,以进行数据汇总和报表生成。 随着时间的发展,Perl的功能不断扩展,现在几乎可以用于任何类型的编程...
3. **自动化工作流**:结合shell脚本,Kpage可以实现定时发送短信,如定时备份提醒、报警通知等。 4. **教育与研究**:学习移动通信和短信网关工作原理时,Kpage是一个理想的实践工具。 通过了解和使用Kpage,用户...
在Linux环境下,通常通过Shell脚本来控制Jetty的启动和关闭,还需要注意的是Linux下的权限设置和环境变量配置。 - **2.6.1 系统变量的设置**: 如`JAVA_HOME`和`JETTY_HOME`。 - **2.6.2 命令参数**: 可以通过命令行...
第1章 Java语言的GUI历史 2 1.1 最初的AWT 2 1.2 Swing工具包 3 1.3 Eclipse的诞生 3 1.4 Eclipse贡献SWT工具包 5 1.4.1 SWT的结构 6 1.4.2 SWT所支持的操作系统 6 1.5 Sun AWT/Swing与Eclipse SWT 7 ...