Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 用于归档日志文件的Bash脚本_Linux_Bash_Unix - Fatal编程技术网

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

Linux 用于归档日志文件的Bash脚本,linux,bash,unix,Linux,Bash,Unix,我试图写一个脚本,将重命名和归档日志文件,但我就是不明白它。下面是一个它应该如何工作的示例:如果您有一个名为error_log的文件,并且您第一次运行脚本,它应该将文件error_log重命名为error_log.1,然后使用gzip归档error_log.1。第二次运行脚本时,您将有两个文件:error_log和error_log.1.gz,现在您应该将error_log.1.gz重命名为error_log.2.gzerror\u log到error\u log.1并再次使用gzip将erro

我试图写一个脚本,将重命名和归档日志文件,但我就是不明白它。下面是一个它应该如何工作的示例:如果您有一个名为error_log的文件,并且您第一次运行脚本,它应该将文件error_log重命名为
error_log.1
,然后使用gzip归档
error_log.1
。第二次运行脚本时,您将有两个文件:error_log和
error_log.1.gz
,现在您应该将
error_log.1.gz
重命名为
error_log.2.gz
error\u log
error\u log.1
并再次使用gzip将
error\u log.1
存档到
error\u log.1.gz

您要查找的是名为
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
}