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。它不知道输出的去向,因此当以这种方式调用时,它无法管理它的输出。
你可以:
- 让程序打开文件并管理它们的大小,
- 将输出通过管道传输到另一个独立管理大小的小脚本,
- 使用
Sys::Syslog
,
- 使用
Log::Dispatch::FileRotate
,
- 或任意数量的其他日志记录模块。
包含在 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。它不知道输出的去向,因此当以这种方式调用时,它无法管理它的输出。
你可以:
- 让程序打开文件并管理它们的大小,
- 将输出通过管道传输到另一个独立管理大小的小脚本,
- 使用
Sys::Syslog
, - 使用
Log::Dispatch::FileRotate
, - 或任意数量的其他日志记录模块。