- Backup multiple directories and files
- Backup every X hours (run backup.php periodically using a scheduler; ex: cron)
- Store backup data separately for each date (backup history by date; ex: YYYY-MM-DD folders)
- Copy data in multiple (unlimited) backup destinations folders
// Backup options
$bkp_verbose = false;
$bkp_write_log_file = true;
// Directories / Files to back-up
$dir_bkp = array();
$dir_bkp[] = '/path-to-project1';
$dir_bkp[] = '/path-to-project2';
$dir_bkp[] = '/path-to-project3/file1';
// Backup storage directories
$dir_bkp_storage = array();
$date_bkp = date('Y-m-d');
$dir_bkp_storage[] = '/path-to-backup-dir1/' . $date_bkp;
$dir_bkp_storage[] = '/path-to-backup-dir2/' . $date_bkp;
foreach($dir_bkp_storage as $dir_storage) {
$time_start = microtime(true);
if(!is_dir($dir_storage)) {
if(!mkdir($dir_storage, 0755)) {
echo 'Error: could not create bkp dir: ' . $dir_storage;
continue;
}
}
foreach($dir_bkp as $dir) {
echo chr(10) . 'copy backup from ' . $dir . ' to ' . $dir_storage . ' ... ';
$cmd = "rsync -avz $dir $dir_storage/";
if($bkp_verbose) {
echo shell_exec($cmd);
} else {
shell_exec($cmd);
}
}
if($bkp_write_log_file) {
$time = microtime(true) - $time_start;
file_put_contents(
$dir_storage . '/bkp-log',
'Date end: '.date('Y-m-d H:i:s') . chr(10) .
'Total time: ' . $time . ' seconds' . chr(10)
');
}
}
- Backup every X hours (run backup.php periodically using a scheduler; ex: cron)
- Store backup data separately for each date (backup history by date; ex: YYYY-MM-DD folders)
- Copy data in multiple (unlimited) backup destinations folders
// Backup options
$bkp_verbose = false;
$bkp_write_log_file = true;
// Directories / Files to back-up
$dir_bkp = array();
$dir_bkp[] = '/path-to-project1';
$dir_bkp[] = '/path-to-project2';
$dir_bkp[] = '/path-to-project3/file1';
// Backup storage directories
$dir_bkp_storage = array();
$date_bkp = date('Y-m-d');
$dir_bkp_storage[] = '/path-to-backup-dir1/' . $date_bkp;
$dir_bkp_storage[] = '/path-to-backup-dir2/' . $date_bkp;
foreach($dir_bkp_storage as $dir_storage) {
$time_start = microtime(true);
if(!is_dir($dir_storage)) {
if(!mkdir($dir_storage, 0755)) {
echo 'Error: could not create bkp dir: ' . $dir_storage;
continue;
}
}
foreach($dir_bkp as $dir) {
echo chr(10) . 'copy backup from ' . $dir . ' to ' . $dir_storage . ' ... ';
$cmd = "rsync -avz $dir $dir_storage/";
if($bkp_verbose) {
echo shell_exec($cmd);
} else {
shell_exec($cmd);
}
}
if($bkp_write_log_file) {
$time = microtime(true) - $time_start;
file_put_contents(
$dir_storage . '/bkp-log',
'Date end: '.date('Y-m-d H:i:s') . chr(10) .
'Total time: ' . $time . ' seconds' . chr(10)
');
}
}
No comments:
Post a Comment