Jag skulle behöva lite hjälp med att få en script att fungera att köra från crontab.
Det skripten ska göra är att kolla om mysql statusen är start/running eller stop/waiting.
Och ifall statusen är stop/waiting så ska den slå igång mysql så att statusen bilr start/running.
Jag har en script som jag hittat på nätet som fungerar när jag kör den manuelt. Men det konstiga är att när jag kör den som crontab job så fungerar det inte.
Av någon anledning så får jag INTE samma output text när jag kör /etc/init.d/mysql status via cronjob/crontab som när jag kör samma kommando manuelt direkt.
Output texten ska ju bli någont som typ:
Kod: Markera allt
mysql start/running, process 17355
Kod: Markera allt
* /usr/bin/mysqladmin Ver 8.42 Distrib 5.5.55, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.5.55-0ubuntu0.14.04.1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 2 hours 25 min 59 sec
Threads: 3 Questions: 1188265 Slow queries: 0 Opens: 7143 Flush tables: 1 Open tables: 400 Queries per second avg: 135.662
Såhär ser scripten ut:
Kod: Markera allt
#!/bin/bash
UP=$(/etc/init.d/mysql status | grep running | grep -v not | wc -l);
if [ "$UP" -ne 1 ];
then
echo "MySQL is down.";
service mysql start
else
echo "Mysql is still running.";
fi
Om man kör crontab från en annan user än root så står det alltid att mysql inte kör fast den kör.
Någon som vet vad felet är?
Jag kör ubuntu server 14.04.5 LTS
Mysql v5.5.55
Körs på VMware VPS