管理多个redis的一个脚本

我们在一台服务器上部署了8个redis,显然手动停止/启动多个redis不是很方便,所以写了一个shell脚本,就是为了能够同时停止/启动多个redis。使用了两个自定义函数,一个case条件,多个if条件,还有几个for循环,另外就是shift,用以处理用户传递的多个参数。
  这个脚本感觉有点臃肿,可能使用数组会好点,但是我不擅长数组;也考虑过使用自定义函数来判断用户输入的redis是否合法,或正在运行,但shell函数显然不太擅长处理用户传递的多个脚本参数。
 
 
  1. #!/bin/bash 
  2. #2011-10-10 by qinshan.li 
  3. PROCESS=$(pgrep redis) 
  4. SEP='------------------' 
  5. PATH=/usr/local/redis-2.2.8 
  6.  
  7. status() { 
  8.     if [ -z "$PROCESS" ] 
  9.     then 
  10.         echo "No redis is running..." 
  11.     else 
  12.         echo "PID  NAME  PORT" 
  13.         echo $SEP 
  14.         /bin/ps -ef |/bin/grep redis |/bin/grep -v grep |/bin/awk '{print $2" "$9}' |/bin/awk -F ' +|/' '{print $1" "$6}' >process.txt 
  15.         /bin/netstat -anp |/bin/grep redis |/bin/awk -F "(:|/)" '{print $2" "$3}' |/bin/awk '{print $5" "$1}' >port.txt 
  16.         /usr/bin/join process.txt port.txt 
  17.         echo $SEP 
  18.     fi 
  19.  } 
  20.  
  21. start() { 
  22.     for i in $(/bin/ls); do 
  23.         if [ -d $PATH/$i ]; then 
  24.             P=$(/bin/ps -ef |/bin/grep $i |/bin/grep -v grep |/bin/awk '{print $2}') 
  25.             if [ -n "$P" ]; then 
  26.                 echo "'$i' is running. Stop it first." 
  27.             else 
  28.                 echo -e "Starting redis '$i'..."
  29.                 /usr/bin/nohup /usr/local/bin/redis-server $PATH/$i/redis.conf >/dev/null 2>&1 & 
  30.             fi 
  31.         fi 
  32.     done 
  33.  
  34. case $1 in 
  35.     stop) 
  36.         if [ $# -eq 1 ]; then 
  37.             /bin/kill -9 $(/usr/bin/pgrep redis) 
  38.         else 
  39.             shift 
  40.             for INS in "$@" 
  41.             do   
  42.                 if [ -d $PATH/$INS ]; then 
  43.                     P=$(status |/bin/grep $INS |/bin/awk '{print $1}') 
  44.                     if [ -z "$P" ]; then 
  45.                         echo "'$INS' is not running." 
  46.                     else 
  47.                         /bin/kill -9 $P && echo "Stop '$INS' successfully." || echo "Stop '$INS' failed."
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值