2017-03-01 63 views
1

我使用logrotate定期向我发送日志。我的服务器是一个运行Postfix的VPS作为仅限外发的SMTP服务器。邮寄之前的Logrotate加密

我希望所有的邮寄日志(Logrotate发送的)用PGP或S/MIME加密。我怎样才能做到这一点?

我搜索了logrotate邮件加密,但找不到任何。因此,我认为我可以在logrotate config中传递“nomail”命令,但是在脚本中添加“postscript”脚本来首先加密邮件然后发送。

那么,有没有更好的方法来加密logrotate邮件与PGP?或者这就是我需要做的事情?我会很感激任何意见或这样的脚本的例子。

此外,我不考虑使用TLS,因为有可能的方法可以绕过SMTP服务器。我宁愿依赖于单个消息的加密。

谢谢!

编辑:

这里是我的脚本,我使用自定义的电子邮件发送(无GPG现在):

#!/bin/bash 
read MSG 
echo $MSG | mail -s $1 $2 

但是,当我强迫与logrotate --mail=loggpg.sh --force /etc/logrotate.d/ufw旋转,我不断收到错误有关解压缩,我需要手动解压缩吗?或者脚本有错误吗?

错误,我得到:

error: mail command failed for /var/log/ufw.log.5.gz 
error: uncompress command failed mailing /var/log/ufw.log.5.gz` 

回答

0

你可以用--mail命令行选项执行日志轮播。它将允许您使用自己的shell/perl/python脚本发送电子邮件,而不是默认/bin/mail -s

人logrotate的

选项
...
-m,--mail
告诉logrotate的哪个命令邮件日志时使用。这个命令应该接受两个参数:1)消息的主题,以及2)接收者。然后该命令必须在标准输入上读取消息并将其邮寄给收件人。默认邮件命令是 /bin/mail -s。

+0

感谢您的回复!我会尝试制作一个脚本,一旦成功就会更新。 – Ilya

+0

嘿,我已经尝试制作一个shell脚本,并且首先不使用gpg来调用它,只是为了确保它能正常工作并发送邮件。但是我不断收到错误。我更新了我的问题。如果你能告诉我什么是错的,我将不胜感激。谢谢! – Ilya

+0

而不是'读MSG;回声$ MSG | mail -s $ 1 $ 2'尝试'邮件-s“$ 1”“$ 2”' – AnFi