需求:
编写Apache_port.sh脚本完成以下条件
此脚本后接入的数字
http的端口就改为此数字
假设selinux为关闭状态
脚本:
思路:
判断脚本名后是否有(数字)端口号
判断脚本后所跟端口号是否已被其它服务占用
判断httpd是否安装
做httpd配置文件里端口号更改的动作
(此实验中httpd服务是已经安装的)
#!/bin/bash
[ -z "$1" ] && { ## ##判断脚本名称后是否有端口号
echo "Error:not port number Please give port following script!!!"
exit
}
[ -z "`netstat -anltupe | grep $1`" ] || { ##判断端口号是否已被占用
echo "Error:$1 is used by system proto!!!"
exit
}
[ -e "/etc/httpd/conf/httpd.conf" ] || { ##判断httpd是否安装
yum install httpd -y &> /dev/null || { ##如果安装失败则说明没有yum软件仓库
echo "Error:apache not installed and yum repo is not available!!!"
exit
}
}
sed "/^Listen/c Listen $1" -i /etc/httpd/conf/httpd.conf ##替换httpd配置文件中的端口号一行为Listen $1
systemctl restart httpd &> /dev/null && { ##重启httpd服务
echo "Configure port successful!!!"
} || { ##重启失败时输出
echo "Error:can't up service!!!"
}