Online_install_mem_redis.sh🔮
Online_install_mem_redis
Online_remove_mem_redis
[root@localhost ~]# vim Online_install_mem_redis.sh
#!/usr/bin/bash
#Date:2024/04/03
#Author:SunPengyan
#color_print
red_start="\033[31m"
red_end="\033[0m"
blue_start="\033[36m"
blue_end="\033[0m"
green_start="\033[32m"
green_end="\033[0m"
yellow_start="\033[33m"
yellow_end="\033[0m"
#split_line
line="==========================================================================="
line2="--------------------------------------------------------------------------"
line3="+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
#package
memcached_version="memcached-1.6.26"
redis_version="redis-6.2.8"
color_meun() {
echo $line
echo -e "$blue_start安装memcached请输入:1$blue_end"
echo -e "$blue_start安装redis请输入:2$blue_end"
echo -e "$blue_start安装memcached + redis请输入:3$blue_end"
echo -e "$blue_start卸载memcached请输入:4$blue_end"
echo -e "$blue_start卸载redis请输入:5$blue_end"
echo -e "$blue_start退出请输入:6$blue_end"
echo $line
}
meun() {
echo "****************************************************"
echo "安装 memcached请输入:1"
echo "安装 redis请输入:2"
echo "安装 memcached + redis请输入:3"
echo "卸载 memcached请输入:4"
echo "卸载 redis请输入:5"
echo "退出请输入:6"
echo "****************************************************"
}
install_memcached() {
echo -e "$green_start正在安装memcached$green_end"
echo -e "$green_start***********************正在下载memcached安装包****************************$green_end"
yum -y install libevent libevent-devel gcc* &> /dev/null
if [ -e /root/${memcached_version}.tar.gz ] ;then
echo "安装包已存在,跳过下载"
else
echo "开始下载安装包"
wget https://www.memcached.org/files/${memcached_version}.tar.gz
fi
echo -e "$green_start***********************正在解压安装memcached*******************************$green_end"
tar -xvf ${memcached_version}.tar.gz -C /usr/local/ &> /dev/null
cd /usr/local/${memcached_version}/
./configure &> /dev/null
make &> /dev/null
make install &> /dev/null
echo -e "memcached的安装位置:"
ls /usr/local/bin/mem*
echo -e "正在创建memcached用户..."
useradd -r memcached -s /sbin/nologin
cd
echo -e "$green_start************************memcached已完成安装*******************************$green_end"
}
install_redis() {
echo -e "$green_start********************正在安装redis*******************************$green_end"
echo -e "redis在CentOS7安装需要高版本的GCC,正在下载高版本GCC"
# yum -y install centos-release-scl &> /dev/null
# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils &> /dev/null
# scl enable devtoolset-9 bash
# echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
if rpm -q centos-release-scl > /dev/null && \
rpm -q devtoolset-9-gcc > /dev/null && \
rpm -q devtoolset-9-gcc-c++ > /dev/null && \
rpm -q devtoolset-9-binutils > /dev/null; then
echo "已经安装了 centos-release-scl 和 devtoolset-9 工具链,无需重复安装。"
else
echo "开始安装 centos-release-scl 和 devtoolset-9 工具链..."
yum -y install centos-release-scl &> /dev/null
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils &> /dev/null
echo "安装完成。"
fi
if scl -l | grep -q devtoolset-9; then
echo "devtoolset-9 环境已经启用。"
else
# 启用 devtoolset-9 环境
echo "启用 devtoolset-9 环境..."
scl enable devtoolset-9 bash
echo "devtoolset-9 环境已经启用。"
fi
# 检查是否已经将 devtoolset-9 环境设置添加到 /etc/profile 文件中
if grep -q "/opt/rh/devtoolset-9/enable" /etc/profile; then
echo "已经将 devtoolset-9 环境设置添加到 /etc/profile 文件中。"
else
# 将 devtoolset-9 环境设置添加到 /etc/profile 文件中
echo "将 devtoolset-9 环境设置添加到 /etc/profile 文件中..."
echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile
echo "已经将 devtoolset-9 环境设置添加到 /etc/profile 文件中。"
fi
echo -e "$green_start*******************正在下载redis安装包***************************$green_end"
if [ -e /root/${redis_version}.tar.gz ];then
echo "安装包已存在,跳过下载"
else
echo "开始下载安装包"
wget https://download.redis.io/releases/${redis_version}.tar.gz
fi
if [ $? -eq 0 ];then
echo -e "$green_start************************正在解压安装redis***********************************$green_end"
tar -xvf ${redis_version}.tar.gz -C /usr/local/ &> /dev/null
cd /usr/local/${redis_version}/
echo -e "$green_start************************正在编译安装redis***********************************$green_end"
make &> /dev/null
make install &> /dev/null
echo -e "创建/usr/redis目录并将redis-server和配置文件复制到/usr/redis下"
mkdir -p /usr/redis/
cp src/redis-server src/redis-cli redis.conf /usr/redis/
echo vm.overcommit_memory=1 >> /etc/sysctl.conf
sysctl -p
else
echo "$red_startredis安装包下载失败!$red_end"
exit 1
fi
cd
echo -e "$green_start***************************************redis已完成安装*********************************$green_end"
}
install_mem_redis() {
echo -e "$green_start正在安装memcached和redis...$green_end"
}
remove_memcached() {
echo -e "$red_start********************************正在卸载并删除memcached****************************$red_end"
pkill memcached
rm -rf /usr/local/${memcached_version}/
echo "正在删除memcached用户"
userdel memcached
echo -e "$red_start**********************************memcached删除完成!**********************************$red_end"
}
remove_redis() {
echo -e "$red_start*******************************正在卸载并删除redis**********************************$red_end"
pkill redis
rm -rf /usr/local/redis*
rm -rf /usr/redis
sed -i '/source \/opt\/rh\/devtoolset-9\/enable/d' /etc/profile
sed -i '/vm.overcommit_memory=1/d' /etc/sysctl.conf
echo -e "$red_start******************************redis删除完成!****************************************$red_end"
}
quit() {
echo -e "$red_start退出脚本$red_end"
exit 0
}
while true
do
#meun
color_meun
read -p "请输入您的选择: " choice
case $choice in
1)
install_memcached
;;
2)
install_redis
;;
3)
install_mem_redis
;;
4)
remove_memcached
;;
5)
remove_redis
;;
6)
quit
;;
*)
echo -e "$red_start无效输入,请重新输入...$red_end"
;;
esac
done