logrotate 后加密日志文件

encrypt log file after logrotation

我有一个 nginx logrotation 运行,我的目标是在可能使用 pgp 旋转和压缩后加密文件,所以有没有办法将其作为后旋转或者我应该为此使用 cronjob ?我愿意接受任何建议。

假设您有一个 pgp 密钥对,您可以在轮换配置的 post-轮换部分执行以下操作:

gpg --output .$(date "+%Y%m%d-%H%M%S").gpg --always-trust --encrypt --recipient "your-pgp-username" .1

有关此命令的详细信息:

  • 输出文件指定根据旋转文件的时间戳写入。

  • 添加“--always-trust”选项以避免手动信任所使用的public密钥。

  • "recipient" 是拥有 public 密钥的人的姓名。

  • "${1}.1" 加密刚刚轮转的日志文件。

此外,您不应忘记删除任何压缩的旋转文件和早于 n 天的加密文件,这些文件也可以添加到 post-旋转中,如下所示:

find /path/to/file/directory -name "*.gz" -mmin +0 -exec rm -f {} \;
find /path/to/file/directory -name "*.gpg" -mtime +n -exec rm -f {} \;

希望对您有所帮助!