文章内容
2025/11/13 9:31:44,作 者: 黄兵
OpenStack Swift 使用 logrotate 自动分割日志
系统中默认安装了 logrotate,你可以为 Swift 添加一个配置文件,自动每天轮转一次日志。
1️⃣ 新建配置文件
创建文件 /etc/logrotate.d/swift:
sudo nano /etc/logrotate.d/swift
内容如下:
/var/log/swift/*.log {
daily # 每天轮转一次
rotate 14 # 保留最近 14 天的日志
compress # 使用 gzip 压缩旧日志
delaycompress # 延迟一天压缩,避免刚轮转的日志被压缩
missingok # 日志不存在时不报错
notifempty # 空文件不轮转
create 640 syslog adm # 轮转后新日志文件权限和属主
sharedscripts # 轮转后只执行一次 postrotate 脚本
postrotate
# 通知 rsyslog 重新打开日志文件句柄
/usr/lib/rsyslog/rsyslog-rotate >/dev/null 2>&1 || true
endscript
}2️⃣ 验证配置是否正确
执行:
sudo logrotate -d /etc/logrotate.d/swift
这不会实际轮转,只会模拟执行,确认配置无误。
经过测试,会出现错误,logrotate 的配置语法不支持行内注释。
删除注释之后,保存:
/var/log/swift/*.log {
daily
rotate 14
compress
delaycompress
missingok
notifempty
create 640 syslog adm
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate >/dev/null 2>&1 || true
endscript
}
然后强制执行一次测试:
sudo logrotate -f /etc/logrotate.d/swift
执行完后,会看到:
/var/log/swift/all.log /var/log/swift/all.log.1 /var/log/swift/all.log.2.gz ...
3️⃣ 确保权限和目录正确
Swift 日志目录通常需要:
sudo mkdir -p /var/log/swift sudo chown -R syslog:adm /var/log/swift sudo chmod -R 750 /var/log/swift
其它相关推荐:
2、Ubuntu 22.04 安装 OpenStack Swift
3、Ubuntu 22.04 安装 OpenStack Swift 存储策略
评论列表