Redis如何一键部署脚本


Posted in Redis onApril 12, 2021

先将安装包拖入/opt目录

Redis如何一键部署脚本

注意:这里的脚本bind修改后为 0.0.0.0

bind修改后为bind 127.0.0.1 +服务器IP在下面

#!/bin/bash

#yum源
echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式===== \033[0m"
ping -c1 -W1 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then echo -e "\033[31m 检测当前为NAT模式,为您配置在线yum源 \033[0m"
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null

yum clean all &> /dev/null
yum list &> /dev/null
echo -e "\033[31m 在线源已配置完成 \033[0m"

else
echo -e "\033[31m 检测当前为仅主机模式,为您配置本地yum源 \033[0m"
mount /dev/sr0 /mnt &> /dev/null
cd /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

echo '[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
yum clean all &> /dev/null
yum makecache &> /dev/null

df -h | grep "/mnt" 
if [ $? -ne 0 ];then
echo -e "\033[31m 检测当前为仅主机模式,但光盘未连接! \033[0m"
else
echo -e "\033[31m 本地yum源已配置完成 \033[0m"
fi
fi

#关闭防火墙
systemctl stop firewalld
setenforce 0
yum install -y gcc gcc-c++ make
rpm -q expect
rpm -q tcl
yum -y install expect
cd /opt
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install
#由于Redis源码包中直接提供了Makefile 文件,所以在解压完软件包后,不用先执行./configure进行配置,可直接执行make与make install 命令进行安装。

#在/utils里执行软件包提供的install_server.sh脚本文件设置Redis服务所需要的相关配置文件
cd /opt/redis-5.0.7/utils

#开始免交换执行
/usr/bin/expect <<EOF
#expect开始标志
spawn ./install_server.sh
#Please select the redis port for this instance: [6379]
expect "instance"
send "\r" 
#Please select the redis config file name [/etc/redis/6379.conf] 
expect "config"
send "\r"
#Please select the redis log file name [/var/log/redis_6379.log]
expect "log"
send "\r"
#Please select the data directory for this instance [/var/lib/redis/6379]
expect "data"
send "\r"
#Please select the redis executable path []
expect "executable"
send "/usr/local/redis/bin/redis-server\r"
#Is this ok? Then press ENTER to go on or Ctrl-C to abort.
expect "abort"
send "\r"
expect eof
EOF


ln -s /usr/local/redis/bin/* /usr/local/bin/
netstat -natp | grep redis

/etc/init.d/redis_6379 restart     
/etc/init.d/redis_6379 status   

sed -i '/bind 127.0.0.1/c bind 0.0.0.0' /etc/redis/6379.conf
sed -i 's/appendonly no/appendonly yes/' /etc/redis/6379.conf

/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status

bind修改后为bind 127.0.0.1 +服务器IP脚本

#!/bin/bash

#yum源
echo -e "\033[31m =====正在验证当前为仅主机还是NAT模式===== \033[0m"
ping -c1 -W1 www.baidu.com &> /dev/null
if [ $? -eq 0 ];then echo -e "\033[31m 检测当前为NAT模式,为您配置在线yum源 \033[0m"
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo &> /dev/null

yum clean all &> /dev/null
yum list &> /dev/null
echo -e "\033[31m 在线源已配置完成 \033[0m"

else
echo -e "\033[31m 检测当前为仅主机模式,为您配置本地yum源 \033[0m"
mount /dev/sr0 /mnt &> /dev/null
cd /etc/yum.repos.d/
mkdir -p /etc/yum.repos.d/repo.bak

mv -f /etc/yum.repos.d/* /etc/yum.repos.d/repo.bak &> /dev/null

echo '[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
yum clean all &> /dev/null
yum makecache &> /dev/null

df -h | grep "/mnt" 
if [ $? -ne 0 ];then
echo -e "\033[31m 检测当前为仅主机模式,但光盘未连接! \033[0m"
else
echo -e "\033[31m 本地yum源已配置完成 \033[0m"
fi
fi

#防火墙关闭
systemctl stop firewalld
setenforce 0
yum install -y gcc gcc-c++ make
rpm -q expect
rpm -q tcl
yum -y install expect
cd /opt
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install
#由于Redis源码包中直接提供了Makefile 文件,所以在解压完软件包后,不用先执行./configure进行配置,可直接执行make与make install 命令进行安装。

#在/utils里执行软件包提供的install_server.sh脚本文件设置Redis服务所需要的相关配置文件
cd /opt/redis-5.0.7/utils

#开始免交换执行
/usr/bin/expect <<EOF
#expect开始标志
spawn ./install_server.sh
#Please select the redis port for this instance: [6379]
expect "instance"
send "\r" 
#Please select the redis config file name [/etc/redis/6379.conf] 
expect "config"
send "\r"
#Please select the redis log file name [/var/log/redis_6379.log]
expect "log"
send "\r"
#Please select the data directory for this instance [/var/lib/redis/6379]
expect "data"
send "\r"
#Please select the redis executable path []
expect "executable"
send "/usr/local/redis/bin/redis-server\r"
#Is this ok? Then press ENTER to go on or Ctrl-C to abort.
expect "abort"
send "\r"
expect eof
EOF


ln -s /usr/local/redis/bin/* /usr/local/bin/
netstat -natp | grep redis

/etc/init.d/redis_6379 restart     
/etc/init.d/redis_6379 status   


xyw=$(ip a | grep "ens33" | awk NR==2'{print$2}' |awk -F/ '{print$1}')
sed -i "/bind 127.0.0.1/c bind 127.0.0.1 $xyw" /etc/redis/6379.conf

sed -i 's/appendonly no/appendonly yes/' /etc/redis/6379.conf

/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status

到此这篇关于Redis如何一键部署脚本的文章就介绍到这了,更多相关Redis 部署脚本内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
深入浅析Redis 集群伸缩原理
May 15 Redis
详解Redis主从复制实践
May 19 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
Redis集群的关闭与重启操作
Jul 07 Redis
Redis Cluster 集群搭建你会吗
Aug 04 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
浅谈Redis跟MySQL的双写问题解决方案
Feb 24 Redis
redis复制有可能碰到的问题汇总
Apr 03 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
Redis实现短信验证码登录的示例代码
Jun 14 Redis
利用Redis实现点赞功能的示例代码
Jun 28 Redis
解决redis sentinel 频繁主备切换的问题
redis连接被拒绝的解决方案
浅谈redis五大数据结构和使用场景
Redis遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 #Redis
redis配置文件中常用配置详解
Apr 14 #Redis
Redis安装启动及常见数据类型
redis限流的实际应用
Apr 24 #Redis
You might like
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
以JSON形式将JS中Array对象数组传至后台的方法
2014/01/06 Javascript
js导航栏单击事件背景变换示例代码
2014/01/13 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
vue 使用axios 数据请求第三方插件的使用教程详解
2019/07/05 Javascript
JS实现的定时器展示简单秒表、页面弹框及跳转操作完整示例
2020/01/26 Javascript
js实现简单选项卡制作
2020/08/05 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
python的常用模块之collections模块详解
2018/12/06 Python
对python GUI实现完美进度条的示例详解
2018/12/13 Python
使用 Python 玩转 GitHub 的贡献板(推荐)
2019/04/04 Python
python threading和multiprocessing模块基本用法实例分析
2019/07/25 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
Python 实现简单的客户端认证
2020/07/29 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
性能服装:HYLETE
2018/08/14 全球购物
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
煤矿班组长岗位职责
2013/12/29 职场文书
国贸专业的职业规划范文
2014/01/23 职场文书
运动会开幕式主持词
2014/03/28 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
班级班风口号大全
2015/12/25 职场文书
创业计划书之甜品店
2019/09/18 职场文书