linux服务器日志切割

linux服务器日志切割

  • linux服务器日志切割
    • 思路
    • 具体操作
    • 总结

linux服务器日志切割

现在网上比较成熟的有 logrotatecronolog 两种工具,也有很多实现,我们这里不使用这两种,所以不多赘述,只讲讲使用最基本的linux切割日志的方法。

思路

因为每天产生的日志都会输出到 catalina.out 这个文件中,我们可以在每天晚上凌晨的时候把 catalina.out 这个文件复制一份,文件名写为:catalina-2019-02-25.log ,然后把catalina.out 清空,写个定时任务每天执行这个操作,这样就实现了日志切割的效果。

具体操作

  1. 创建新脚本:
    在脚本目录下 输入 vi AutoCutLogs.sh 没有该文件的话就会新建文件

输入:

    #复制日志文件内容到新的文件中
    cp /home/tomcat/logs/catalina.out /home/tomcat/logs/catalina.out_`date -d '-1 days' +%Y%m%d`.log
    
    #清空tomcat默认日志输出文件catalina.out
    echo "" > /home/tomcat/logs/catalina.out
    
    #删除过期的日志文件
    find /home/tomcat/logs/ -mtime +60 -name "*" -exec rm -rf {} \;

注:60: 60天以前的文件, name “*” 所有文件,可以看情况修改, “.log” 后缀为 log 的文件

  1. 给脚本赋予执行权限 (在脚本文件夹下)
    chmod +x AutoCutLogs.sh  
  1. 在任意目录下输入 crontab -e 创建新定时任务:
    0 0 * * * /home/tomcat/sh/AutoCutLogs.sh >/dev/null 2>&1

保存退出。 就可以了。
注: 0 0 指的凌晨,30 11 指的是 11点30分

总结

这样就实现了日志的切割。大家可以过几天再看看效果。

你可能感兴趣的:(工具,学习)