Translation(s): English - Italiano


Rinominare un computer

Questa pagina spiega come cambiare l'hostname di un sistema (cioè rinominare un computer o un server).

Sintesi: hostname(1) non è sufficiente.

Rete

Applicazioni specifiche

avahi

Avahi è utilizzato per pubblicare (annunciare) servizi locali; se si modifica /etc/avahi/* bisogna eseguire:

CUPS

Modificare il file /etc/printcap; è necessario riavviare il servizio.

ejabberd

Vedere la domanda frequente su come cambiare il nome del dominio nel libro di ejabberd.

La modifica temporanea del valore di ERLANG_NODE in /etc/default/ejabberd per includere il vecchio hostname può essere utilizzata per ristabilire la funzionalità dei servizi per l'esecuzione di un backup del database.

Exim

Modificare il valore di hostname= nel file /etc/exim4/update-exim4.conf.conf; è necessario riavviare il servizio.

Mailname

Modificare il file /etc/mailname; non è necessario riavviare il servizio.

Message Of The Day

Modificare il file /etc/motd; non è necessario riavviare il servizio.

OpenSSH server

Modificare i file /etc/ssh/ssh_host_rsa_key.pub e /etc/ssh/ssh_host_dsa_key.pub (root@hostname alla fine); è necessario riavviare il servizio.

ssmtp

Ssmtp è un server SMTP leggero.

Modificare il valore di hostname= nel file /etc/ssmtp/ssmtp.conf; non è necessario riavviare il servizio.

sysklogd

Al fine di rendere visibile il nuovo hostname sul syslog è necessario riavviare il servizio sysklogd.

Idea di script per aiutare nel passaggio

Invadente

Questo script è pericoloso. Bisogna controllare che tutti i file elencati da grep -rl "$vecchio" /etc siamo realmente modificati prima di eseguirlo:

   1 #!/bin/bash
   2 #
   3 usage() {
   4    echo "uso: $0 nuovo_hostname"
   5    exit 1
   6 }
   7 
   8 [ -z $1 ] && usage
   9 
  10 vecchio=`hostname`
  11 nuovo=$1
  12 
  13 grep $vecchio /etc/ -rl 2>/dev/null | while read file
  14    do
  15       sed s:$vecchio:$nuovo:g $file > ${file}.tmp
  16       mv ${file}.tmp $file
  17    done

È meglio fare un grep prima...

Non così invadente

#!/bin/bash
# 
usage() {
   echo "uso: $0 nuovo_hostname"
   exit 1
}

[ -z $1 ] && usage

vecchio=`hostname`
nuovo=$1

for file in \
   /etc/exim4/update-exim4.conf.conf \
   /etc/printcap \
   /etc/hostname \
   /etc/hosts \
   /etc/ssh/ssh_host_rsa_key.pub \
   /etc/ssh/ssh_host_dsa_key.pub \
   /etc/motd \
   /etc/ssmtp/ssmtp.conf
do
   [ -f $file ] && sed -i.old -e "s:$vecchio:$nuovo:g" $file
done

È meglio fare un grep prima...


Si veda anche