精华内容
下载资源
问答
  • Linux系统实现log日志自动清理

    千次阅读 2018-11-21 19:04:34
    Linux系统实现log日志自动清理 背景简介 在实际项目中由于服务器内存有限,人工制定的定时清理时常会忘记。因此启用linux系统定时任务去执行日志清理功能。引用文献 创建shell脚本及执行权限 touch /**/**/auto-...

    Linux系统实现log日志自动清理

    背景简介

    在实际项目中由于服务器内存有限,人工制定的定时清理时常会忘记。因此启用linux系统定时任务去执行日志清理功能。引用文献

    创建shell脚本及执行权限

    touch /**/**/auto-del-log.sh    //创建脚本文件
    cd /**/**                       //进入该目录
    chmod +x auto-del-log.sh        //修改执行权限
    

    编辑shell脚本

    vi auto-del-log.sh              //编辑执行文件
    
    #!/bin/sh
    find /**/**/logs/ -mtime +10  -name "*.log.*" -exec rm -rf {} \;  
    

    添加到自动更新脚本

    crontab -e
    

    添加执行shell脚本

    30 0 * * * /**/**/auto-del-log.sh
    

    crontab样式注释:
    # For details see man 4 crontabs

    # Example of job definition:
    # .---------------- minute (0 - 59)
    # |  .------------- hour (0 - 23)
    # |  |  .---------- day of month (1 - 31)
    # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    # |  |  |  |  |
    # *  *  *  *  * user-name  command to be executed  
    

    shell脚本说明:

    说明:  
    find:Linux查找命令,用户查找指定条件的文件  
    /home/apache-tomcat-7.0.55-13-990*/webapps/HollyProxyServer2.0/WEB-INF/logs/:需要进行清理的目标目录  
    -mtime:标准语句写法  
    +10 :数字代表天数  
    -name "*.log.*":目标文件的类型,带有log的所有文件  
    -exec:固定写法  
    rm -rf:强制删除包括目录在内的文件  
    {} \;:固定写法,一对大括号+空格+\+;  
    
    eg:
    find /usr/local/tomcat/logall/monitor/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;
    

    举例说明

    #!/bin/sh
    
    log_path=/home/tomcat/logs      //日志存放目录
    d=`date +%Y-%m-%d`              //时间获取
    d90=`date -d'7 day ago' +%Y-%m-%d`    //获取删除时间7天前
    cd ${log_path} && cp catalina.out $log_path/cron/catalina.out.$d.log             //catalina.out文件分割,复制文件到 $log_path/cron/ 目录下生成新的日志文件
    echo > catalina.out          //新的空白catalina.out文件继续记录日志
    rm -rf $log_path/cron/catalina.out.${d90}.log       //删除超时文件
    
    find ${log_path} -mtime +7  -name "*.*.log" -exec rm -rf {} \;             //删除${log_path}目录下超过7天格式为"*.*.log"的文件
    find /home/tomcat/logall/monitor/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;
    find /home/tomcat/logall/user/ -mtime +7  -name "*.log.*" -exec rm -rf {} \;
    find /home/tomcat/logall/admin/ -mtime +7  -name "*.log.*" -exec rm -rf {} \; 
    
    展开全文
  • 一、为什么要定时清理log文件? 实际工作中,我们部署到服务器的应用可能随时在写入日志,有的应用一天产生的...显然不科学,,这里记录一个高效的方法:编写Linux定时任务脚本,自动清理log日志文件。 1、创建...

    一、为什么要定时清理log文件?

    实际工作中,我们部署到服务器的应用可能随时在写入日志,有的应用一天产生的日志就较大,但是磁盘空间有限,所以磁盘常常很快就处于用完状态,并由此产生一些问题,比如服务器上应用可能挂掉,影响生产。

    二、如何清理log文件?

    估摸着时间就去看看磁盘删删log文件??显然不科学,,这里记录一个高效的方法:编写Linux定时任务脚本,自动清理log日志文件。

    1、创建shell脚本文件并赋予执行权限:

    [root@aigoV_66 ~]# touch auto_del_sjjk_log.sh    //创建shell文件
    [root@aigoV_66 ~]# chmod +x auto_del_sjjk_log.sh   //赋予文件执行权限
    关于 chmod +x 命令 :
    
        Linux下不同的文件类型,其文件名有不同的颜色:
        蓝色表示目录,绿色表示可执行文件,红色表示压缩文件,浅蓝色表示链接文件,灰色表示其它文件。
        新建的shell文件只是一个灰色的普通文件。
        执行 chmod +x 命令,此时文件变成了绿色,有了可执行权限。
        若再使用 chmod -x 命令,就去除了执行权限。

    2、编辑刚创建的shell脚本文件,写入删除命令:

    [root@aigoV_66 ~]# vi auto_del_sjjk_log.sh 
    
    #!/bin/sh
    
    find git_workspace/xny/数据接口/target/log/ -mtime +2 -name "*.log" -exec rm -rf {} \;
    ~                                                                                                                                       
    ~                                                                                                                                                                                                                                                                                                                                                                                                              
    ~                                                                                                                                       
    -- INSERT --
    关于上面命令:
    
        vi xx.sh :
        编辑xx.sh 脚本文件。
        进入编辑区后,按i键开始编辑,编辑完按Esc键,然后键入冒号:,再输入wq,回车保存退出。
    
        删除命令部分:
        find    查找命令,查找指定文件。
        git_workspace/xny/数据接口/target/log/    需要清理的文件的目录位置。
        -mtime    标准语句写法
        +2    数字指代天数,即删除2天以前的      -name "*.log.*" -exec rm -rf {} \;
        -name "*.log"    目标文件类型
        -exec    固定写法
        rm -rf    强制删除包括目录在内的文件 
            例: rm -rf abc 将 abc 子目录及子目录中所有档案删除,并且不用确认 :
        {} \;    固定写法

    3、将上面shell文件添加到Linux定时任务脚本

    
    [root@aigoV_66 ~]# crontab -e      //进入定时任务编辑页面(编辑保存方法同上)
    
    0 23 * * * /root/syncsystemtime.sh
    05 01 * * * sh /root/project/rm.sh
    0 01 * * * /root/auto_del_sjjk_log.sh    //每日凌晨一点执行该删除日志的脚本文件
    ~                                                                                                                                       
    ~                                                                                                                                       
                                                                                                                                       
    ~                                                                                                                                       
    ~                                                                                                                                       
    ~                                                                                                                                       
    "/tmp/crontab.zvmT2t" 3L, 106C

    进过上面一番操作后,服务器会在每日凌晨一点自动执行清理日志的操作。

    展开全文
  • Linux系统实现log日志自动清理背景简介 ** 背景简介在实际项目中由于服务器内存有限,人工制定的定时清理时常会忘记。因此启用linux系统定时任务去执行日志清理功能。引用文献创建shell脚本及执行权限 touch clean...

    Linux系统实现log日志自动清理背景简介

    背景简介在实际项目中由于服务器内存有限,人工制定的定时清理时常会忘记。因此启用linux系统定时任务去执行日志清理功能。引用文献

    创建shell脚本及执行权限

      touch   clean.sh //创建脚本文件 
    

    用vi 指令创建好后,需要在里面加上如下内容

    #!/bin/bash
    logs_path="/home/linux/fingerlink/tomcat/apache-tomcat-7.0.75/logs"
    find $logs_path -mtime +2-name "localhost.*.log" -exec rm -rf {} \;
    find $logs_path -mtime +2 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
    find $logs_path -mtime +2 -name "catalina.*.log" -exec rm -rf {} \;
    find $logs_path -mtime +2 -name "manager.*.log" -exec rm -rf {} \;
    find $logs_path -mtime +2 -name "host-manager.*.log" -exec rm -rf {} \;
    >$logs_path/catalina.out;
    

    然后保存就好了
    需要使用chmod 指令把权限换成 755 下面附上linux指令

    chmod 755 clean.sh //修改执行权限
    

    然后我们可以进入 你的tomcat 的logs目录下,使用 下面指令查看下当前你目录下log文件数量

    然后我们直接执行刚才写好的shell脚本

    ./clean.sh
    

    然后再次查看文件数量,发现已经清理掉了,说明shell脚本没问题

    2.脚本没问题后就可以开始写定时任务了
    所以我们先通过下面指令设置定时任务

    crontab -e
    

    操作方式和vi编辑器一样,每月1号凌晨2点执行,只保最近30天日志

    0 2 1 * * sh /home/linux/fingerlink/tomcat/apache-tomcat-7.0.75/logs/clean.sh
    

    然后保存退出,然后
    使用指令重启crontab 服务,让配置生效

    service crond restart
    
    展开全文
  • linux清理log日志文件

    千次阅读 2020-12-01 10:13:27
    1、linux自动记录日志,日志文件中包含用户的所有操作。这样虽然可以方便用户查找相关bug,但是也导致的日志文件所占据的空间越来越大。在系统能够正常满足用户使用的条件下,清理日志文件就非常有必要了 2、当...

    需要清理的场景:

    1、linux会自动记录日志,日志文件中包含用户的所有操作。这样虽然可以方便用户查找相关bug,但是也导致的日志文件所占据的空间越来越大。在系统能够正常满足用户使用的条件下,清理日志文件就非常有必要了
    2、当我们使用命令行TAB键补全时会出现异常:

    bash: cannot create temp file for here-document: No space left on device
    

    解决步骤:

    1、使用命令查看硬盘空间

    df -h 
    

    显示如下:
    在这里插入图片描述

    这时候根据提示,进入指定的目录下,而我们的一般日志文件都是在/var下面的,
    比如发现根目录爆满然后进入根目录,查看那个文件占的内存比较多,

    cd /
    sudo du -sh *
    

    我查看之后是/var文件下的下的log日志文件比较多,然后删除日志文件

    在这里插入图片描述

    使用命令对指定路径下文件进行清理:
    例如党log下面的syslog文件很大时,可以通过下面进行清理:

    echo > /var/log/syslog
    

    当我们需要维护服务器或者自己的主机时,也可以定时进行清理:
    链接如下:

    https://www.cnblogs.com/kaituorensheng/p/4494321.html
    
    展开全文
  • Linux系统实现log日志自动清理 Linux系统实现log日志自动清理 背景简介 在实际项目中由于服务器内存有限,人工制定的定时清理时常会忘记。因此启用linux系统定时任务去执行日志清理功能。引用文献 创建...
  • 1.做自动部署系统时精简的一个脚本,主要功能是清理所有目录的日志 2.根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志 3.扩展,因为脚本采用mtime(最后...
  • /mnt/clearCache/mem.log date >> /mnt/clearCache/mem.log echo "Memory usage before | [Use:${used}MB][Free:${free}MB]" >> /mnt/clearCache/mem.log if [ ${free} -le 6000...
  • 一类:不能删日志文件清理(docker日志清理) #!/bin/sh echo "==================== start clean docker containers logs ==========================" logs=$(find /var/lib/docker/containers/ -name *-json....
  • 游戏服务器运行过程中,每天都会产生...一.linux定时清理log文件 1.删除文件命令: find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 实例命令: find /opt/soft/log/ -mtime +3
  • Linux自动清理日志

    2016-04-12 13:52:36
    首先创建cleanTomcatLog.sh 清理tomcat2-3-4的日志 #!/bin/sh echo "--------------------tomcat2:`date +%Y%m%d`-----------------------" >> /root/clean/tomcat.log sh /root/cleanLog.sh /mnt/tomcat2/logs/ ...
  • linux 自动删除N天前的log文件

    千次阅读 2016-03-18 10:37:34
    linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。不用你去每天惦记着是否需要清理日志,...
  • linux自动清理日志脚本

    千次阅读 2017-06-08 19:24:49
    脚本: #!/bin/bash for j in `du -h --max-depth=0 /home/zhanghu/*/_package/run/ |grep G|grep -v '/home/zhanghu/$' |awk ...待研究cron自动执行: bash /home/zhanghu/clearlog/_package/clearlog.sh
  • " exit 1 fi } do_del_log() { find ./logs -type f -ctime +7 | xargs rm -rf #清理7天前创建的日志 cat /dev/null > nohup.out #清空当前目录的nohup.out文件 } if do_split ;then do_del_log echo "nohup is ...
  • 若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动清理相关文件。 2.1 创建shell: touch /home/weblogic/luojie/script/auto-del-30-days-...
  • linux自动内存清理

    千次阅读 2017-11-04 21:59:42
    下边是内存清理命令,把这个写到一个linux shell的free.sh文件中。要清理时运行一下就可以了。#!/bin/bash free -m sync echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/vm/drop_caches echo 3 > /proc/sy
  • Linux下清理日志及自动清理

    万次阅读 2018-07-12 19:00:55
    liunx下清理日志一、find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;此处我以tomcat下 logs目录下日志为例做演示:在清理之前我的tomcat日志是这样的
  • linux UINX 系统log信息详解

    千次阅读 2012-09-24 16:43:57
    /var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/var/spool/mail 二、:/var/log/ 系统的引导日志:/var/...
  • shellLogPath=/root/Logs/log/shellLog.txt dirPath=/root/Logs/log/1/ backupPath=/root/Logs/backup/ dir=$(ls -l $dirPath |awk '/^d/ {print $NF}') tenDayAgo=$(date -d "-10 day" +%Y%m%d) yesterday=$(date -...
  • linux实现按天生成日志文件并自动清理前篇文章中讲到如何在Linux crontab创建每秒执行的方法,高人可能早意识到日志文件没做处理,假如没人工处理久了日后越来越大肯定会出现问题,当然人工处理也不现实。...
  • 1、创建脚本目录 cd /usr/local sudo mkdir scriptTask ...sudo touch del_90_log.sh 3、配置脚本 sudo vi del_90_log.sh #!/bin/sh find /XX -name "XX_server2.out0*" -mtime +90 -exec rm -f {} \;...
  • linux定时任务自动清空超过100M的log日志 服务器遭受dos***,产生大量操作日志,导致空间爆满无法访问。我们的解决方法是使用linux定时清空log日志的方法来解决,具体命令如下: (定时任务)30 21 * find /alidata/...
  • Linux 清理、截断Oracle监听日志文件(listener.log
  • 编写脚本auto-del-30days-ago-log.sh #!/bin/bash cur_dateTime=$(date +"%Y-%m-%d %H:%M:%S") logPath=/usr/local/01-sit-auto-deploy-tomcat-8081/applogs/msps-fstore/backup find ${logPath} -mindepth 1 -...
  • 【/var/log】 /var 所有服务的登录的文件或错误信息文件(LOG FILES)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读的邮件的默认存放地点为/var/spool/mail [root@bogon log]# pwd /var...
  • 根据给定日志目录,删除时间 结合crontab进行清理日志,清理完成后,后在/var/log/deltelog/ 生成按照月的清理日志  3.扩展,因为脚本采用mtime(最后修改时间)进行删除,所以可以适用于删除过期备份等,不受文件名称的...
  • linux服务器自动切割并清理日志 由于nginx的日志会不停地增大,所以需要我们自己去切割日志,方便管理,需要达到以下的效果: 1.按日期自动切割日志,最小单位是天。 2.当日志总量超过一定量时,自动直接清理日志,...
  • Linux系统自动清理日志的方法 2013-04-15 15:07 peida 博客 字号:T | T Linux 是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,本文分享...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,060
精华内容 13,624
关键字:

linux自动清理log

linux 订阅