我在 Ubuntu 14.04 系统上运行 DHCPD (isc-dhcp-4.2.4)。var/lib/dhcp/dhcpd.leases 文件变得非常大(350MB)。查看其中的历史数据可以追溯到几个月前,关于早已过期的租约。如何清除旧信息?大概停止 dhcpd 并删除文件是一个坏主意,因为它会忘记最近可能仍然相关的租约?
[编辑] 显然 dhcpd 应该每小时自动清除一次租约文件,但这对我来说并没有发生。显然这归结为权限问题 - /var/lib/dhcp 目录和内容由 root:root 拥有,但服务器以 dhcpd:dhcpd 运行。我尝试按如下方式更改所有权:-
sudo service isc-dhcp-server stop
sudo chown -R dhcpd:dhcpd /var/lib/dhcp/
sudo service isc-dhcp-server start
但在此之后目录的所有权,dhcpd.leases 和 dhcpd.leases~ 恢复为 root:root。
那么,如何区分目录所有权与运行 dhcpd 进程以使自动清除工作的用户:组?
从手册
man dhcpd.leases
:当目录上的文件系统权限
/var/lib/dhcpd
阻止非特权用户 dhcpd 运行时可能会失败的 AFAIK 在那里创建临时数据库,然后租约文件将继续增长。将所有权更改
/var/lib/dhcpd
为 dhcpd 用户。你不需要删除它,只删除不需要的。
您可以通过编辑文件(在准备好之前不保存)来优化它,然后在几秒钟甚至更快的时间内执行 DHCPD 停止/文件保存/DHCPD 启动。它甚至对我来说工作不到 1 秒;那是如果你不想停机。