#!/usr/bin/env php '."\n"; // Expediteur $to = join(' ,',$emails); //recipient $mail_body = $message; //mail body $subject = $sujet; //subject mail($to, $subject, $mail_body, $headers); } define('MYSQL_HOST', 'localhost'); define('MYSQL_USER', 'user'); define('MYSQL_PASS', 'password'); define('SERVER_NAME', 'sd-13408'); // Paramètres if ( $argv[1] != 'info' && $argv[1] != 'mail' && $argv[1] != 'check' || in_array($argv[1], array('--help', '-help', '-h', '-?')) ) { ?> Vérifie l'état de la réplication MySQL Avec les options --help, -help, -h, et -?, vous obtiendrez cette aide. Utilisation manuelle: info Force l'envoi du mail de l'état de réplication mail connect_errno) { $message.= "Error can't connect to MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error."\n"; } else { $result = $link->query('SHOW SLAVE STATUS'); $status = $result->fetch_assoc(); $message.= "Master_Log_File : ".$status['Master_Log_File']."\n"; $message.= "Read_Master_Log_Pos : ".$status['Read_Master_Log_Pos']."\n"; $message.= "Relay_Master_Log_File: ".$status['Relay_Master_Log_File']."\n"; $message.= "Exec_Master_Log_Pos : ".$status['Exec_Master_Log_Pos']."\n"; $message.= "Seconds_Behind_Master : ".$status['Seconds_Behind_Master']."\n"; $message.= "Slave_IO_Running : ".$status['Slave_IO_Running']."\n"; $message.= "Slave_SQL_Running : ".$status['Slave_SQL_Running']."\n"; $message.= "Last_Error : ".$status['Last_Error']."\n"; } $sujet = 'Replication MySQL - '.SERVER_NAME.' - '; $erreurReplication = false; if ( $status['Slave_IO_Running']!='Yes' || $status['Slave_SQL_Running']=='No' || ( $status['Last_Errno']!=0 && $status['Last_Error']!='' ) ){ $erreurReplication = true; $sujet.= 'Erreur'; } elseif ( $status['Exec_Master_Log_Pos']!=$status['Read_Master_Log_Pos'] && intval($status['Seconds_Behind_Master'])>60 ){ $erreurReplication = true; $sujet.= 'Retard'; } else { $sujet.= 'OK'; } /* * Affiche les informations de réplication */ if ($display){ print $message; } /* * Force l'envoi du mail d'information de réplication */ elseif($mail) { sendMail( array('mricois@scores-decisions.com'), $sujet, $message); } /* * Envoi le mail que si la réplication est en erreur. * ou si la réplication est en retard * ou si le process slave est éteint */ elseif ( $check ){ if ( $erreurReplication ){ sendMail( array('supportdev@scores-decisions.com'), $sujet, $message); } } mysqli_close($link);