Isc-Dhcp
如何清除 dhcpd.leases?
我在 Ubuntu 14.04 系統上執行 DHCPD (isc-dhcp-4.2.4)。var/lib/dhcp/dhcpd.leases 文件變得非常大(350MB)。查看其中的歷史數據可以追溯到幾個月前,關於早已過期的租約。如何清除舊資訊?大概停止 dhcpd 並刪除文件是一個壞主意,因為它會忘記最近可能仍然相關的租約?
$$ edit $$顯然 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.leases~
。最後,新寫入的租賃數據庫被移動到位。當目錄上的文件系統權限
/var/lib/dhcpd
阻止非特權使用者 dhcpd 執行時可能會失敗的 AFAIK 在那裡創建臨時數據庫,然後租約文件將繼續增長。將所有權更改
/var/lib/dhcpd
為 dhcpd 使用者。