案例需求
通过shell脚本安装Nginx
应用场景
web服务器业务初始化
案例思路
1、软件获得
2、源码安装
案例代码
[root@CentOs shell]# cat Nginx_install.sh
#!/bin/bash
#安装用户 root
#安装前准备 依赖包 源码包获得
#安装
#启动 测试
#variables(变量)
Nginx_pkg="Nginx-1.20.2.tar.gz"
Nginx_source_doc=`echo $Nginx_pkg|cut -d "." -f1-3`
Nginx_install_doc="/usr/local/Nginx"
Nginx_user="www"
Nginx_group="www"
#function
check(){
#检测当前用户 要求为root
if [ "$USER" != 'root' ];then
echo "Need to be root so that"
exit 1
fi
#检查wget命令
# if [ ! -x /usr/bin/wget ];then
# echo "not fount command /usr/bin/wget"
# exit 1
# fi
# "&&" == then "||" == else
[ ! -x /usr/bin/wget ]&& echo "not fount command /usr/bin/wget" && exit 1
}
install_pre(){
#1、安装依赖
#1 :stdout(标准输入)
#2:stderr(错误输出)
if ! ( yum -y install gcc-* pcre-devel zlib-devel elinks 1>/dev/null);then
echo "ERROR:yum install error"
exit 1
fi
#2、下载源码包
if wget http://Nginx.org/download/$Nginx_pkg &>/dev/null;then
tar -zxvf $Nginx_pkg
if [ ! -d $Nginx_source_doc ];then
echo "ERROR:not found $Nginx_source_doc"
exit 1
fi
else
echo "ERROR:download file $Nginx_pkg fail"
exit 1
fi
}
install(){
# 1、创建管理用户
useradd -r -s /sbin/nologin www
# 2、安装Nginx源码
cd $Nginx_source_doc
echo "Nginx configure..."
if ./configure --prefix=$Nginx_install_doc --user=$Nginx_user --group=$Nginx_group 1>/dev/null;then
echo "Nginx make..."
if make 1>/dev/null;then
echo "Nginx make install..."
if make install 1>/dev/null;then
echo "Nginx install success!"
else
echo "Nginx install fail"
exit 1
fi
else
echo "ERROR:Nginx make fail"
exit 1
fi
else
echo "ERROR:Nginx configure fail"
exit 1
fi
}
Nginx_test () {
if $Nginx_install_doc/sbin/Nginx;then
echo "Nginx start success!"
elinks http://localhost -dump
else
echo "Nginx stop fail!"
fi
}
# callable(调用)
echo "this is Nginx install script!"
read -p "press Y install,press C cancel:" ch(如果机器自动化安装脚本,这个交互我们就没有必要写了!)
if [ $ch == 'Y' ];then
check;install_pre;install;Nginx_test
elif [ $ch == 'C' ];then
exit 1
fi
[root@CentOs shell]#
演示效果
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。