Last active
June 22, 2017 14:52
-
-
Save mansouryaacoubi/f802e8d18ec107d782c4f729d195072b to your computer and use it in GitHub Desktop.
Easy script to set hostname in Linux
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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