【shell】编写一个脚本管理服务状态

管理mysql数据库状态的脚本

if多分支实现

#!/bin/bash

if [[ $1 == "start"  ]];then
        echo "start mysql"
        systemctl start mysql
elif [[ $1 == "stop"  ]];then
        echo "stop mysql"
        systemctl stop mysql
elif [[ $1 == "restart" || $1 == "reboot" || $1 == "reload" ]];then
        echo "restart mysql"
        systemctl restart mysql
elif [[ $1 == "status"  ]];then
        echo "status mysql"
        systemctl status mysql
else
        echo "$0 start|restart|stop|status"
fi

case实现

#!/bin/bash
case $1  in
start)
        echo "start mysql"
        systemctl start mysql
        ;;
stop)
        echo "stop mysql"
        systemctl stop mysql
        ;;
restat|reboot|reload)
        echo "restart mysql"

        systemctl restart mysql
        ;;
status)
        echo "status mysql"
        systemctl status mysql
        ;;
*)
        echo "$0 start|restart|stop|status"
        ;;
esac

效果

[root@localhost shell]# ./mysql_manager.sh
./mysql_manager.sh start|restart|stop|status



[root@localhost shell]# ./mysql_manager.sh status
status mysql
● mariadb.service - MariaDB 10.6.19 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Fri 2025-03-07 15:25:55 CST; 15s ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 36455 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 36400 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 36398 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 36441 (mariadbd)
   Status: "Taking your SQL requests now..."
    Tasks: 13 (limit: 129761)
   CGroup: /system.slice/mariadb.service
           └─36441 /usr/sbin/mariadbd

Mar 07 15:25:54 localhost.localdomain systemd[1]: Starting MariaDB 10.6.19 database server...
Mar 07 15:25:55 localhost.localdomain systemd[1]: Started MariaDB 10.6.19 database server.


[root@localhost shell]# ./mysql_manager.sh stop
stop mysql



[root@localhost shell]# ./mysql_manager.sh status
status mysql
● mariadb.service - MariaDB 10.6.19 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: inactive (dead) since Fri 2025-03-07 15:26:13 CST; 1s ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 36455 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 36441 ExecStart=/usr/sbin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 36400 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1 (code=exited, status=0/SUCCESS)
  Process: 36398 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
 Main PID: 36441 (code=exited, status=0/SUCCESS)
   Status: "MariaDB server is down"

Mar 07 15:25:54 localhost.localdomain systemd[1]: Starting MariaDB 10.6.19 database server...
Mar 07 15:25:55 localhost.localdomain systemd[1]: Started MariaDB 10.6.19 database server.
Mar 07 15:26:12 localhost.localdomain systemd[1]: Stopping MariaDB 10.6.19 database server...
Mar 07 15:26:13 localhost.localdomain systemd[1]: Stopped MariaDB 10.6.19 database server.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值