
우리 회사는 DHCP 서버가 포함된 셀 모뎀 모듈이 포함된 USB를 통해 연결된 IoT 장치를 생산합니다. Ubuntu 14.04를 실행하는 프로덕션 테스트 서버와 Ubuntu 16.04를 실행하는 다른 서버가 있습니다. IoT 장치의 셀 모뎀의 전원이 켜지면 서버의 dhclient는 셀 모뎀 모듈에 내장된 DHCP 서버로부터 IP 주소를 얻습니다.
어제 14.04 서버에 inode가 부족했습니다.660만 dhclient-<uuid>-usbXX.lease
./var/lib/NetworkManager/
프로덕션 목적으로 시스템을 실행해야 했기 때문에 시스템을 완전히 조사할 수는 없었지만, 이러한 임대 파일의 날짜는 약 14개월 전 서버 시운전까지 거슬러 올라갑니다. 즉, NetworkManager 및/또는 dhclient(isc-dhcp-client 패키지의)가 클라이언트 임대 파일을 제거한 적이 없는 것으로 보입니다.
문제를 더욱 복잡하게 만드는 것은 셀 모뎀 장치의 전원을 켤 때마다 새로운 임대 파일이 생성되는 것으로 나타난다는 것입니다. (IoT 장치는 배터리 전원을 절약하기 위해 셀 모뎀의 전원을 꺼진 상태로 유지하고 필요할 때만 켜집니다. 테스트에는 모뎀 전원을 여러 번 켜고 끄는 작업이 포함됩니다.)
소스를 확인 했는데 sudo apt-get source isc-dhcp-client
임대 파일을 제거하는 코드가 없는 것 같습니다. 실제로 내 노트북(Ubuntu 14.04)에는 시운전으로 돌아가는 임대 파일이 있습니다. (저는 IoT 장치 중 일부와 기타 다양한 이더넷-USB 어댑터를 연결했습니다.)
임대 파일의 만료 기간은 매우 합리적이며 24시간입니다.
IoT 장치에 대해 dhclient를 구성 해제하는 방법을 조사하고 있지만 셀 데이터 연결 테스트를 수행하기로 결정한 경우에는 그렇게 하지 않는 것이 좋습니다.
dhclient 및/또는 NetworkManager를 사용하여 오래된 클라이언트 임대 파일을 제거하는 방법이 있습니까?
이 문제를 처리하기 위해 cron 작업을 설정할 수 있지만 이는 시스템의 일부여야 하는 일종의 것처럼 보입니다. 나는 그것을 찾을 수 없습니다. 나는 검색하고 here/StackOverflow를 검색하고 dhclient 및 NetworkManager 문서를 읽었습니다.
참고: dhclient 태그를 생성할 만큼 평판이 충분하지 않으므로 대신 dhcp로 대체했습니다.