利用shell開發sentinel的啟停指令碼

2021-10-12 01:37:30 字數 3650 閱讀 6619

[root@node21 ~]

# tree -p /data/sentinel/26379/

/data/sentinel/26379/

├── [drwxr-xr-x] conf <=

= 存放sentinel的配置檔案

├── [drwxr-xr-x] logs <=

= 存放sentinel的日誌檔案

├── [drwxr-xr-x] run <=

= 存放sentinel的pid檔案,前提是sentinel的配置檔案中配置了pidfile引數

└── [drwxr-xr-x] script <=

= 存放sentinel的啟停指令碼

4 directories, 0 files

#### 啟動方式

redis-server path/sentinel.conf --sentinel # 配置檔案中要配置daemonize的值為yes

redis-server path/sentinel.conf --sentinel &

# 不用管配置檔案中daemonize是否等於yes

redis-sentinel path/sentinel.conf # 配置檔案中要配置daemonize的值為yes

redis-sentinel path/sentinel.conf &

# 不用管配置檔案中daemonize是否等於yes

#### 停止方式

redis-cli -h 《可連線的ip> -p 6379 shutdown

# 不需要認證,配置檔案中也沒提供認證的引數

sentinel在連線時不需要認證(配置檔案沒提供相關引數),但可以對相關命令做別名,例如shutdown

建立 /data/sentinel/26379/script/sentineld 檔案,將以下內容放在裡面,修改許可權700,屬主/組redis

#!/bin/bash

## sentinel start stop scripts

## define variables

ip="172.16.1.21"

port=

"26379"

exec=

conf=

"/data/sentinel/$port/conf/sentinel.conf"

pid=

"/data/sentinel/$port/run/sentinel.pid"

cliexec=

# load functions

[ -f /etc/init.d/functions ]

&&source /etc/init.d/functions

# define functions

start(

)stop(

)status(

)# case call functions

case

"$1"

in start)

start

retval=$?;

; stop)

stop

retval=$?;

; restart)

stop

sleep 2

start

retval=$?;

; status)

status

retval=$?;

; *)

echo

"usage:$0"

exit 1

esac

#### 指令碼可執行的選項

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld

usage:/data/sentinel/26379/script/sentineld

#### 檢視其sentinel的狀態

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld status

sentinel[26379] is not running

#### 啟動sentinel並檢視其狀態

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld start

start sentinel[26379]

service

[ 確定 ]

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld status

sentinel[26379] is running

[redis@node21 ~]$

[redis@node21 ~]$ ps -ef|

grep sentinel

redis 23064 23017 0 00:07 pts/0 00:00:00 grep --color=auto sentinel

#### 停止sentinel並檢視其狀態

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld stop

stop sentinel[26379]

service

[ 確定 ]

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld status

sentinel[26379] is not running

[redis@node21 ~]$

[redis@node21 ~]$ ps -ef|

grep sentinel

redis 23074 23017 0 00:07 pts/0 00:00:00 grep --color=auto sentinel

#### 重啟sentinel並檢視其狀態

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld restart

sentinel[26379] is not running

start sentinel[26379]

service

[ 確定 ]

[redis@node21 ~]$

[redis@node21 ~]$ /data/sentinel/26379/script/sentineld status

sentinel[26379] is running

[redis@node21 ~]$

[redis@node21 ~]$ ps -ef|

grep sentinel

redis 23086 23017 0 00:10 pts/0 00:00:00 grep --color=auto sentinel

利用shell開發keepalived啟動指令碼

啟動方式 keepalived f 配置檔案 絕對路徑 p pid檔案 絕對路徑 關閉方式 kill cat pid檔案 絕對路徑 注意 該指令碼只能linux的超級使用者root才能啟動,因為指令碼中有進行限制 bin bash define variables retval 0 conf exc...

利用shell命令操作Memcached

首先,需要了解memcached協議,如果不清楚可參考 memcached 協議中英文對照 1 資料儲存 假設key為zhangyan,value為12345 printf set zhangyan 0 0 5 r n12345 r n nc 127.0.0.1 11211 stored 2 資料取...

shell開發學習

最近做乙個小專案,需要用編寫個指令碼做監控,順便記錄下使用到的內容 1.shell的區域性變數定義local 當shell指令碼中需要使用的函式時,這個時候就可以選擇使用區域性變數,還是很有必要的。可以避免傳入函式中的同名變數名在函式內被修改而影響指令碼全域性變數的值。特別是指令碼在不同函式中使用索...