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
如图所示:
返回顶部