#!/usr/bin/php -q # : # Purpose : Check if any redo log files exist, and how big they are. # : # Notes : No Support Given # : 1.0 - be sure to enter a trailing slash for the directory #============:============================================================== # 1.0 : 29/07/2005 # : Initial coding # 1.1 : 19/08/2005 # : changed to du instead of ls //INIT $string="REDO"; //PARAMS $ARG1 = $argv[1]; $ARG2 = $argv[2]; $ARG3 = $argv[3]; //DEFAULTS if ($ARG2 == "") { $ARG2 = "/vmfs/internal";} if ($ARG3 == "") { $ARG3 = "4000";} //FUNCTIONS function vol($ARG1,$ARG2,$ARG3,$string) { $COMMAND="/usr/bin/ssh -x -l root $ARG1 ls -la /bin"; exec($COMMAND,$OUTPUTNULL,$ERROR); if ($ERROR <> 0) { echo "WARN - Permission Error - check authorized_keys"; exit(1);} $COMMAND="/usr/bin/ssh -x -l root $ARG1 du -m $ARG2/* | grep $string"; exec($COMMAND,$OUTPUT); for($i = 0; $i < count($OUTPUT); $i++) { $pos = strpos($OUTPUT[$i], "/"); $size=trim(substr($OUTPUT[$i], 0, $pos)); if ($size >= $ARG3) { echo "ERROR - $OUTPUT[$i] - redo exceeds $ARG3 MB"; exit(2); } else { echo "OK - $OUTPUT[$i] - redo file present"; exit(0); } } echo "OK - No $string-files found"; exit(0); } function help() { echo "check_esx_redo.php %SERVER [DIRECTORY] [QUOTA in MB] : redo check\n"; echo "check_esx_redo.php HELP : this text\n"; exit(2); } //MAIN switch (TRUE) { case ($ARG1 <> ""): vol($ARG1,$ARG2,$ARG3,$string); break; default: help(); } ?>