シェルだとどうしても動かないので・・・。
stat使えないし、awkとか使うとエラー吐いてくるので、PHPで作りました(´・ω・`)
これはきちんと動作する事を確認済みです。
<?php
$targets = glob("/virtual/YourID/log/*.log");
$outputdir = "/virtual/YourID/logbk";
$workfile = "/virtual/YourID/logbk/lastdate.work";
// Check output directory exists
if (!file_exists($outputdir)) {
mkdir($outputdir);
}
// Get last run time
$ldate = 0;
if (file_exists($workfile)) {
$ldate = intval(file_get_contents($workfile));
}
// Write last run time
// file_put_contents($workfile, time());
// exec("echo " . time() . ">" . $workfile);
$fp = fopen($workfile, 'w');
fwrite($fp, time());
fclose($fp);
// Execute backup
foreach ($targets as $logfile) {
$fdate = filemtime($logfile);
if ($ldate <= $fdate) {
$cpname = $outputdir . "/" . date("YmdHis", $fdate) . "-" . basename($logfile);
copy($logfile, $cpname);
exec("gzip -f " . $cpname);
}
}
?>