Моя компания производит устройства IoT, подключенные через USB, которые содержат модуль сотового модема, который содержит сервер DHCP. У нас есть сервер производственного тестирования под управлением Ubuntu 14.04 и еще один сервер под управлением Ubuntu 16.04. Когда сотовый модем устройства IoT включен, клиент сервера получает IP-адрес от сервера DHCP, встроенного в модуль сотового модема.
Вчера на сервере 14.04 закончились inode, потому что в dhclient-<uuid>-usbXX.lease
было 6,6 миллиона файлов /var/lib/NetworkManager/
.
Я не смог полностью изучить систему из-за необходимости запустить ее в производственные цели, но, похоже, эти файлы аренды датированы вплоть до ввода сервера в эксплуатацию около 14 месяцев назад. То есть, похоже, что NetworkManager и / или dhclient (из пакета isc-dhcp-client) никогда не удаляли какие-либо файлы аренды клиента.
Проблема усугубляется тем, что каждый раз при включении сотового модема создается новый файл аренды. (Устройство IoT сохраняет сотовый модем выключенным для экономии заряда аккумулятора, включая его только при необходимости. Тестирование включает в себя включение и выключение модема несколько раз.)
Я sudo apt-get source isc-dhcp-client
и проверил источник, и похоже, что кода для удаления файлов аренды нет. Действительно, мой ноутбук (Ubuntu 14.04) имеет файлы аренды, возвращающиеся к его вводу в эксплуатацию. (У меня были подключены некоторые наши устройства IoT, а также различные другие адаптеры Ethernet-USB.)
Файлы аренды имеют очень разумный 24-часовой срок действия.
Я изучаю, как деконфигурировать dhclient для наших устройств IoT, но я бы предпочел этого не делать, если мы решим провести тестирование соединения для передачи данных сотовой связи.
Есть ли способ получить dhclient и / или NetworkManager для удаления старых файлов аренды клиента?
Я мог бы создать для этого задачу cron, но это похоже на то, что должно быть частью системы. Я просто не могу найти это. Я гуглил, искал здесь /StackOverflow и читал документацию по dhclient и NetworkManager.
ПРИМЕЧАНИЕ. У меня недостаточно репутации для создания тега dhclient, поэтому я заменил dhcp.