首页 > Linux系统运用 > nginx服务器上的网站日志如何按日期来命名?

nginx服务器上的网站日志如何按日期来命名?

作者: 分类:Linux系统运用 点击: 9,005 次

    在网站没有问题的情况下,这个网站日志看上去没什么作用。但一旦网站有情况发生,这个网站日志可是会给我们很好的参考价值的。日志中会一直记录着网站运营的状况。前段时间,网站出了状况,于是就想到了网站日志。进FTP一看,晕死,这个日志好大呀,有5G那大,这也太吓人了,要打开这么大的日志文本,就已经非常难了,更合况还要从网上下载下来看。为什么不让网站日志按日期来命名,让它每天都有单独的日志呢?

    我的网站不是apache服务器,没有apache那么灵活。那么,nginx服务器上的网站日志怎样才能按日期来命名

    第一步:创建 log_new_del.sh 这样一个shell命令文件,

    vim log_new_del.sh

    第二步:把下面的代码放到log_new_del.sh文件中:

    LOGS_PATH=/alidata/log/nginx/access/

    YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)

    #按天切割日志
    mv ${LOGS_PATH}/wanlimmc.log ${LOGS_PATH}/wanlimmc_${YESTERDAY}.log
    mv ${LOGS_PATH}/ssmay.log ${LOGS_PATH}/ssmay_${YESTERDAY}.log

    #向nginx主进程发送USR1信号,重新打开日志文件,否则会继续往mv后的文件写数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。如果不这样操作导致日志切割失败。

    kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`

    #删除3天前的日志

    find ${LOGS_PATH} -mtime +3 -name "wanlimmc*" | xargs rm -f
    find ${LOGS_PATH} -mtime +3 -name "ssmay*" | xargs rm -f
    exit 0

    第三步:设置定时执行log_new_del.sh命令:

    要想定时执行,就要使用crontab。把log_new_del.sh命令放到crontab中:

    vim /etc/crontab    #进入编辑crontab

    59 23 * * * root /bin/sh /usr/local/log_new_del.sh #在每天23点59分开始执行log_new_del.sh命令

    注:sh命令路径不同的服务器可以路径不一样,我这里以/bin/sh为例,一般情况直接使用 sh就可以了。这样,我们就完成了对nginx服务器下的网站日志的命名按日期来了。而且定时删除3天前的日志。



文章作者:码不停蹄
本文地址:https://wanlimm.com/77201903147216.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

上一篇:
下一篇:

或许你会感兴趣的文章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.