溫馨提示×

CentOS nohup命令如何限制日志大小

小樊
86
2025-05-11 02:44:28
欄目: 智能運維

在 CentOS 系統中,nohup 命令用于在后臺運行程序,即使關閉終端也不會中斷

  1. 使用 logrotate 工具:

logrotate 是一個用于管理日志文件的工具,可以自動壓縮、刪除和輪換日志文件。首先確保已安裝 logrotate

sudo yum install logrotate

然后創建一個 logrotate 配置文件,例如 /etc/logrotate.d/myapp,并添加以下內容:

/path/to/your/logfile.log {
    size 100M
    rotate 5
    compress
    missingok
    notifempty
    create 640 root root
}

這里的配置表示:

  • 當日志文件大小達到 100M 時,進行輪換。
  • 保留最近的 5 個輪換日志文件。
  • 對舊日志文件進行壓縮。
  • 如果日志文件丟失,不會報錯。
  • 如果日志文件為空,不進行輪換。
  • 創建新的日志文件,權限為 640,屬主為 root,屬組為 root。

接下來,確保 logrotate 定期運行。編輯 /etc/cron.daily/logrotate 文件,取消注釋以下行:

/usr/sbin/logrotate /etc/logrotate.conf
  1. 在程序中使用日志庫:

許多編程語言都提供了日志庫,例如 Python 的 logging 模塊、Java 的 Log4j 等。這些庫通常允許你設置日志文件的最大大小,并在達到最大大小時自動輪換日志文件。

以 Python 的 logging 模塊為例,可以使用以下代碼設置日志文件大小限制:

import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger("myapp")
logger.setLevel(logging.INFO)

handler = RotatingFileHandler("logfile.log", maxBytes=100*1024*1024, backupCount=5)
logger.addHandler(handler)

logger.info("This is an info message.")

這里的配置表示:

  • 當日志文件大小達到 100M 時,進行輪換。
  • 保留最近的 5 個輪換日志文件。

這樣,無論你使用哪種方法,都可以限制 CentOS 中 nohup 命令產生的日志文件大小。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女