-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy path7.sh
More file actions
37 lines (30 loc) · 1.54 KB
/
7.sh
File metadata and controls
37 lines (30 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
## shell脚本一天一练系列 -- Day7
## 今日脚本需求:
## 有一台服务器作为web应用,有一个目录(/data/web/attachment)
## 不定时地会被用户上传新的文件,但是不知道什么时候会上传。
## 所以,需要我们每5分钟做一次检测是否有新文件生成。
## 写一个shell脚本去完成检测。检测完成后若是有新文件,
## 还需要将新文件的列表输出到一个按年、月、日、时、分为名字的日志里。
## 思路: 每5分钟检测一次,那肯定需要有一个计划任务,每5分钟去执行一次。
## 脚本检测的时候,就是使用find命令查找5分钟内有过更新的文件,
## 若是有更新,那这个命令会输出东西,否则是没有输出的。
## 固,我们可以把输出结果的行数作为比较对象,看看它是否大于0。
### ------- 分割线,以下为脚本正文 -------
#!/bin/bash
# author: aming (vx: lishiming2009)
# version: v1
# date: 2023-09-13
## 日志文件名,包含年月日时分
d=`date +%Y%m%d%H%M`
basedir=/data/web/attachment
## find找到5分钟之内新产生的文件,并把文件列表写入一个文件里
find $basedir/ -type f -mmin -5 > /tmp/newf.txt
## 如果文件里有内容,把文件改名字,即我们要的文件列表日志文件
if [ -s /tmp/newf.txt ]; then
/bin/mv /tmp/newf.txt /tmp/$d
fi
<<'COMMENT'
关键知识点总结:
1)find的 -mmin 选项以分钟为时间单位查找
2)[ -s filename ] 表示当文件存在,并且文件内容不为空时,条件成立
COMMENT