Existe uma maneira de fazer isso com um pequeno script para um gancho dhcp, conforme descrito aqui .
Crie um novo arquivo:
sudoedit /etc/dhcp/dhclient-exit-hooks.d/hostname
e cole o seguinte código:
#!/bin/sh
# Filename: /etc/dhcp/dhclient-exit-hooks.d/hostname
# Purpose: Used by dhclient-script to set the hostname of the system
# to match the DNS information for the host as provided by
# DHCP.
#
# Do not update hostname for virtual machine IP assignments
if [ "$interface" != "eth0" ] && [ "$interface" != "wlan0" ]
then
return
fi
if [ "$reason" != BOUND ] && [ "$reason" != RENEW ] \
&& [ "$reason" != REBIND ] && [ "$reason" != REBOOT ]
then
return
fi
echo dhclient-exit-hooks.d/hostname: Dynamic IP address = $new_ip_address
hostname=$(host $new_ip_address | cut -d ' ' -f 5 | sed -r 's/((.*)[^\.])\.?//g' )
echo $hostname > /etc/hostname
hostname $hostname
echo dhclient-exit-hooks.d/hostname: Dynamic Hostname = $hostname
Substitua eth0
e wlan0
pelos nomes das interfaces das quais você deseja obter o nome do host. Na maioria dos casos, eth0
e wlan0
devem permanecer os mesmos.
Certifique-se de que é legível ...
chmod a+r /etc/dhcp/dhclient-exit-hooks.d/hostname
Isso é tudo. Na próxima resposta do dhcp, seu nome de host será atualizado automaticamente.