birk 发表于 2018-8-27 12:25:01

shell案例 - 统计用户上传文件的时间

  问题与需求:
  一个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

页: [1]
查看完整版本: shell案例 - 统计用户上传文件的时间