新功能
在(一)里脚本的基础上,增加一个功能:
检查一下服务器的主机名,如果是默认的主机名localhost.localdomain,则修改主机名为info.localtest.com。
这个功能的实现,这里首先要有一个判断,判断主机名是不是默认的名字。其次为了脚本的可移植性与可读性这里引入变量这个概念。
这里提一下shell中判断流程的语法:
if [ ];then ### [ ] bash 内置的判断表达式,[后、]前必须要有空格
语句
else
语句
fi
变量
因为常用,反而不知道怎么定义为题这个名词。最简单理解的话,可以参考数学中XY的概念,X可以代表一个数。这里变量可以代表任何内容。可以是一个数字,一个从符串,甚至是一个文件 ,一串命令,一个集合,一个数组。shell中变量需要先声明再使用,变量的赋值由=来完成,左边是变量名,右边是值。引用时用$加变量名即可
这里我们只有一种情况,所以else不需要了。
#!/bin/bash
#hostname >> ./info.txt
#uname -r >> ./info.txt
#df -h >> ./info.txt
#lscpu >>./info.txt
#cat ./info.txt
oldname=`hostname`
newname="info.localtest.com"
if [ $oldname = "localhost.localdomain" ];then
hostname $newname
fi
执行脚本后,用hostname可以看到主机名已经更改!
[root@localhost scripts]# hostname
info.localtest.com
但这种更改模式,在主机重启后主机名就又改回原来默认的主机名了。
永久更改,只能是通过修改hosts文件来操作!