out.log 个文件和 error.log 个文件大小超过

out.log file and error.log file size exceed

包含在 cronjob 中的以下行。

18,36,54 * * * * /usr/bin/perl  /home/folder.my_perl.pl >> out.log 2>> error.log

error.log 文件将写入所有错误,out.log 文件将写入所有输出语句。 我想知道,如果两个文件的大小都超过了,那么系统会自动创建另一个还是我们必须手动维护它?

您必须维护它 "manually"。文件系统没有任何内务管理机制来监控 size/age 正在创建的文件。

您可以使用logrotate来简化管理。这是一个通常配置为由 cron 调用的程序(如果那里有一个名为 logrotate 的脚本,请检查 /etc/cron.daily),但也可以手动调用(/usr/sbin/logrotate /etc/logrotate.conf)。

您所做的只是在程序启动前打开这些文件的文件描述符 1 和 2。它不知道输出的去向,因此当以这种方式调用时,它无法管理它的输出。

你可以:

  1. 让程序打开文件并管理它们的大小,
  2. 将输出通过管道传输到另一个独立管理大小的小脚本,
  3. 使用Sys::Syslog,
  4. 使用Log::Dispatch::FileRotate,
  5. 或任意数量的其他日志记录模块。