dopo aver faticato parecchio con decine di test, sono riuscito a scrivere questo:

$timestamp = time();

$filename = "$path_to_cgi_bin/_gen.lock";
$filename2 = "$path_to_cgi_bin/_gen.stop";

if(file_exists($filename) || file_exists($filename2)) {
print "Generator Status: <font color=\"red\">Down</font>";
/*Inizio codice rinomina file*/
if(file_exists($filename)) {
// oppure $filename_new =$filename.".".$timestamp;
$filename_new = "$path_to_cgi_bin/lock/_gen.lock.".$timestamp;
$renamed = rename ($filename, $filename_new);
if(!$renamed) {
print "
Rinomina file _gen.lock fallita.
\n";
}
}

/*Fine codice rinomina file*/
}
else {
print "Generator Status: <font color=\"green\">Up</font>";
}

Cosi rinomino il file se esiste e lo sposto nella dir "lock".
Ora ho bisogno di una "finezza" mi spiego meglio.
Tutto cio dovrebbe avvenire solo se il file esiste da almeno un un TOT tempo (in secondi) altrimenti la condizione dovrebbe risultare falsa.
Come posso procedere?