Skip to content

Instantly share code, notes, and snippets.

@mansouryaacoubi
Last active June 22, 2017 14:52
Show Gist options
  • Save mansouryaacoubi/f802e8d18ec107d782c4f729d195072b to your computer and use it in GitHub Desktop.
Save mansouryaacoubi/f802e8d18ec107d782c4f729d195072b to your computer and use it in GitHub Desktop.
Easy script to set hostname in Linux
#!/bin/bash
# @discription Installation script for lamp
# @author Mansour Yaacoubi
# @filename sethostname.sh
# @todos add better documentation, add support for other distributions
curhostname=$(hostname)
newhostname=$1
################# CHECK WHETHER SCRIPT IS RUNNING AS ROOT #################
# Run script as root to be able to install software like
# LAMP, composer and laravel
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit 1
else
clear
echo
echo "Script is running with higher privileges as: $SUDO_USER -> $(whoami)"
echo
fi
if [ "$newhostname" == "" ]
then
echo "Missing argument: hostname"
echo "Please provide an argument to set hostname"
exit 1
fi
hostnamectl set-hostname $newhostname
hostname $newhostname
sed -i -e 's/'$curhostname'/'$newhostname'/g' /etc/hosts
echo $newhostname > /etc/hostname
oldremoved=$(hostnamectl | grep $curhostname)
oldremoved=$oldremoved$(hostname | grep $curhostname)
oldremoved=$oldremoved$(cat /etc/hosts | grep $curhostname)
oldremoved=$oldremoved$(cat /etc/hostname | grep $curhostname)
newadded=0
if [ "$(hostnamectl | grep $newhostname)" != "" ]; then newadded=$(expr $newadded + 1); fi;
if [ "$(hostname | grep $newhostname)" != "" ]; then newadded=$(expr $newadded + 1); fi;
if [ "$(cat /etc/hosts | grep $newhostname)" != "" ]; then newadded=$(expr $newadded + 1); fi;
if [ "$(cat /etc/hostname | grep $newhostname)" != "" ]; then newadded=$(expr $newadded + 1); fi;
if [ "$oldremoved" == "" ] && [ $newadded -eq 4 ]; then
echo "Hostname set successfully."
echo "Restarting in 3 seconds..."
sleep 3
service lightdm restart
else
echo "[ERROR] Hostname not set."
echo "Old hostname check output: "$oldremoved
echo "Changed files: "$newadded
exit 1
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment