| 特性 | copytruncate | sendsignal(信号通知) |
|---|---|---|
| 工作原理 | 复制文件内容 → 清空原文件 | 重命名原文件 → 创建新文件 → 通知进程 |
| 文件操作 | 复制 + 截断 | 移动(重命名)+ 创建 |
| 进程通知 | 不需要 | 需要(通常 SIGHUP/USR1) |
| 原子性 | 非原子操作 | 原子操作(重命名是原子的) |
| 日志丢失 | 可能有少量丢失 | 理论上零丢失 |
| 大文件性能 | 较差(需复制) | 优秀(仅重命名) |
| 适用场景 | 兼容性好,不支持信号的进程也可以轮转日志。 | 支持信号处理的进程,比如nginx |
注册轮转:sudo vim /etc/logrotate.d/rclone-s3,文件具体内容如下
/data/www/log/s3Files.log {
monthly
missingok
rotate 999
nocompress
notifempty
copytruncate
create 640 nginx adm
dateext
dateformat .%Y%m
}
发表回复