Ubuntu 14.04システムでDHCPD(isc-dhcp-4.2.4)を実行しています。 var/lib/dhcp/dhcpd.leasesファイルが非常に大きくなります(350MB)。調べてみると、有効期限が切れてからずっと長いリースについて、何ヶ月も前に遡る履歴データがあります。古い情報を削除するにはどうすればよいですか?おそらくdhcpdを停止してファイルを削除することは悪い考えです。それでも、関連性のある最近のリースを忘れてしまうからです。
[編集]どうやらdhcpdはリースファイルを1時間に1回自動パージすることになっていますが、これは私には起こりません。どうやらこれは権限の問題によるものです。/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プロセスを実行しているuser:groupに対してディレクトリの所有権をどのように整理すればよいでしょうか。
マニュアルから man dhcpd.leases
:
リースデータベースが無制限に大きくなるのを防ぐために、ファイルは随時書き換えられます。最初に、一時的なリースデータベースが作成され、すべての既知のリースがそれにダンプされます。次に、古いリースデータベースの名前が
/var/lib/dhcpd/dhcpd.leases~
に変更されます。最後に、新しく書き込まれたリースデータベースが配置されます。
AFAIKは、ディレクトリ/var/lib/dhcpd
に対するファイルシステムのアクセス許可により、権限のないユーザーdhcpdがその一時データベースをそこに作成することを妨げ、リースファイルが増大し続ける場合に失敗する可能性があります。
/var/lib/dhcpd
の所有権をdhcpdユーザーに変更します。