用于归档日志文件的Bash脚本

use*_*465 5 unix linux bash

我正在尝试编写一个脚本,它将重命名和存档日志文件,但我无法弄明白.下面是一个如何工作的示例:如果您有一个名为error_log的文件,并且您第一次运行脚本,则应将文件error_log重命名为error_log.1,然后error_log.1使用gzip 进行存档.第二次运行脚本时,您将有两个文件:error_log error_log.1.gz,现在您应该重命名error_log.1.gzerror_log.2.gz; error_logerror_log.1并再次存档error_log.1error_log.1.gz用gzip.

Gil*_*not 7

您正在寻找的是命名logrotate,这是一个基本的Unix管理命令,可以像您一样旋转日志.

看到 man 8 logrotate

简单配置文件的示例:

/var/log/apache/error_log {
        daily
        rotate 90       # keep only 90 logs
        copytruncate    # don't stop apps, but copy log
        compress        # gzip log in *.gz
}
Run Code Online (Sandbox Code Playgroud)