场景
我在嵌入式 linux 系统上。像往常一样/var/log/
是存储所有日志的目录。我有一个名为的目录/safepath
,它是在图像创建期间创建的,它位于持久内存上。这意味着我放置的任何内容都会/safepath
在重新启动会话中持续存在。
我希望登录/var/log/
不会在每次重新启动时丢失,并希望通过重新启动使其持久化。所以我想通过做一个我从这个有趣的讨论中读到的内容/var/log/
来继续/persists
mount --bind /var/log /safepath
问题:
但是这样做,仍然会导致我丢失/var/log/
. 这个对吗?如何使/var/log/
跨重启会话持续存在?
最直接的方法是使 /var/log 成为 /safepath/log 的符号链接,或类似的东西。
不确定您是否仍在寻找解决方案,因为问题是在 1 年 4 个月前发布的。无论如何,这是非常简单的解决方案。
更改配置文件
/etc/syslog.conf
(或/etc/rsyslog.conf
)以更改/var/log/messages
为所需的路径。没有真正回答问题。但提供了另一种选择......向系统日志添加规则以将所有消息转发到服务器,例如
如果你这样做,你就不需要持久
/var/log
化(我的经验是,如果你有持久化存储,你总是会填满你的持久化存储/var/log
)。请注意,您需要在服务器上的 syslog 中启用网络模块 - 如何执行此操作取决于您正在运行的 syslog 软件。您可能还需要处理防火墙(通常是 UDP 端口 514)。
server.host.name
另请注意,如果您的 syslog 守护程序启动时 DNS 解析器不可用,您可能需要使用 IP 地址而不是。这样做的一个(我认为很大)优势是您可以将所有嵌入式设备记录到一台服务器,然后所有日志都可以在一个地方使用 - 您应该使用服务器系统日志软件中的匹配规则来存储来自每个服务器的消息设备到以源设备命名的单独文件中(有时这可能很难设置,但非常值得)。