-
根据下面的定时任务的内容
[root@hc-25-68-14 ~]# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1 EXITVALUE=$? if [ $EXITVALUE != 0 ]; then /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]" fi exit 0 [root@hc-25-68-14 ~]#
可知 logrotate可以在任何时候从命令行手动调用: logrotate /etc/logrotate.conf
-
编辑自己的配置文件:
[root@hc-25-68-14 ~]# mkdir -p /export/rotate_test/log_history [root@hc-25-68-14 ~]# cat /etc/logrotate.d/archiver /export/rotate_test/worker.log { rotate 5 missingok nodateext olddir /export/rotate_test/log_history create 644 root root size 100M } [root@hc-25-68-14 ~]# [root@hc-25-68-14 ~]#
执行自己的配置文件: logrotate /etc/logrotate.d/archiver
当然在测试前,可以 logrotate -dv /etc/logrotate.d/archiver 测试下配置文件是否有问题
如果你觉得 logrotate 的默认执行周期(默认一天执行一次)不符合业务需求, 你也可以用 crontab 自定义你的运行周期或者写一个 while True 的 shell 脚本在后台运行。
这可以参考上篇文件 crontab 的用法
3.试试如下参数:
copytruncate # 用于还在打开中的日志文件,把当前日志备份并截断;是先拷贝再清空的方式,拷贝和清空之间有一个时间差,可能会丢失部分日志数据。
nocopytruncate # 备份日志文件但是不截断;
create mode owner group # 转储文件,使用指定的文件模式创建新的日志文件;
nocreate # 不建立新的日志文件;
nodateext
compress # 通过gzip 压缩转储以后的日志
nocompress # 不做gzip压缩处理