作成
mysql や apache が落ちた場合に自動起動するcronとsh
###memo サーバー自体は動作しているけど、mysql だけがSTOPしたとか1年に1回ぐらいあったのでその対策です。centosです。 ### まずは ルートユーザー(root) になって ###command (root ユーザーで) crontab -e ### 以下のような感じで cron に追加 ###source (crontab -e) # 毎分 auto_start.sh の スクリプトを起動 (xxxは適当) * * * * * /bin/sh /xxx/auto_start.sh ### /xxx/auto_start.sh の中身は以下です。 ###source (/xxxxx/auto_start.sh) #!/bin/sh n=`ps -ef | grep mysqld | grep -v grep | wc -l` if [ $n = 0 ]; then sudo service mysqld start fi n=`ps -ef | grep httpd | grep -v grep | wc -l` if [ $n = 0 ]; then sudo service httpd start fi ###memo 簡単に説明をすると #*#"ps -ef" は 起動しているプロセス一覧 #*#"grep mysqld" は 上記から mysqld を抽出 #*#"grep -v grep" は さらに grep が含まれている場合は除外 #*#"wc -l" は 行数 そして 0 件なら 起動実行する。 起動コマンドは service mysqld start なり systemctl start mysqld なり ###title 起動状態確認 ### mysql の起動状態確認は ###command systemctl status mysqld ### 起動中の場合は Active: active (running)みたいになります。 ###source (起動中の場合) service mysqld status Redirecting to /bin/systemctl status mysqld.service ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since 木 2021-07-01 15:25:05 JST; 36min ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 19092 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 19058 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 19095 (mysqld) CGroup: /system.slice/mysqld.service mq19095 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 7月 01 15:25:01 nuc20 systemd[1]: Starting MySQL Server... 7月 01 15:25:05 nuc20 systemd[1]: Started MySQL Server. ### 停止中の場合は Active: inactive (dead) みたいになります。 ###source (停止中の場合) Redirecting to /bin/systemctl status mysqld.service ● mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: inactive (dead) since 木 2021-07-01 16:01:51 JST; 1s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 19092 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS) Process: 19058 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 19095 (code=exited, status=0/SUCCESS) 7月 01 15:25:01 nuc20 systemd[1]: Starting MySQL Server... 7月 01 15:25:05 nuc20 systemd[1]: Started MySQL Server. 7月 01 16:01:49 nuc20 systemd[1]: Stopping MySQL Server... 7月 01 16:01:51 nuc20 systemd[1]: Stopped MySQL Server. ### ログはデフォルトだと /var/log/mysqld.log だと思います。 ###command tail -n 100 /var/log/mysqld.log tail -f /var/log/mysqld.log ###
wakatta 記法
投稿の仕方
基本的な記法
エンジニア向け記法
記法のサンプル
このコンテンツを見る