ubuntu

如何在Ubuntu中设置日志保留策略

小樊
54
2025-08-31 04:08:02
栏目: 智能运维

在Ubuntu中设置日志保留策略,可以通过配置rsysloglogrotate来实现。以下是两种方法的详细步骤:

方法一:使用 rsyslog

  1. 编辑 rsyslog 配置文件: 打开 /etc/rsyslog.conf 文件进行编辑。

    sudo nano /etc/rsyslog.conf
    
  2. 配置日志轮转: 在文件末尾添加以下内容来配置日志轮转:

    # 每天轮转一次日志
    $SystemLogRateLimitInterval 24h
    $SystemLogRateLimitBurst 5
    
    # 日志文件路径和大小限制
    $OmitLocalLogging on
    $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
    $IncludeConfig /etc/rsyslog.d/*.conf
    
    # 日志文件保留策略
    $FileCreateMode 0640
    $DirCreateMode 0755
    $Umask 0022
    $PrivDropToUser syslog
    $PrivDropToGroup adm
    
    # 日志文件路径
    local7.* /var/log/myapp.log
    
    # 日志轮转配置
    /var/log/myapp.log {
        daily
        rotate 7
        compress
        delaycompress
        missingok
        notifempty
        create 0640 root adm
    }
    
  3. 重启 rsyslog 服务: 保存并关闭文件后,重启 rsyslog 服务以应用更改。

    sudo systemctl restart rsyslog
    

方法二:使用 logrotate

  1. 创建或编辑 logrotate 配置文件: 创建一个新的配置文件或编辑现有的配置文件,例如 /etc/logrotate.d/myapp

    sudo nano /etc/logrotate.d/myapp
    
  2. 配置日志轮转: 在文件中添加以下内容来配置日志轮转:

    /var/log/myapp.log {
        daily
        rotate 7
        compress
        delaycompress
        missingok
        notifempty
        create 0640 root adm
    }
    

    解释:

    • daily:每天轮转一次日志。
    • rotate 7:保留7个轮转的日志文件。
    • compress:压缩旧的日志文件。
    • delaycompress:延迟压缩,直到下一次轮转。
    • missingok:如果日志文件丢失,不会报错。
    • notifempty:如果日志文件为空,不进行轮转。
    • create 0640 root adm:创建新的日志文件,权限为0640,属主为root,属组为adm。
  3. 测试 logrotate 配置: 可以手动测试 logrotate 配置是否正确。

    sudo logrotate -f /etc/logrotate.d/myapp
    
  4. 设置定时任务logrotate 通常会自动运行,但你可以检查 /etc/cron.daily/logrotate 文件以确保定时任务正常运行。

    sudo nano /etc/cron.daily/logrotate
    

    确保文件中有以下内容:

    #!/bin/sh
    /usr/sbin/logrotate /etc/logrotate.conf
    EXITVALUE=$?
    if [ $EXITVALUE != 0 ]; then
        /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
    fi
    exit 0
    

    然后赋予执行权限:

    sudo chmod +x /etc/cron.daily/logrotate
    

通过以上两种方法,你可以在Ubuntu中设置日志保留策略,确保日志文件不会无限增长,并且可以方便地进行管理和归档。

0
看了该问题的人还看了