きちんと動くバックアップスクリプト

  • 投稿日:
  • カテゴリ:

シェルだとどうしても動かないので・・・。
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);
  }
}

?>

新しいサイトもよろしくお願いします!