You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

/var/log/lastlog文件体积过大,如何通过Ubuntu原生方式用logrotate进行轮转?

/var/log/lastlog文件体积过大,如何通过Ubuntu原生方式用logrotate进行轮转?

嘿,这个问题我太熟悉了!首先得给你提个醒:/var/log/lastlog可不是普通的文本日志,它是二进制格式的用户登录记录文件,直接套用普通logrotate规则只会搞乱数据,得用Ubuntu原生的正确姿势来处理。

下面是具体步骤,全是系统自带工具,不用额外装第三方软件:

  1. 创建专属的logrotate配置文件
    打开终端,运行命令创建配置文件:

    sudo nano /etc/logrotate.d/lastlog
    

    然后把下面的配置内容粘贴进去:

    /var/log/lastlog {
        monthly
        rotate 3
        create 664 root utmp
        postrotate
            /usr/bin/lastlog -c
        endscript
    }
    

    我给你解释下每个参数的作用:

    • monthly:每月自动轮转一次,你也可以改成weekly(每周)或者daily(每天),根据你的需求调整
    • rotate 3:保留最近3份轮转后的旧日志,超过的会自动删除
    • create 664 root utmp:轮转完成后,自动创建新的lastlog文件,权限和原文件完全一致,避免系统读取出错
    • postrotate块里的lastlog -c:这是Ubuntu原生的命令,专门用来清空并重建lastlog文件——毕竟是二进制文件,直接切割没用,这个命令才是安全重置的正确方式
  2. 测试配置并生效
    先测试配置有没有语法错误,运行调试命令(不会实际修改文件):

    sudo logrotate -d /etc/logrotate.d/lastlog
    

    如果输出没有报错,就可以手动执行一次轮转,验证效果:

    sudo logrotate /etc/logrotate.d/lastlog
    

    执行完你再用ll /var/log/lastlog*看看,就能看到旧的日志被重命名(比如lastlog.1),新的空文件已经创建好了。

  3. 额外注意事项

    • 千万别手动删除或者直接切割lastlog文件!二进制文件结构特殊,乱改会导致系统无法读取用户登录记录
    • 如果需要查看旧的轮转日志,可以用lastlog -f /var/log/lastlog.1这样的命令来读取

备注:内容来源于stack exchange,提问作者Tms91

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 09:09:46