在 CentOS 系统中,你可以使用 logrotate 工具来实现 crontab 任务执行的日志分割。以下是配置步骤:
确保 logrotate 已经安装在你的 CentOS 系统上。如果没有安装,可以使用以下命令安装:
sudo yum install logrotate
创建一个新的 logrotate 配置文件,例如 /etc/logrotate.d/my_cron_jobs。在这个文件中,你可以定义日志文件的路径、分割策略等。例如:
/var/log/my_cron_jobs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0640 root root
}
这个配置表示每天分割一次日志文件,保留最近 7 天的日志,压缩旧日志,如果日志文件不存在则不报错,如果日志文件为空则不进行分割,以及创建新的日志文件时的权限和所有者。
在你的 crontab 任务中,将日志输出重定向到 logrotate 配置文件中指定的日志文件。例如,如果你的 crontab 任务是这样的:
* * * * * /path/to/your/script.sh >> /var/log/my_cron_jobs/my_script.log 2>&1
这样,script.sh 的输出将被追加到 /var/log/my_cron_jobs/my_script.log 文件中。
确保 logrotate 配置文件的定时任务(通常位于 /etc/cron.daily/logrotate)已经启用。这个定时任务会每天检查并执行 logrotate 配置文件中定义的日志分割操作。
现在,你的 crontab 任务执行的日志将会按照你在 logrotate 配置文件中定义的策略进行分割。