我們在一台伺服器上部署了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...