3453
Comment:
|
3640
|
Deletions are marked like this. | Additions are marked like this. |
Line 57: | Line 57: |
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 | |
Line 102: | Line 103: |
[ -f $file ] && sed -i.old -e 's:$ancien:$nouveau:g' $file | [ -f $file ] && sed -i.old -e "s:$ancien:$nouveau:g" $file |
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
Update /etc/hostname
Update /etc/hosts, so local address(es) resolves with the new system name.
- Reload the network configuration. You have two options
Reload configuration files
This will temporarily disconnect your system from the network (ssh usually resists short disconnection)invoke-rc.d hostname.sh start invoke-rc.d networking force-reload invoke-rc.d network-manager force-reload
ToDo: is it useful to reload network-manager?
or the lazy way: Restart the system.
Application specific
avahi
Avahi is used to publish (announce) local services. If you tweaked /etc/avahi/* you should run:
invoke-rc.d avahi-daemon force-reload
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
(to be written) there must be others...
Charlie: It was me who took you. Not the Others...
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
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
?Howto Clone a System - system unique identifiers, to be changed when cloning a system.