Code: Select all
<?php
$emailaddress = "[email protected]";
$path = "/full_server_path_to_file_goes_here"; // full server path to the directory where you want the backup files (no trailing slash)
// modify the above values to fit your environment
$target = $path . "/backup" . date(d) . ".tar.gz";
if (file_exists($target)) unlink($target);
system("tar --create --preserve --gzip --file=".$target." ~/public_html ~/mail",$result);
$size = filesize($target);
switch ($size) {
case ($size>=1048576): $size = round($size/1048576) . " MB"; break;
case ($size>=1024); $size = round($size/1024) . " KB"; break;
default: $size = $size . " bytes"; break;
}
$message = "The website backup has been run.\n\n";
$message .= "The return code was: " . $result . "\n\n";
$message .= "The file path is: " . $target . "\n\n";
$message .= "Size of the backup: " . $size . "\n\n";
$message .= "Server time of the backup: " . date(" F d h:ia") . "\n\n";
mail($emailaddress, "Website Backup Message" , $message, "From: Website <>");
?>
Code: Select all
system("tar --create --preserve --gzip --file=".$target." --exclude ~/public_html/audio ~/public_html ~/mail",$result);
- Before using cron, run the script from your browser to make sure it works as anticipated.
- Set a cron job to run the script once a day (at an odd time - like 4:23am - to minimize server load issues).
- This example backs up the public_html and mail directories.
- The backup file (named backup.XX.tar.gz) will be created in your root directory (above public_html).