é sempre uma boa idéia fazer com que seus scripts sejam executados repetidamente sem efeitos colaterais (idempotente) ... acima você está fazendo um backup do arquivo crítico / etc / hosts, no entanto, você está limpando o mesmo backup próxima execução - muito perigosa se não for letal quando o / etc / hosts for corrompido
execute um script preliminar para simplesmente copiar o / etc / hosts para algum arquivo de trabalho e então execute o seu script em relação a essa cópia de trabalho, depois que ele funcionar bem em algum servidor de brinquedo e emita o script usando / etc / hosts
Seu conjunto acima de comandos combina com o seu userid e sudo, que lhe darão erros de permissão ... Eu sugiro que você scp abaixo do arquivo em cada caixa e execute como sudo em cada caixa remota ... entenda a sintaxe dentro / etc / hosts e confirme se as linhas anexadas estão em conformidade com a boa sintaxe
#!/bin/bash
set -o errexit # exit on any error
set -o xtrace # print command prior to execution
hostname_file=/root/hostname_list
working_hosts=/etc/hosts.working
mv /tmp/hostname_list $hostname_file
cp -p /etc/hosts $working_hosts
cat $hostname_file >> $working_hosts
rm $hostname_file
echo here is contents of file $working_hosts
cat $working_hosts
acima não é o script finalizado, mas levará 90% ao longo de ... em um servidor de brinquedo depois que você alterar acima para usar o arquivo real / etc / hosts, certifique-se de reiniciar o servidor de brinquedo e verificar OK