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实现分布式锁的方法(lua脚本版)
May 12 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
你真的了解redis为什么要提供pipeline功能
Jun 22 Redis
Redis主从配置和底层实现原理解析(实战记录)
Jun 30 Redis
redis不能访问本机真实ip地址的解决方案
Jul 07 Redis
关于redisson缓存序列化几枚大坑说明
Aug 04 Redis
Redis RDB技术底层原理详解
Sep 04 Redis
Redis读写分离搭建的完整步骤
Sep 14 Redis
Redis的字符串是如何实现的
Oct 24 Redis
redis缓存存储Session原理机制
Nov 20 Redis
解决linux下redis数据库overcommit_memory问题
Feb 24 Redis
关于Redis的主从复制及哨兵问题
Jun 16 Redis
解决redis sentinel 频繁主备切换的问题
redis连接被拒绝的解决方案
浅谈redis五大数据结构和使用场景
Redis遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 #Redis
redis配置文件中常用配置详解
Apr 14 #Redis
Redis安装启动及常见数据类型
redis限流的实际应用
Apr 24 #Redis
You might like
Apache2 httpd.conf 中文版
2006/11/17 PHP
php FLEA中二叉树数组的遍历输出
2012/09/26 PHP
提升PHP性能的21种方法介绍
2013/06/25 PHP
Yii2中使用join、joinwith多表关联查询
2016/06/30 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
修改jQuery.Autocomplete插件 支持中文输入法 避免TAB、ENTER键失效、导致表单提交
2009/10/11 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
2011/03/01 Javascript
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
Vuex模块化实现待办事项的状态管理
2017/03/15 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
原生js实现抽奖小游戏
2019/06/27 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
使用layui 的layedit定义自己的toolbar方法
2019/09/18 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
python+opencv 读取文件夹下的所有图像并批量保存ROI的方法
2019/01/10 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
python实现音乐播放和下载小程序功能
2020/04/26 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
软件测试常见笔试题
2012/02/04 面试题
Prototype是怎么扩展DOM的
2014/10/01 面试题
自行车租赁公司创业计划书
2014/01/28 职场文书
2014国培学习感言
2014/03/05 职场文书
跳高加油稿
2015/07/21 职场文书