diff --git a/web/clitools/mustool.php b/web/clitools/mustool.php index c19e63d..0baf29c 100755 --- a/web/clitools/mustool.php +++ b/web/clitools/mustool.php @@ -23,6 +23,7 @@ $opts=array( 'setblack'=>false, 'shuffle'=>false, 'updstats'=>false, + 'optimize'=>false, 'deadline'=>60*24*60*60,// se un'istanza non risponde da 60 giorni dichiararla morta 'newline'=>30*24*60*60,// se un'istanza è nuova, dopo 30 giorni non lo è più ); @@ -42,6 +43,8 @@ $help='mustool.php Randomizza la lista delle istanze (i valori della colonna RPos). updstats Aggiorna le statistiche sul sito. + optimize + Ottimizza le tabelle del database. OPZIONI -h, --help Mostra questo aiuto ed esce. @@ -75,6 +78,9 @@ for ($i=1; $i<$argc; $i++) { } elseif ($argv[$i]=='updstats') { $dosome=true; $opts['updstats']=true; + } elseif ($argv[$i]=='optimize') { + $dosome=true; + $opts['optimize']=true; } else { mexit('«'.$argv[$i].'» non è un’azione conosciuta (usa «-h» per vedere la guida).'.N,1); } @@ -197,8 +203,27 @@ if ($opts['updstats']) { echo('fatto! (righe inserite: '.$inserts.')'.N); } +if ($opts['optimize']) { + echo('Ottimizzo le tabelle del database...'.N); + $res=mysqli_query($link,'SHOW TABLES') or mexit(__LINE__.': '.mysqli_error($link).N,2); + while ($row=mysqli_fetch_row($res)) { + $rres=mysqli_query($link,'OPTIMIZE TABLE '.$row[0]) or mexit(__LINE__.': '.mysqli_error($link).N,2); + $rrow=mysqli_fetch_assoc($rres); + if ($rrow['Msg_type']=='error' || $rrow['Msg_type']=='warning') + fwrite(STDERR,kimplode($rrow).N); + } + echo('Fatto!'.N); +} + mysqli_close($link); exit(0); +function kimplode(&$arr) { + $buf=[]; + foreach ($arr as $key=>$val) + $buf[]=$key.': '.$val; + return(implode('; ',$buf)); +} + ?>