以 Nginx GET 日志为例,Nginx 在 logs 目录下产生 access.log
,一段时间后,access.log
会发生轮转,此时目录下会存在 access.log
、 access.log.1
,在过一段时间,日志继续轮转,产生 access.log.2.gz
...... 此时日志文件结构如下:
logs
├── access.log
├── access.log.1
├── access.log.2.gz
├── access.log.3.gz
├── access.log.4.gz
└── ...
为了方便日志分析,本脚本可以将以上日志按日期分割为 afdoa_access_log.YYYY-MM-DD.log
的日志文件存档
./logarchive.sh <LOG_TO_ARCHIVE_PATH> <COMMON_PREFIX> <ARCHIVED_LOG_PATH> <PREFIX>
上面的命令要传递四个参数:
- LOG_TO_ARCHIVE_PATH: 待归档的日志的路径
- COMMON_PREFIX: 待归档的日志的公共前缀
- ARCHIVED_LOG_PATH: 归档日志的存放路径
- PREFIX: 归档日志的文件名前缀
用法示例:
./logarchive.sh /source/logs access /destination/logs afdoa_access_log
<LOG_TO_ARCHIVE_PATH>
目录下不能存在与待归档日志有相同的<COMMON_PREFIX>
的其他文件- 命令执行者对
<ARCHIVED_LOG_PATH>
要有 write 权限
Released under the MIT License.