Em vez de substituir o nome no arquivo / etc / hostname, use o comando abaixo para alterar o nome do host se ele for uma máquina RHEL7 / CentOs7
hostnamectl set-hostname $ newhost
estou usando este script para alterar o nome do host via ssh, mas recebo alguns erros.
read -p "Insira o IP : " ip
read -p "Insira o nome do utilizador : " host
read -s -p "Insira a palavra passe : " oldpass
sshpass -p $oldpass ssh $host@$ip "cat /etc/hostname > hostname.txt"\
run="sshpass -p $oldpass ssh $host@$ip" \
hostn=$($run "cat hostname.txt") \
echo $hostn
sshpass -p $oldpass ssh $host@$ip " \
echo "Enter new hostname: " \
read newhost \
sed -i "s/$hostn/$newhost/g" /etc/hosts \
sed -i "s/$hostn/$newhost/g" /etc/hostname \
echo "Your new hostname is "$newhost"" \
read -s -n 1 -p "Press any key to reboot" \
reboot"
Quando eu escrevo novo nome de host, aparece:
unable to resolve host"=
.
Mas o script continuou funcionando e foi reinicializado.
Tags hostname