tech note

インフラ技術や車についてつぶやいていくブログ

MHAのStatusをプロンプトに表示する方法を考えてみた

f:id:tea_cat:20180913013643j:plain

コマンド

こちらを、~/.bashrc等に貼り付ける

mha_status_check () {
    mysql -uroot -e "SELECT @@read_only;" | grep -q 0
    if [ $? -eq 0 ]; then
        ip a | grep -q secondary
        if [ $? -eq 0 ]; then
            echo Master
        else
            echo ?Master?
        fi
    else
       ip a | grep -q secondary
        if [ $? -eq 1 ]; then
            echo Slave
        else
            echo ?Slave?
        fi
    fi
}

PS1="[\u@\h:\$(mha_status_check)/\! \W]#"

説明

まずread_onlyかどうかを確認
read_onlyでなく、且つsecondary IPを保持しているか確認
OKならMaster
read_onlyで且つ、secondary IPを保持していなければSlave