#!/bin/bash
shname=`basename $0`
free () {
/usr/bin/free -h | awk 'NR==2{print $7}'
}
disk () {
/usr/bin/df -h | awk '/sd/{print $1"\t"$5}'
}
ipaddr () {
ifconfig ens32 | awk 'NR==2{print $2}'
}
select i in "内存" "磁盘信息" "IP地址" "退出"
do
case $i in
内存 )
free
;;
磁盘信息 )
disk
;;
IP地址 )
ipaddr
;;
退出 )
exit
;;
* )
echo "use $shname {1|2|3|4}"
;;
esac
done
#!/bin/bash
installnginx (){
#设置安装nginx的版本(可以自定义)
nginxlevel=nginx-1.20.1
#判断是否以root用户执行此脚本
if [ $UID -ne 0 ];
then
echo "请使用Root用户执行$0"
exit
fi
#判断是否接入网络
ping baidu.com -c4 >/dev/null
if [ $? -ne 0 ];
then
echo "执行$0需要访问到互联网..."
echo "请检查与互联网的连接后再试..."
exit
fi
#判断系统是否安装过nginx
exist=$(whereis nginx | awk '{print $2}')
if [ ! -z "${exist}" ];
then
echo "您的系统已经部署过nginx了..."
echo "或您的系统还有nginx残留文件..."
echo "可以使用 "whereis nginx" 和 "find / -name nginx" 查找清空掉残留文件..."
exit
fi
#安装依赖环境
yum install -y gcc openssl-devel pcre-devel zlib-devel lsof wget
groupadd -r nginx
useradd -r -g nginx -s /sbin/nologin -M nginx
mkdir -pv /var/tmp/nginx
wget -P /root http://nginx.org/download/"$nginxlevel".tar.gz
tar -zxvf /root/"$nginxlevel".tar.gz -C /root
sleep 3
#编译安装
cd /root/"$nginxlevel"
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre
make && make install
sleep 3
#删除无用文件和路径
rm -rf /root/"$nginxlevel" /root/"$nginxlevel".tar.gz
sleep 3
#设置nginx开机自启动
echo "#nginx开机自启动" >>/etc/rc.d/rc.local
echo "mkdir -p /var/run/nginx && touch /var/run/nginx/nginx.pid" >>/etc/rc.d/rc.local
echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.d/rc.local
#重载配置文件
chmod +x /etc/rc.d/rc.local
#启动nginx
/usr/local/nginx/sbin/nginx
if [ $? -eq 0 ];
then
echo "===============Nginx安装完毕==============="
echo "================Nginx已启动================"
else
echo "===============Nginx安装失败==============="
echo "=============请检查系统环境配置============="
fi
}
uninstallnginx (){
dirnginx=$(whereis nginx | awk '{print $2}')
read -p "是否要卸载nginx 输入(y|n)确认! " answer
if [ ${answer} == y ];
then
rm -rf /run/nginx /etc/nginx /var/tmp/nginx /var/log/nginx /usr/local/nginx
sleep 5
#清空系统启动脚本中带有"nginx"的行
sed -i "/nginx/d" /etc/rc.d/rc.local
sleep 2
#杀掉nginx进程
pkill nginx
if [[ $? -eq 0 ]];
then
echo ""
echo "==========nginx 卸载成功!=========="
echo ""
else
if [[ -z ${dirnginx} ]];
then
echo "您未安装nginx..."
fi
fi
elif [ ${answer} == n ];
then
exit
else
echo "输入(y|n)确认!"
exit
fi
}
installredis (){
#redis的编译安装
redislevel=6.2.7
exist=$(whereis redis | awk '{print $2}')
fname=/root/redis-${redislevel}.tar.gz
#判断是否以root用户执行改脚本
if [ $UID -ne 0 ];
then
echo "请用root用户执行$0"
exit
fi
#判断是否安系统是否装过redis
if [ ! -z "${exist}" ];
then
echo "您的系统已经部署过redis了..."
echo "或您的系统还有redis残留文件..."
echo "可以使用 "whereis redis" 和 "find / -name redis" 查找清空掉残留文件..."
exit
fi
#检测网络通信情况
ping baidu.com -c4 > /dev/null
if [[ $? -ne 0 ]];
then
echo "请检查网络连接情况后在执行$0..."
exit
else
echo "网络连接检测..."
echo "OK!"
fi
echo "开始安装..."
#安装基础环境
yum install -y gcc wget
#判断目录下是否有这个文件没有就wget
if [[ ! -e ${fname} ]];
then
wget -P /root http://download.redis.io/releases/redis-${redislevel}.tar.gz
#判断下载是否成功
if [[ $? -ne 0 ]];
then
echo "=================redis软件包下载失败...================="
echo "=============请查看软件包版本配置是否正确==============="
echo ""
exit
fi
fi
#解压至指定目录下
tar -zxvf /root/redis-${redislevel}.tar.gz -C /root
sleep 3
cd /root/redis-${redislevel}
make && make install PREFIX=/usr/local/redis
#安装路径可以自定义
cp /root/redis-${redislevel}/redis.conf /usr/local/redis/bin/
#修改redis.conf配置文件允许后台启动
sed -i 's/daemonize no/daemonize yes/g' /usr/local/redis/bin/redis.conf
sleep 3
#加入系统启动项
echo "[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target" >/etc/systemd/system/redis.service
sleep 2
#删除无用的文件
rm -rf /root/redis-${redislevel} /root/redis-${redislevel}.tar.gz
#启动redis服务
systemctl daemon-reload
systemctl enable redis.service
systemctl start redis.service
if [[ $? -eq 0 ]];
then
echo ""
echo "===============redis安装完毕==============="
echo "================redis已启动================"
echo ""
else
echo ""
echo "=============redis安装失败请检查配置...==============="
echo ""
rm -rf /etc/systemd/system/redis.service
exit
fi
}
uninstallredis (){
read -p "确认要卸载redis吗? {y|n} " answer
if [[ ${answer} == y ]];
then
whereis redis | awk '{print $2}' | xargs rm -rf
rm -rf /etc/systemd/system/redis.service
pkill redis
if [[ $? -eq 0 ]];
then
echo "redis 卸载成功!"
else
echo "redis 卸载失败!或您没有安装redis 请检查后再试"
fi
elif [[ ${answer} == n ]]
then
exit
else
echo "输入 y or n 来确认是否卸载!"
fi
}
PS3="输入1-6选择你要的服务: "
select i in "安装nginx" "卸载nginx" "安装redis" "卸载redis" "帮助" "退出脚本"
do
case $i in
安装nginx )
installnginx
;;
卸载nginx )
uninstallnginx
;;
安装redis )
installredis
;;
卸载redis )
uninstallredis
;;
帮助 )
echo "$0 {1|2|3|4|5|6}"
;;
退出脚本 )
exit
;;
* )
echo "$0 {1|2|3|4|5|6}"
esac
done