天天看点

nginx日志切割shell脚本实现nginx日志切割

给脚本加上执行权限

<code>chmod +x /opt/nginx/cut-nginxlog.sh</code>

使用bash 或sh、root来执行bash shell脚本:

说明:

从command&gt;/dev/null说起

其实这条命令是一个缩写版,对于一个重定向命令,肯定是a &gt; b这种形式,那么command &gt; /dev/null难道是command充当a的角色,/dev/null充当b的角色。这样看起来比较合理,其实一条命令肯定是充当不了a,肯定是command执行产生的输出来充当a,其实就是标准输出stdout。所以command &gt; /dev/null相当于执行了command 1 &gt; /dev/null。执行command产生了标准输出stdout(用1表示),重定向到/dev/null的设备文件中。

2&gt;&amp;1

几个基本符号及其含义

/dev/null 表示空设备文件

0 表示stdin标准输入

1 表示stdout标准输出

2 表示stderr标准错误

有时候希望将错误的信息重新定向到输出,就是将2的结果重定向至1中就有了"2&gt;1"这样的思路,如果按照上面的写法,系统会默认将错误的信息(STDERR)2重定向到一个名字为1的文件中,而非所想的(STDOUT)中。因此需要加&amp;进行区分。就有了 2&gt;&amp;1 这样的用法,这里&amp;相当于等效于标准输出

创建dellog.sh文件,路径/opt/nginx

vi dellog.sh

#!/bin/sh

find /opt/nginx/logs/nginx/error -mtime +7 -type f -name *.log | xargs rm -f

find /opt/nginx/logs/nginx/access -mtime +7 -type f -name *.log | xargs rm -f

#定期删除七天前的日志文件

有时为了验证脚本执行内容可以打印到test.log查看是否正确的:

0 0 * /opt/nginx/cut-nginxlog.sh &gt; /var/tmp/test.log 2&gt;&amp;1

      本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/2044792,如需转载请自行联系原作者