管理多個redis的乙個指令碼

2021-06-19 22:35:39 字數 1323 閱讀 9055

我們在一台伺服器上部署了8個redis,顯然手動停止/啟動多個redis不是很方便,所以寫了乙個shell指令碼,就是為了能夠同時停止/啟動多個redis。使用了兩個自定義函式,乙個case條件,多個if條件,還有幾個for迴圈,另外就是shift,用以處理使用者傳遞的多個引數。

這個指令碼感覺有點臃腫,可能使用陣列會好點,但是我不擅長陣列;也考慮過使用自定義函式來判斷使用者輸入的redis是否合法,或正在執行,但shell函式顯然不太擅長處理使用者傳遞的多個指令碼引數。

#!/bin/bash 

#2011-10-10 by qinshan.li 

# process=$(pgrep redis) 

sep='------------------'

path=/usr/local/redis-2.2.8 

status() ' |/bin/awk -f ' +|/' '' >process.txt 

/bin/netstat -anp |/bin/grep redis |/bin/awk -f "(:|/)" '' |/bin/awk '' >port.txt 

/usr/bin/join process.txt port.txt 

echo $sep 

fi } 

start() ') 

if [ -n "$p" ]; then 

echo "'$i' is running. stop it first." 

else 

echo -e "starting redis '$i'..."

/usr/bin/nohup /usr/local/bin/redis-server $path/$i/redis.conf >/dev/null 2>&1 & 

fi fi 

done 

} case $1 in 

stop) 

if [ $# -eq 1 ]; then 

/bin/kill -9 $(/usr/bin/pgrep redis) 

else 

shift 

for ins in "$@" 

do   

if [ -d $path/$ins ]; then 

p=$(status |/bin/grep $ins |/bin/awk '') 

if [ -z "$p" ]; then 

echo "'$ins' is not running." 

else 

/bin/kill -9 $p && echo "stop '$ins' successfully." || echo "stop '$ins' failed."

乙個sh指令碼 同時執行 多個sh指令碼

原來的啟動方式 cd opt openimscore pcscf.sh icscf.sh scscf.sh cd opt openimscore fhoss deploy startup.sh太過麻煩了,希望只執行乙個指令碼啟動所有的指令碼。在 opt openimscore 下,用乙個指令碼進行啟...

乙個容器多個程序,乙個pod多個容器

乙個容器多個程序 在docker的映象編譯指令碼dockerfile中帶起多個程序,如下可以在contivnet.sh中啟動多個程序 from 192.168.1.2 5001 world centos7 ovs 2.6.4 1 copy bin contiv bin copy scripts co...

乙個使用者可以管理多個表空間

看下面的指令碼 create user uname identified by default tablespace ts tab 001 temporary tablespace temp profile default quota unlimited on ts tab 001 quota un...