##cut nginx log
mkdir -p /data/logs/nginx/${date}/${day}
mv /data/logs/nginx/access.log /data/logs/nginx/${date}/${day}/access_${time}.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
gzip /data/logs/nginx/${date}/${day}/access_${time}.log
find /data/logs/nginx/ -name "access_*.gz" -mtime +60 -exec rm -rf '{}' \;
最后的find命令是模糊查询 /data/logs/nginx/ 文件夹下 "access_*.gz"文件的修改时间是60秒内的,查询到之后执行删除操作;
遇到的问题:
今天在跑脚本的时候看到如下报错:
1、find: paths must precede expression
然后就上网查了一下,结果搜索到一篇,大概是这样说的:多文件的查找的时候需要增加引号
find /data/logs/nginx/ -name "access_*.gz" -mtime +60 -exec rm -rf '{}' \;
2、 find: missing argument to `-exec'
exec的用法如下:
-exec 空格 命令 空格 {} 空格\;
注意{}要加单引号,否则centos上运行不成功