在 CentOS 上,nohup 本身不能加密日志,它只是把程序输出重定向到文件。要实现“nohup 日志加密”,通常有以下几种可行方案,按实用程度从易到难说明:
程序输出 → 加密工具(如 openssl)→ 加密日志文件
nohup your_command \
| openssl enc -aes-256-cbc -salt -pass pass:yourpassword \
> app.log.enc &
解密查看:
openssl enc -d -aes-256-cbc -pass pass:yourpassword -in app.log.enc
✅ 优点:简单、无需改程序
❌ 缺点:密码在命令行可见(可用文件存密码)
nohup your_command \
| openssl enc -aes-256-cbc -salt -pass file:/path/to/key \
> app.log.enc &
key 文件权限:
chmod 600 /path/to/key
nohup your_command \
| gpg --batch --yes --passphrase yourpass -c \
> app.log.gpg &
gpg -d app.log.gpg
结合 logrotate + 加密脚本:
示例 logrotate 配置:
/var/log/app.log {
daily
rotate 7
compress
postrotate
openssl enc -aes-256-cbc -salt -in /var/log/app.log.1 -out /var/log/app.log.1.enc -pass file:/etc/app/key
rm -f /var/log/app.log.1
endscript
}
如果程序可控(Java / Python / Go):
| 场景 | 推荐方案 |
|---|---|
| 临时 | openssl 管道 |
| 长期 | GPG / logrotate |
| 高安全 | 程序内加密 |
如果你能说明:
我可以给你更精确的命令或脚本。