温馨提示×

如何清理过期的debian nohup日志

小樊
31
2025-12-16 14:40:18
栏目: 智能运维

要清理过期的 Debian nohup 日志,您可以编写一个简单的 shell 脚本来实现这一目标。以下是一个示例脚本,用于删除指定目录下超过指定天数的 nohup 日志文件:

#!/bin/bash

# 设置日志文件所在的目录
LOG_DIR="/path/to/your/log/directory"

# 设置要删除的日志文件的过期天数
DAYS=7

# 计算过期日期
EXPIRATION_DATE=$(date -d "$DAYS days ago" +%s)

# 遍历目录下的所有 nohup 日志文件
for LOG_FILE in "$LOG_DIR"/*.log; do
    # 获取文件的最后修改时间
    FILE_MODIFICATION_DATE=$(stat -c %s "$LOG_FILE")

    # 如果文件的最后修改时间早于过期日期,则删除文件
    if [ $FILE_MODIFICATION_DATE -lt $EXPIRATION_DATE ]; then
        rm "$LOG_FILE"
        echo "Deleted expired log file: $LOG_FILE"
    fi
done

要使用此脚本,请按照以下步骤操作:

  1. 将脚本保存为一个文件,例如 cleanup_nohup_logs.sh
  2. 使用文本编辑器修改脚本中的 LOG_DIR 变量,将其设置为您的 nohup 日志文件所在的目录。
  3. 修改 DAYS 变量,设置您希望保留日志文件的天数。
  4. 保存脚本并为其添加可执行权限:chmod +x cleanup_nohup_logs.sh
  5. 运行脚本:./cleanup_nohup_logs.sh

您还可以将此脚本添加到 cron 作业中,以便定期自动清理过期的 nohup 日志文件。要将其添加到 cron 作业,请执行以下命令:

crontab -e

然后在打开的编辑器中添加一行,如下所示(每天凌晨 1 点运行脚本):

0 1 * * * /path/to/your/cleanup_nohup_logs.sh

保存并退出编辑器。现在,脚本将按照指定的时间间隔自动运行,清理过期的 nohup 日志文件。

0