如何通过配置永久修改Cassandra system.log的文件权限?
如何通过配置永久修改Cassandra system.log的文件权限?
嘿,这个问题我碰到过好多次啦!Cassandra默认用Logback来管理日志,你手动改完权限后被logrotate打回原形,是因为Logback在创建新日志文件(包括滚动生成的归档文件)时,会遵循自己配置的权限规则,而不是系统的umask或者你手动修改的权限。不过别担心,咱们直接在Logback的配置里搞定它就行,步骤很清晰:
- 首先找到Cassandra的logback.xml配置文件,一般在
$CASSANDRA_HOME/conf目录下(如果是系统安装的,可能在/etc/cassandra/里)。 - 打开配置文件后,找到对应
system.log的FILE appender块——就是那个包含<file>${cassandra.logdir}/system.log</file>标签的配置段。 - 在这个appender里添加
<filePermissions>标签,把值设为你需要的权限,比如你想要的644(或者对应的字符串"rw-r--r--",注意要加双引号)。示例配置如下:
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${cassandra.logdir}/system.log</file> <!-- 新增这一行设置主日志文件权限 --> <filePermissions>644</filePermissions> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${cassandra.logdir}/system.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern> <maxFileSize>20MB</maxFileSize> <maxHistory>7</maxHistory> <totalSizeCap>100MB</totalSizeCap> </rollingPolicy> <encoder> <pattern>%date{ISO8601} %-5level [%thread] %logger:%msg%n</pattern> </encoder> </appender>
- 如果你还想让滚动生成的归档日志(比如
system.log.2024-05-20.0.gz这类文件)也保持644权限,可以在同一个appender里再添加<rollingFilePermissions>标签:
<!-- 新增这一行设置归档日志文件权限 --> <rollingFilePermissions>644</rollingFilePermissions>
- 最后重启Cassandra服务,这样新生成的
system.log以及滚动后的归档日志都会永久保持644权限,再也不会被logrotate还原啦!
备注:内容来源于stack exchange,提问作者Karthiknathan.C
相关产品推荐
相关产品推荐

