Rogdab
27-02-2008, 11:09
Hallo,
ich habe ein bash script das mir den status einiger mysql internen funktionen zurückgibt.
Wenn jetzt aber der mysql server überhaupt nicht erreichbar ist, schickt mir cron eine meldung
check_mysql_status.sh: line 63: [: =: unary operator expected
check_mysql_status.sh: line 75: [: -ge: unary operator expected
wenn ich auf der console die zuweisung der variablen test, gibt er die Fehlermeldung über den verbindungsabbruch nach zuweisung der variablen aus, so das diese leer bleibt, eine deklaration am anfang des scriptes hilft leider auch nicht, kann ich diese Ausgabe irgentwie umleiten oder abfangen?
ERROR 2003 (HY000): Can't connect to MySQL server on '172.17.41.1' (113)
./work_check_mysql_status.sh: line 66: [: =: unary operator expected
./work_check_mysql_status.sh: line 78: [: -ge: unary operator expected
hier einige auszüge aus dem script
CHK_SECONDS_BEHIND=`mysql -h "${SERVER_IP[server_no]}" -u monitoring --execute 'show slave status\G'|grep 'Seconds_Behind_Master:'|sed 's/ Seconds_Behind_Master: //' 2> /dev/null`
if [ $CHK_SECONDS_BEHIND = "NULL" ]
then
echo -e " Slave on ${SERVER_NAME[server_no]} IP: ${SERVER_IP[server_no]}
\n It seems to be unknown how far the slave is behind!
\n Date: ${DATUM}"| mail -s "mysql replication error" $ADMIN_EMAIL
else
if [ $server_no = 5 ] || [ $server_no = 6 ] || [ $server_no = 7 ]
then
BEHIND="15000"
fi
if [ $CHK_SECONDS_BEHIND -ge $BEHIND ]
then
# echo $CHK_SECONDS_BEHIND;
echo -e " Server: ${SERVER_NAME[server_no]} IP: ${SERVER_IP[server_no]}
\n Message: Server is out of timing($CHK_SECONDS_BEHIND seconds behind the master)!
\n Date: ${DATUM}"| mail -s "mysql replication error" $ADMIN_EMAIL
fi
fi
danke
ich habe ein bash script das mir den status einiger mysql internen funktionen zurückgibt.
Wenn jetzt aber der mysql server überhaupt nicht erreichbar ist, schickt mir cron eine meldung
check_mysql_status.sh: line 63: [: =: unary operator expected
check_mysql_status.sh: line 75: [: -ge: unary operator expected
wenn ich auf der console die zuweisung der variablen test, gibt er die Fehlermeldung über den verbindungsabbruch nach zuweisung der variablen aus, so das diese leer bleibt, eine deklaration am anfang des scriptes hilft leider auch nicht, kann ich diese Ausgabe irgentwie umleiten oder abfangen?
ERROR 2003 (HY000): Can't connect to MySQL server on '172.17.41.1' (113)
./work_check_mysql_status.sh: line 66: [: =: unary operator expected
./work_check_mysql_status.sh: line 78: [: -ge: unary operator expected
hier einige auszüge aus dem script
CHK_SECONDS_BEHIND=`mysql -h "${SERVER_IP[server_no]}" -u monitoring --execute 'show slave status\G'|grep 'Seconds_Behind_Master:'|sed 's/ Seconds_Behind_Master: //' 2> /dev/null`
if [ $CHK_SECONDS_BEHIND = "NULL" ]
then
echo -e " Slave on ${SERVER_NAME[server_no]} IP: ${SERVER_IP[server_no]}
\n It seems to be unknown how far the slave is behind!
\n Date: ${DATUM}"| mail -s "mysql replication error" $ADMIN_EMAIL
else
if [ $server_no = 5 ] || [ $server_no = 6 ] || [ $server_no = 7 ]
then
BEHIND="15000"
fi
if [ $CHK_SECONDS_BEHIND -ge $BEHIND ]
then
# echo $CHK_SECONDS_BEHIND;
echo -e " Server: ${SERVER_NAME[server_no]} IP: ${SERVER_IP[server_no]}
\n Message: Server is out of timing($CHK_SECONDS_BEHIND seconds behind the master)!
\n Date: ${DATUM}"| mail -s "mysql replication error" $ADMIN_EMAIL
fi
fi
danke