解决Linux中nohup.out日志过大问题

 更新时间:2024年05月29日 09:00:00   作者:Mcband  
这篇文章主要介绍了解决Linux中nohup.out日志过大问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Linux中nohup.out日志过大问题

关于Linux中nohup.out日志过大问题,可以通过设置定时任务来定期清理,具体操作是在nohup.out 所在目录创建一个ClearNohup.sh 脚本,通过定时任务执行该脚本让其每周清理一次,防止nohup文件过大。

#!/bin/bash
# Author: Ljohn
# Last Update: 2018.02.24
# Description: nohup.out 日志分割
 
this_path=$(cd `dirname $0`;pwd)   #根据脚本所在路径
current_date=`date -d "-1 day" "+%Y%m%d"`   #列出时间
cd $this_path
echo $this_path
echo $current_date  
 
do_split () {
    [ ! -d logs ] && mkdir -p logs
    split -b 10m -d -a 4 ./nohup.out   ./logs/nohup-${current_date}  #切分10兆每块至logs文件中,格式为:nohup-xxxxxxxxxx
    if [ $? -eq 0 ];then
        echo "Split is finished!"
    else
        echo "Split is Failed!"
        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 split Success"
else
    echo "nohup is split Failure"
    exit 2
fi
 
# crontab -e 添加定时任务:每周第一天的1点执行一次
#0 1 * * */1 /server/scripts/clearNohup.sh &>/dev/null

第二步执行定时任务

 crontab -e    #添加定时任务:每周第一天的1点执行一次

注意事项

如果想通过手动执行该脚本来达到清理的目的,需要设置该脚本的权限为可执行

如何处理nohup.out的文件过大

linux中使用nohup的方式启动java程序导致控制台的输出会加载到nohup.out文件里,日积月累导致文件过大占用硬盘。

处理方法

创建清理文件clear.sh 内容如下:

this_path=$(cd `dirname $0`;pwd) #根据脚本所在路径
current_date=`date -d "-1 day" "+%Y%m%d"` #列出时间
cd $this_path
echo $this_path
echo $current_date
do_split () {
        [ ! -d logs ] && mkdir -p logs
        #切分10兆每块至logs文件中,格式为:nohup-xxxxxxxxxx   ./logs/nohup-${current_date}表示当前目录的logs可以自主修改
        split -b 10m -d -a 4  nohup.out的文件位置  ./logs/nohup-${current_date} 
        
        if [ $? -eq 0 ];then
                echo "Split is finished!"
        else
                echo "Split is Failed!"
                exit 1
        fi
}
do_del_log() {
		#清理3天前创建的日志   ./logs表示当前目录的logs可以自主修改
        find ./logs -type f -ctime +3 | xargs rm -rf 
        cat /dev/null > nohup.out的文件位置 #清空当前目录的nohup.out文件
}
if do_split ;then
do_del_log
echo "nohup 切割成功"
else
        echo "nohup 切割失败"
        exit 2
fi

在linux的crontab中添加任务

sudo /etc/init.d/cron start 启动crontab
sudo /etc/init.d/cron stop 停止crontab
sudo /etc/init.d/cron status crontab状态
sudo /etc/init.d/cron restart 重启crontab

在 vi /etc/crontab中添加任务

31 1   * * *   root    /data/clearNohup/clearPricenohup.sh &>/dev/null  #每日1点31执行 ,根据需要自行修改

整体像这样

重启crontab即可

可以测试一下 sh clear.sh &>/dev/null

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux下配置yum源方法详解

    linux下配置yum源方法详解

    本篇文章主要介绍了linux下配置yum源方法详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • apache虚拟主机配置的三种方式(小结)

    apache虚拟主机配置的三种方式(小结)

    本文主要介绍了apache虚拟主机配置的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Ubuntu下pycharm无法导入类的解决方法

    Ubuntu下pycharm无法导入类的解决方法

    下面小编就为大家分享一篇Ubuntu下pycharm无法导入类的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • telnet Connection refused端口不通如何处理

    telnet Connection refused端口不通如何处理

    本文介绍了telnet命令的基本用途及排查telnet连接拒绝的处理思路,telnet主要用于测试网络连接,如遇到连接问题,可能是由于防火墙未开放或目的主机服务未启动,文章通过实际例子解释了telnet命令的作用,并提供了解决网络连接问题的方法
    2024-10-10
  • environments was not found on the java.library.path 问题的解决方法

    environments was not found on the java.library.path 问题的解决方法

    The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path 问题的解决方法,需要的朋友可以参考下
    2016-08-08
  • win10 + Ubuntu20.04 LTS双系统引导界面美化

    win10 + Ubuntu20.04 LTS双系统引导界面美化

    这篇文章主要介绍了win10 + Ubuntu20.04 LTS双系统引导界面美化,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Apache James配置连接达梦数据库的步骤

    Apache James配置连接达梦数据库的步骤

    本文介绍了如何配置Apache James邮件服务器以连接达梦数据库,包括导入JDBC驱动、修改配置文件和SQL语句,并提供了解决启动报错的方法
    2024-09-09
  • 详解Linux系统中虚拟设备文件的各种实用用法

    详解Linux系统中虚拟设备文件的各种实用用法

    这篇文章主要介绍了Linux系统中虚拟设备文件的各种实用用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • linux如何为一台实例分配一个公网IP地址

    linux如何为一台实例分配一个公网IP地址

    在本篇文章中我们给大家分享了一篇关于linux如何为一台实例分配一个公网IP地址的知识内容,有需要的朋友们学习下。
    2018-10-10
  • Linux知识点小结

    Linux知识点小结

    这篇文章主要为大家分享了Linux知识点,帮助大家更加详细的学习Linux
    2016-01-01

最新评论