We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

[HOW-TO] Hard reboot auto (rps)


Bruno
20-04-2008, 21:17
Dziendobry,

Oto PHP skrypt dla RPSa. OCO (OvhCheckOut) zainstalowany jest na każdym RPS i pokazuje stan RPSa via telnet. Ten skrypt sprawdza ten stan i jak RPS jest w "read only" (ping ok ale SSH down) no to robi "reboot hard" auto.

/!\ : skrypt ma bic na innym serwerze nisz RPS !

Uwaga na configuracje :
Kod PHP:
        $host "rXXXXX.ovh.net" ;  // the rps name
        
$login_manager "XXXXXX-ovh" ;  //  your manager login...
        
$passwd_manager "*******" ;  // ...and its password
        
$mail "" //  the mail to send the hard reboot alert 
Skrypt hardRebootDoIfReadOnly.php :

Kod PHP:
/* This PHP script tests your RPS status and do a reboot hard if it's down
Reboot hard only if your rps is in read-only */

############# begin config #############

    // OBLIGATOIRE
        
$host "rXXXXX.ovh.net" ;  // the rps name
        
$login_manager "XXXXXX-ovh" ;  //  your manager login...
        
$passwd_manager "*******" ;  // ...and its password
        
$mail "" //  the mail to send the hard reboot alert

    // OPTIONAL
        
$reason "OCO 398 Error read-only" // the reason of the hard reboot

############# end config ###############


// test the rps status with OCO (OvhChckOut) via telnet
    
$test shell_exec("telnet $host 79") ;
    
$result explode("\n"$test) ;
    
$result $result[3] ;

// get  the error code
    
$code intval($result[0].$result[1].$result[2]) ;

if (
$code == 398)
{  
// the RPS is KO, reboot hard !

    
$soap = new SoapClient('http://www.ovh.com/soapi/ovh.wsdl');

    
//login
    
try {
    
$login $login_manager;
    
$password $passwd_manager ;

    
$session $soap->login($login,$password,null);

    echo 
"login successfull";

    } catch(
SoapFault $fault) {
    echo 
"Error : ".$fault;
    }

    
//dedicatedHardRebootDo
    
try {

    
$result $soap->dedicatedHardRebootDo($session$host$reason$mail'');

    echo 
"dedicatedHardRebootDo successfull";

    } catch(
SoapFault $fault) {
    echo 
"Error : ".$fault;
    }

    
//logout
    
try {

    
$result $soap->logout($session);

    echo 
"logout successfull";

    } catch(
SoapFault $fault) {
    echo 
"Error : ".$fault;
    }

}

?>
I cron (co 10 minut)

Kod:
*/10 * * * * php /path/of/the/file/hardRebootDoIfReadOnly.php