使用Logrotate管理日志文件

介绍

Logrotate是一个Linux实用程序,可简化日志文件的管理。它通常每天通过cron作业运行一次,并根据其配置文件中的自定义规则/设置来管理日志。

它的一些有用设置包括日志文件的自动轮换,压缩,删除和邮寄。

安装

大多数Linux系统默认都安装了Logrotate。发出logrotate命令,检查是否在Vultr实例上安装了它。您将看到服务器正在运行的Logrotate版本的输出。

如果尚未安装,请执行以下步骤以继续安装。

在Debian / Ubuntu系统上:

sudo apt-get update
sudo apt-get install logrotate

在Redhat / CentOS系统上:

sudo yum update
sudo yum install logrotate

了解Logrotate

使logrotate运行的运动部件是:

  • 实际工具logrotate

  • Logrotate的配置文件位于/etc/logrotate.conf。该文件保存Logrotate管理的所有日志文件的配置。

  • 每天的cron作业/etc/cron.daily/logrotate,发出logrotate命令以根据其配置文件中的设置运行。如果您的系统上不存在该cron作业,请创建它并在下面添加代码段。

    #!/bin/sh
    /usr/sbin/logrotate /etc/logrotate.conf
    

有关配置的更多信息

如果您在内部窥视/etc/logrotate.conf,您会发现其中有一行include /etc/logrotate.d。此行的作用是告诉Logrotate查看/etc/logrotate.d目录并运行其中的每个配置文件。通常,此目录是Linux系统上安装的应用程序将在其中添加其logrotate配置的位置。例如,Apache2通常会/etc/logrotate.d/apache在安装时创建一个配置文件。

管理日志

要测试Logrotate,我们将:

  • 使用1MB或随机数据创建一个新的测试日志文件:

    sudo base64 /dev/urandom | head -c 1000000 > /tmp/testfile.log
    
  • 通过运行创建新的Logrotate配置sudo nano /etc/logrotate.d/testlog。将以下代码段复制到空文件中,然后按Ctrl + X保存并退出。

    /tmp/testfile.log {
        size 1k
        copytruncate
        missingok
        rotate 5
    }
    

上面代码段中的配置选项指示Logrotate执行以下操作:

  • size 1k:如果大小大于或等于1k,则旋转日志文件。
  • missingok:如果testfile.log不存在,则忽略错误消息。
  • copytruncate:创建当前日志文件的副本,然后截断它。当应用程序无法关闭其日志文件,因为它不断追加到日志文件时,这非常方便。
  • rotate 5:将日志文件循环数限制为5。这将删除大于5天的旧版本日志文件。

注意:您可以在此处查看logrotate的所有配置选项。

  • 手动运行Logrotate命令:

    sudo logrotate /etc/logrotate.conf
    

    运行上述命令后,列出tmp目录中的所有文件ls -l /tmp以确认testfile.log确实已轮换。您应该看到类似于以下内容的清单,该清单testfile.log确实已轮换。这将每天继续,并保留最新的5份副本。

    [root@vultr ~]# ls -l /tmp
    -rw-r--r--  1 root root       0 Nov 14 23:31 testfile.log
    -rw-r--r--  1 root root 1000000 Nov 14 23:30 testfile.log-20141114
    -rw-r--r--  1 root root     634 Nov 10 00:23 vultr_ipv6
    -rw-------. 1 root root       0 Oct 15 20:44 yum.log
    

结论

日志过大并导致磁盘空间问题,可能很快在服务器上造成问题。管理日志对于任何系统都是至关重要的,但更好的是使该管理自动化。Logrotate使旋转,归档和删除日志变得容易。

由Lami Adabonyan撰写

留下評論

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg

在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。

如何在Ubuntu 16.04上安装OpenSIPS控制面板

如何在Ubuntu 16.04上安装OpenSIPS控制面板

快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。

在Fedora 28上安装Akaunting

在Fedora 28上安装Akaunting

学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

如何在CentOS 7上安装Mailtrain新闻通讯应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。

诊断Minecraft服务器延迟和低TPS

诊断Minecraft服务器延迟和低TPS

了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息