转自:http://dongsong.blog.51cto.com/916653/1649590, 作者信息:http://home.51cto.com/index.php?s=/space/916653
#!/bin/sh
# 编译安装管理Redis
App=redis
AppName=Redis
AppBase=/App
AppDir=$AppBase/$App
AppProg=$AppDir/bin/redis-server
AppConf=$AppDir/redis.confAppSrcBase=/App/src
AppSrcFile=$App-*.tar.*
AppSrcDir=$(find $AppSrcBase -maxdepth 1 -name "$AppSrcFile" -type f 2> /dev/null | sed -e 's/.tar.*$//' -e 's/^.\///')AppPort=$(grep "^port" $AppConf | awk '{print $2}')RemoveFlag=0
InstallFlag=0# 获取PID
fpid()
{AppPid=$(ps ax | grep "$AppProg" | grep -v "grep" | awk '{print $1}' 2> /dev/null)
}# 查询状态
fstatus()
{fpidif [ ! -f "$AppProg" ]; thenecho "$AppName 未安装"elseecho "$AppName 已安装"if [ -z "$AppPid" ]; thenecho "$AppName 未启动"elseecho "$AppName 正在运行"fifi
}# 删除
fremove()
{fpidRemoveFlag=1if [ -z "$AppPid" ]; thenif [ -d "$AppDir" ]; thenrm -rf $AppDir && echo "删除 $AppName"elseecho "$AppName 未安装"fielseecho "$AppName 正在运行" && exitfi
}# 备份
fbackup()
{Day=$(date +%Y-%m-%d)BackupFile=$App.$Day.tgzif [ -f "$AppProg" ]; thencd $AppBasetar zcvf $BackupFile --exclude=logs/* $App --backup=numbered[ $? -eq 0 ] && echo "$AppName 备份成功" || echo "$AppName 备份失败"elseecho "$AppName 未安装"fi
}# 安装
finstall()
{fpidInstallFlag=1if [ -z "$AppPid" ]; thentest -f "$AppProg" && echo "$AppName 已安装"[ $? -ne 0 ] && fupdate && fcpconfelseecho "$AppName 正在运行"fi
}# 拷贝配置
fcpconf()
{cp -vf --backup=numbered $ScriptDir/redis.conf $AppConf
}# 更新
fupdate()
{Operate="更新"[ $InstallFlag -eq 1 ] && Operate="安装"[ $RemoveFlag -ne 1 ] && fbackupcd $AppSrcBasetest -d "$AppSrcDir" && rm -rf $AppSrcDirtar zxf $AppSrcFile || tar jxf $AppSrcFile || tar Jxf $AppSrcFilecd $AppSrcDirmake PREFIX=$AppDir installif [ $? -eq 0 ]; thenecho "$AppName $Operate成功"elseecho "$AppName $Operate失败"exit 1fi
}# 启动
fstart()
{fpidif [ -n "$AppPid" ]; thenecho "$AppName 正在运行"else$AppProg $AppConf && echo "启动 $AppName" || echo "$AppName 启动失败"fi
}# 停止
fstop()
{fpidif [ -n "$AppPid" ]; then$AppDir/bin/redis-cli -p $AppPort shutdown && echo "停止 $AppName" || echo "$AppName 停止失败"elseecho "$AppName 未启动"fi
}# 重启
frestart()
{fpid[ -n "$AppPid" ] && fstop && sleep 1fstart
}# 终止进程
fkill()
{fpidif [ -n "$AppPid" ]; thenkill -9 $AppPid && echo "终止 $AppName 进程" || echo " 终止 $AppName 进程失败"elseecho "$AppName 进程未运行"fi
}ScriptDir=$(cd $(dirname $0); pwd)
ScriptFile=$(basename $0)
case "$1" in"install"   ) finstall;;"update"    ) fupdate;;"reinstall" ) fremove && finstall;;"remove"    ) fremove;;"backup"    ) fbackup;;"start"     ) fstart;;"stop"      ) fstop;;"restart"   ) frestart;;"status"    ) fstatus;;"cpconf"    ) fcpconf;;"kill"      ) fkill;;*           )echo "$ScriptFile install              安装 $AppName"echo "$ScriptFile update               更新 $AppName"echo "$ScriptFile reinstall            重装 $AppName"echo "$ScriptFile remove               删除 $AppName"echo "$ScriptFile backup               备份 $AppName"echo "$ScriptFile start                启动 $AppName"echo "$ScriptFile stop                 停止 $AppName"echo "$ScriptFile restart              重启 $AppName"echo "$ScriptFile status               查询 $AppName 状态"echo "$ScriptFile cpconf               拷贝 $AppName 配置"echo "$ScriptFile kill                 终止 $AppName 进程";;
esac

转载于:https://www.cnblogs.com/yunkong/articles/4488561.html

Redis常用管理脚本相关推荐

  1. redis启动管理脚本

    亲测好用的redis启动管理脚本,如果使用需要根据自己安装的redis相关文件进行调整 我是源码安装的redis-3.0.5 安装路径/usr/local/redis 编辑创建脚本文件: vim /e ...

  2. Redis 常用可视化客户端管理软件

    一.引言 现在开发过程中使用Redis的地方越来越多了,而且使用过程中,我们需要可能需要查看下Redis数据,但是命令行使用起来比较麻烦而且看起来不直观,当数据量比较多就比较麻烦,没可视化客户端看起来 ...

  3. Redis常用操作命令

    文章目录 0.参考资料 1.常用管理命令 2.常用key操作命令 2.1.常规操作 2.2.删除key 生产姿势 3.常用字符串操作命令 4.常用集合操作命令 5.常用有序集合操作命令 6.常用列表操 ...

  4. redis桌面管理工具 redis-desktop-manager使用指南(转)

    版权声明:转自 http://blog.csdn.net/li396864285/article/details/54629898 概要:一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用 ...

  5. redis常用数据结构解析

    Redis是一个开源的Key-Value存储引擎,它支持string.hash.list.set和sorted set等多种值类型.由于其卓越的性能表现.丰富的数据类型及稳定性,广泛用于各种需要k/v ...

  6. Redis 常用操作命令,非常详细

    转载自  Redis 常用操作命令,非常详细 下面总结并演示了 Redis 的 常用管理命令.key 操作.字符串.集合.列表.散列类型的操作命令. 你需要掌握的 Redis 知识 史上最全 Redi ...

  7. redis cluster管理工具redis-trib.rb详解

    redis cluster管理工具redis-trib.rb详解 redis-trib.rb是redis官方推出的管理redis集群的工具,集成在redis的源码src目录下,是基于redis提供的集 ...

  8. 添加lua_非关系型数据库Redis之Lua脚本

    [本文详细介绍了非关系型数据库Redis中Lua脚本的基本概念和使用方法,欢迎读者朋友们阅读.转发和收藏!] 1 Lua 简介 Lua 是一个小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用 ...

  9. Dell服务器RAID常用管理命令总结

    介绍 MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等.通常,我们对硬盘当前的状态不太好 ...

  10. aria2 linux一键安装,Aria2一键安装及管理脚本,搭建AriaNg前端

    说明:Aria2作为一款linux下的下载神器,可以下载http资源.种子文件.磁力链接等,功能强大,就不过多介绍了,此前提到过Aria2安装方法,这里再说个逗比大佬的一键脚本,很方便,推荐使用. 一 ...

最新文章

  1. GitHub star 7k+:史上最全图像分割资料集锦
  2. mysql如何让自增id从某个位置开始设置方法
  3. 有关单例模式懒汉式安全的问题(全)
  4. Android 创建与解析XML(一)—— 概述
  5. 子项目依赖和父项目冲突_实战 | maven 轻松重构项目
  6. python编写函数_如何用Python编写自己喜欢的R函数
  7. 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--请求处理函数装饰器注册篇(5/8)【controller+action】...
  8. android配置多个url,Retrofit中使用多个baseUrl
  9. [笔记].痛哉!!!Error: Can't access JTAG chain, Error: Operation failed
  10. Windows超级管理器绿色单文件版V9.41下载 | 电脑任务管理器损坏可予以替代 | Windows超级管理器下载
  11. Android高德地图定位获取定位经纬度,高德地图,获取当前位置经纬度
  12. 实验一 Matlab语音处理基本指令
  13. flash读取程序 msp430_MSP430内部FLASH详细操作
  14. ***能篡改WiFi密码,源于存在漏洞
  15. java爬虫入门第二弹——通过URL下载图片(以下载百度logo为例)
  16. 使用python发邮箱遇到的问题
  17. 修改jupyter notebook的默认浏览器
  18. 【C++刷LeetCode套路1】Array题型: 双指针Two Pointers套路
  19. 解读《Superhuman AI for multiplayer poker》
  20. 调用百度API(二)——百度翻译

热门文章

  1. 智能优化算法:蛇优化算法-附代码
  2. envi 打开影像报错:‘HISTOGRAM:illegal binsize or max/min‘.The result maybe invalid
  3. python绘图-增加子区域
  4. ArcGIS修改矢量边界(土地利用图图斑)
  5. Homestead安装 PHP Redis 扩展
  6. 计算机三位科学家,华南理工大学这三位年轻科学家太优秀了!
  7. 声音加速_车子换机油后噪音变大加速无力,到底是什么原因,不少车主吃过亏...
  8. 勤能补拙 VS 思考补拙
  9. python标准库——sys模块
  10. mysql存储过程详细教程6_存储过程详解(示例代码)