魅力博客

魅力Linux|魅力空间|魅力博客|学习Linux|ubuntu日记|电脑教程|手机软件

centos下如何创建计划任务删除前一天的日志文件如:/tmp/nexus-2025-08-03.log /tmp/nexus-2025-08-04.log /tmp/nexus-2025-08-05



centos下如何创建计划任务删除前一天的日志文件如:/tmp/nexus-2025-08-03.log /tmp/nexus-2025-08-04.log /tmp/nexus-2025-08-05.log

在CentOS系统中创建计划任务删除前一天的日志文件,可以通过以下步骤实现:


创建删除脚本‌

编写一个shell脚本用于删除指定目录下前一天的日志文件,例如:


#!/bin/bash
find /tmp/ -name "nexus-*.log" -mtime +1 -exec rm -f {} \;

该脚本会删除/tmp/目录下所有文件名匹配nexus-*.log且修改时间超过1天的文件。


设置脚本权限‌

为脚本添加可执行权限:


chmod +x /path/to/your_script.sh


配置cron定时任务‌

使用crontab -e命令编辑当前用户的定时任务,添加以下内容:


0 2 * * * /path/to/your_script.sh >> /var/log/log_clean.log 2>&1


这表示每天凌晨2点执行脚本,并将输出记录到/var/log/log_clean.log中。


重启cron服务‌

确保cron服务正常运行:


systemctl restart crond


验证任务‌

可以通过以下命令查看已配置的定时任务:


crontab -l


如果需要更精确地匹配文件名格式(如nexus-YYYY-MM-DD.log),可以修改脚本中的find命令,例如:


find /tmp/ -name "nexus-$(date -d "yesterday" +\%Y-\%m-\%d).log" -exec rm -f {} \;

注意:

-mtime +1表示删除修改时间超过24小时的文件

建议先在测试环境验证脚本功能,避免误删重要文件

对于生产环境,建议将删除操作改为移动至临时目录或添加确认步骤

================================================

centos如何创建计划任务删除前一天的日志文件如: /tmp/nexus-cli-root-2025-08-10.log  /tmp/nexus-cli-root-2025-08-09.log  /tmp/nexus-cli-root-2025-08-08.log

在CentOS系统中,可以通过crontab设置计划任务来删除前一天的日志文件(如/tmp/nexus-cli-root-YYYY-MM-DD.log)。以下是具体步骤:


1. 创建删除脚本‌


编写一个Shell脚本,使用date命令动态匹配前一天的日志文件名并删除:


#!/bin/bash
# 删除前一天的日志文件(格式:nexus-cli-root-YYYY-MM-DD.log)
LOG_PREFIX="/tmp/nexus-cli-root"
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
TARGET_FILE="${LOG_PREFIX}-${YESTERDAY}.log"
if [ -f "$TARGET_FILE" ]; then
    rm -f "$TARGET_FILE"
    echo "[$(date)] Deleted: $TARGET_FILE" >> /var/log/log_cleaner.log
else
    echo "[$(date)] File not found: $TARGET_FILE" >> /var/log/log_cleaner.log
fi




保存脚本‌(例如/usr/local/bin/clean_nexus_logs.sh)并赋予执行权限:

sudo chmod +x /usr/local/bin/clean_nexus_logs.sh



2. 配置Cron计划任务‌


编辑当前用户的crontab:

crontab -e



添加以下行,每天凌晨1点执行脚本:

0 1 * * * /usr/local/bin/clean_nexus_logs.sh >> /var/log/log_cleaner.log 2>&1



3. 重启Cron服务‌

sudo systemctl restart crond



4. 验证任务‌

查看任务列表:

crontab -l



手动测试脚本:

/usr/local/bin/clean_nexus_logs.sh


检查日志:

cat /var/log/log_cleaner.log



关键点说明‌

精准匹配文件名‌:通过date -d "yesterday"动态生成前一天的日期,避免误删其他文件。

日志记录‌:脚本会记录删除操作,便于排查问题。

安全防护‌:先检查文件是否存在再删除,避免报错。


如果需要删除更早的文件(如保留最近3天),可以修改脚本中的find命令:


find /tmp -name "nexus-cli-root-*.log" -mtime +3 -exec rm -f {} \;


================================================================

centos如何创建计划任务删除前一天的日志文件如: /tmp/nexus-cli-www-2025-08-10.log  /tmp/nexus-cli-www-2025-08-09.log  /tmp/nexus-cli-www-2025-08-08.log


在CentOS系统中创建计划任务删除前一天的日志文件(如/tmp/nexus-cli-www-YYYY-MM-DD.log),可通过以下步骤实现:


1. 创建删除脚本‌


编写Shell脚本,使用find命令匹配并删除前一天的日志文件:


#!/bin/bash
# 删除前一天的日志文件(格式:nexus-cli-www-YYYY-MM-DD.log)
LOG_PREFIX="/tmp/nexus-cli-www"
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
TARGET_FILE="${LOG_PREFIX}-${YESTERDAY}.log"
if [ -f "$TARGET_FILE" ]; then
    rm -f "$TARGET_FILE"
    echo "[$(date)] Deleted: $TARGET_FILE" >> /var/log/nexus_log_cleaner.log
else
    echo "[$(date)] File not found: $TARGET_FILE" >> /var/log/nexus_log_cleaner.log
fi



保存脚本‌(如/usr/local/bin/clean_nexus_logs.sh)并赋予执行权限:

sudo chmod +x /usr/local/bin/clean_nexus_logs.sh

2. 配置Cron计划任务‌

编辑当前用户的crontab:


crontab -e

添加以下行,每天凌晨1点执行脚本:

0 1 * * * /usr/local/bin/clean_nexus_logs.sh >> /var/log/nexus_log_cleaner.log 2>&1


3. 重启Cron服务‌

sudo systemctl restart crond


4. 验证任务‌

查看任务列表:

crontab -l



手动测试脚本:

/usr/local/bin/clean_nexus_logs.sh



检查日志:

cat /var/log/nexus_log_cleaner.log



关键说明‌

精准匹配文件名‌:通过date -d "yesterday"动态生成前一天的日期,避免误删其他文件。

日志记录‌:脚本会记录删除操作,便于排查问题。

安全防护‌:先检查文件是否存在再删除,避免报错。


若需删除更早的文件(如保留最近3天),可修改脚本中的find命令:

find /tmp -name "nexus-cli-www-*.log" -mtime +3 -exec rm -f {} \;


--------------------------------------------------------------------------

从以上3个实例可以看出,用宝塔面板的朋友,只需要在宝塔面板里的计划任务里直接添加脚本内容即可。

#!/bin/bash
# 删除前一天的日志文件(格式:nexus-cli-www-YYYY-MM-DD.log)
LOG_PREFIX="/tmp/nexus-cli-www"
YESTERDAY=$(date -d "yesterday" +%Y-%m-%d)
TARGET_FILE="${LOG_PREFIX}-${YESTERDAY}.log"
if [ -f "$TARGET_FILE" ]; then
    rm -f "$TARGET_FILE"
    echo "[$(date)] Deleted: $TARGET_FILE" >> /var/log/nexus_log_cleaner.log
else
    echo "[$(date)] File not found: $TARGET_FILE" >> /var/log/nexus_log_cleaner.log
fi


如图所示:



返回顶部

发表评论:

Powered By Z-BlogPHP 1.7.4


知识共享许可协议
本作品采用知识共享署名 3.0 中国大陆许可协议进行许可。
网站备案号粤ICP备15104741号-1