管理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.