This page explains how to change a system's hostname (i.e rename a computer/server)

Executive summary: hostname(1) isn't enough.

Rename a computer

Core networking

Application specific

avahi

Avahi is used to publish (announce) local services. If you tweaked /etc/avahi/* you should run:

ssmtp

Ssmtp is a light weight, send-only smtp server.

Adjust /etc/ssmtp/ssmtp.conf (hostname=, etc.). You don't need to restart the service.

Exim

Adjust /etc/exim4/update-exim4.conf.conf (hostname=). You need to restart the service.

Message Of The Day

Adjust /etc/motd. You don't need to restart a service.

Cups

Adjust /etc/printcap . You need to restart the service.

Mailname

Adjust /etc/mailname. You don't need to restart the service.

Openssh server

Adjust /etc/ssh/ssh_host_rsa_key.pub and /etc/ssh/ssh_host_dsa_key.pub (root@hostname at the end). You need to restart the service.

other

Idea of script to help you on

Intrusive script

Please understand that this script is dangerous. You should check if all the files listed by grep -rl "$ancien" /etc must really be modified before launching this script

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

Take care you'd better do a grep before...

Not-so intrusive script

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

[ -z $1 ] && usage

ancien=`hostname`
nouveau=$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:$ancien:$nouveau:g" $file
done

Take care you'd better do a grep before...


See also