用logrote和split分割nohup.out日志

本文介绍了在生产环境中使用nohup运行JAR包时产生的大量日志问题,提出通过split分割和logrotate压缩日志的方法来解决磁盘存储占用过高的问题。同时,也提到了如何通过重定向日志输出到/dev/null来减少日志文件生成。

背景:在生产环境中使用 nohup 运行 JAR 包时,会产生大量日志文件,导致磁盘存储占用过高,例如每天可能产生约30GB的日志数据。

解决方案:

  1. 使用 split 分割日志文件:

    this_path=$(cd /app/query4a/; pwd)
    echo $this_path
    
    current_date=$(date -d "-1 day" "+%Y%m%d")
    echo $current_date
    
    cp /app/query4a/nohup.out /app/query4a/split_log/${current_date}.log
    cat /dev/null > /app/query4a/nohup.out
    
    • 缺点:当日志量较大时,执行速度较慢,并且清空后的 nohup 文件需要一段时间才能开始存储新的日志数据。
  2. 使用 logrotate 分割并压缩日志:

    • 创建 /etc/logrotate.d/query4a 脚本,内容如下:

      /app/query4a/nohup.out {
          daily             # 每天分割一次
          #size 5M          # 源文件小于5M时不分割
          rotate 180        # 保留180个旧日志文件
          copytruncate      # 复制并清空日志文件,而不是创建新文件
          notifempty        # 当日志文件为空时不分割
          missingok         # 如果日志文件不存在,则忽略错误
          dateext           # 切割后的文件添加日期作为后缀
          dateyesterday     # 使用昨天的日期作为分割后日志的后缀
          dateformat -%Y-%m-%d  # 指定日期格式
          compress          # 压缩旧日志文件
          create 0644 appuser appuser  # 创建新日志文件的权限和所属用户
      }
      
    • 该配置会每天对日志文件进行分割,并保留180个旧日志文件。压缩旧日志文件以节省磁盘空间,并确保新的日志文件会及时生成。

  3. 在启动程序时将日志输出重定向到 /dev/null

    nohup java -jar xx.jar > /dev/null 2>&1 &
    
    • 如果不希望生成 nohup.out 日志文件,可以在启动程序时将日志输出重定向到 /dev/null。这样可以避免产生大量的日志文件,并减少对磁盘存储的影响。
<think>我们正在处理用户的问题:如何在Linux系统中查看nohup.out日志文件。 根据用户提供的引用信息,我们知道nohup.out是由nohup命令生成的日志文件,默认位于当前运行目录下。 用户询问查看该日志文件的命令,因此我们需要提供一些常用的查看日志的命令。 常见的查看日志文件的方式包括: 1. 使用cat命令:适合查看较小的文件。 2. 使用tail命令:适合查看日志的尾部,特别是实时查看新增的日志。 3. 使用less命令:适合查看大文件,支持上下翻页、搜索等。 4. 使用head命令:查看日志文件的开头部分。 考虑到nohup.out文件可能会很大(如引用中提到的日志过大的问题),我们通常不推荐用cat一次性显示整个文件,而是推荐使用tail或less。 根据引用[1],我们知道nohup.out默认在当前目录下,所以我们需要先进入该目录或者指定路径。 因此,我们可以提供以下命令: 1. 实时查看最新日志(动态刷新): tail -f nohup.out 2. 查看文件末尾的N行(例如100行): tail -n 100 nohup.out 3. 查看文件开头的N行(例如100行): head -n 100 nohup.out 4. 使用less分页查看(可以搜索、翻页): less nohup.out 另外,如果用户已经按照引用[2][3][4]中的方法对日志进行了分割,那么可能需要查看分割后的日志文件,此时文件名可能带有日期后缀(如nohup.out.20250522),同样可以使用上述命令查看。 注意:如果nohup.out文件非常大,使用less命令是更安全的选择,因为它不会一次性加载整个文件。 最后,我们按照要求生成相关问题。</think>### Linux 查看 nohup.out 日志文件的命令 在 Linux 中查看 `nohup.out` 日志文件(默认位于命令执行的当前目录),常用命令如下: 1. **实时动态查看(推荐)** ```bash tail -f nohup.out ``` - 实时显示日志尾部新增内容,按 `Ctrl+C` 退出[^2][^4] 2. **查看末尾 N 行内容** ```bash tail -n 100 nohup.out # 查看最后100行 ``` 3. **分页查看(大文件适用)** ```bash less nohup.out ``` - 支持上下翻页(方向键)、搜索(`/关键词`)、退出(`q`) 4. **查看文件开头** ```bash head -n 50 nohup.out # 查看前50行 ``` 5. **完整输出(小文件适用)** ```bash cat nohup.out ``` --- ### 注意事项 1. 如果文件过大(如引用中提到的日志膨胀问题),优先使用 `tail -f` 或 `less` 避免内存溢出[^1][^3] 2. 若重定向过日志路径(如 `nohup command > /path/custom.log`),需到指定路径查看[^1] 3. 对于分割后的历史日志(如 `nohup.out.20240522`),直接替换文件名即可查看: ```bash less /path/to/nohup.out.20240522 ``` --- ### 日志管理建议 为防止 `nohup.out` 过大(如引用中提到的定时分割方案): - 使用 `logrotate` 工具自动分割压缩 - 或通过 `crontab` 定时执行清理脚本(参考引用[2][^2][^3]): ```bash # 示例脚本:每日备份并清空日志 cp nohup.out nohup.out.$(date +%Y%m%d).bak cat /dev/null > nohup.out ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术蜜糖罐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值