问题与需求:
一个web服务跑论坛,每天都有很多用户会上传文件到服务器里,假设这些文件会保存在/data/www/attachment目录下,我想知道用户大概会在什么时候上传文件? 从而了解用户的行为习惯
解决思路:
1. 判断新文件是否被上传到了服务器里?以5分钟为一个间隔,进行检测。
2. 确定这些文件是什么时候被上传的?
3. 将新文件的列表输出到一个按年、月、日、时、分为名字的日志里,以方便我们进行查看分析
4. 写一个shell脚本来帮我们自动实现这个检测和记录的过程,当然只检测一次是不够的,需要每隔一段时间进行一次检测,所以需要把这个脚本添加到linux的任务计划里,规定它假设每隔5分钟执行一次,想想都省时省力
shell脚本:/root/new_file.sh
#! /bin/bash
date_log=`date -d "-5 minutes" +%Y%m%d%H%M`.log
basedir=/data/web/attachment
##Examine if any new files are uploaded in the last 5 minutes
find $basedir -type f -mmin -5 > /tmp/1.txt
n=`wc -l /tmp/1.txt`
##If new files appear, write them into date_log
if [ $n -gt 0 ]
then
cat /tmp/1.txt > /tmp/$date_log
fi
将shell脚本添加到任务计划里去:
crontab -e
*/5 * * * * sh new_file.sh
本文出自 “模仿游戏” 博客,谢绝转载!
原文:http://kevinjin117.blog.51cto.com/11655131/1831871