74 $this->backupZipFile = $this->targetFolder.$this->backupZipFile;
76 if (is_file($this->backupZipFile))
100 $this->backupSettings[
'USER_ID'] = $_SESSION[
'uid'];
112 if (!isset($file) || (empty($file)))
120 return $this->hashValue = hash_file(
'md5', $file);
124 \YAWK\sys::setSyslog(
$db, 52, 2,
"failed to generate hash value - $file is not accessable", 0, 0, 0, 0);
138 if (!is_writeable($this->tmpFolder) && (!empty($this->tmpFolder)))
144 if (isset($_POST[
'contentFolder']) && (!empty($_POST[
'contentFolder'])))
146 if (!is_dir($this->tmpFolder.
'content'))
148 if (!mkdir($this->tmpFolder .
'content'))
151 \YAWK\sys::setSyslog(
$db, 51, 2,
"failed to create " . $this->tmpFolder .
"content", 0, 0, 0, 0);
156 foreach ($_POST[
'contentFolder'] as
$folder)
160 $this->targetFolder = $this->tmpFolder.
'content/';
162 if (is_dir($this->currentFolder.$folder))
165 if (!is_dir($this->targetFolder.$folder))
168 mkdir($this->targetFolder.$folder);
169 $this->targetFolder = $this->tmpFolder.
'content/'.
$folder;
173 $this->targetFolder = $this->tmpFolder.
'content/'.
$folder;
177 if ($this->
copyFolder(
$db, $folder, $this->targetFolder) !==
true)
179 \YAWK\sys::setSyslog(
$db, 51, 2,
"failed to create ".$this->contentFolder.
"$folder", 0, 0, 0, 0);
186 if (isset($_POST[
'mediaFolder']) && (!empty($_POST[
'mediaFolder'])))
188 if (!is_dir($this->tmpFolder.
'media'))
190 if (!mkdir($this->tmpFolder .
'media'))
193 \YAWK\sys::setSyslog(
$db, 51, 2,
"failed to create " . $this->tmpFolder .
"media", 0, 0, 0, 0);
198 foreach ($_POST[
'mediaFolder'] as
$folder)
202 $this->targetFolder = $this->tmpFolder.
'media/';
204 if (is_dir($this->currentFolder.$folder))
207 if (!is_dir($this->targetFolder.$folder))
210 mkdir($this->targetFolder.$folder);
211 $this->targetFolder = $this->tmpFolder.
'media/'.
$folder;
215 $this->targetFolder = $this->tmpFolder.
'media/'.
$folder;
219 if ($this->
copyFolder(
$db, $folder, $this->targetFolder) !==
true)
221 \YAWK\sys::setSyslog(
$db, 51, 2,
"failed to create ".$this->mediaFolder.
"$folder", 0, 0, 0, 0);
227 if (isset($_POST[
'systemFolder']) && (!empty($_POST[
'systemFolder'])))
229 if (!is_dir($this->tmpFolder.
'system'))
231 if (!mkdir($this->tmpFolder .
'system'))
234 \YAWK\sys::setSyslog(
$db, 51, 2,
"failed to create " . $this->tmpFolder .
"system", 0, 0, 0, 0);
239 foreach ($_POST[
'systemFolder'] as
$folder)
243 $this->targetFolder = $this->tmpFolder.
'system/';
245 if (is_dir($this->currentFolder.$folder))
248 if (!is_dir($this->targetFolder.$folder))
251 mkdir($this->targetFolder.$folder);
252 $this->targetFolder = $this->tmpFolder.
'system/'.
$folder;
256 $this->targetFolder = $this->tmpFolder.
'system/'.
$folder;
260 if ($this->
copyFolder(
$db, $folder, $this->targetFolder) !==
true)
262 \YAWK\sys::setSyslog(
$db, 51, 2,
"failed to create ".$this->systemFolder.
"$folder", 0, 0, 0, 0);
270 if (isset($_POST[
'backupMethod']) && (!empty($_POST[
'backupMethod'])))
272 switch ($_POST[
'backupMethod'])
276 $this->finalFilename =
"complete-backup.zip";
277 $this->backupMethod =
"complete";
283 $this->finalFilename =
"mediafolder-backup.zip";
284 $this->backupMethod =
"mediaFolder";
290 $this->finalFilename =
"custom-backup.zip";
291 $this->backupMethod =
"custom";
297 $this->finalFilename =
"backup.zip";
298 $this->backupMethod =
"unknown";
311 if (!is_file($this->tmpFolder.$this->configFilename))
313 \YAWK\sys::setSyslog(
$db, 51, 1,
"backup ini file written, but not found - please check: $this->configFilename", 0, 0, 0, 0);
320 if ($this->
zipFolder(
$db, $this->tmpFolder, $this->tmpFolder.
"$this->finalFilename") ==
true)
326 if (isset($_POST[
'overwriteBackup']) && ($_POST[
'overwriteBackup'] ==
"false"))
329 if (isset($_POST[
'newFolder']) && (!empty($_POST[
'newFolder'])))
332 $this->archiveBackupSubFolder = $this->archiveBackupFolder.$_POST[
'newFolder'].
"/";
335 if (!is_dir($this->archiveBackupSubFolder))
337 if (mkdir($this->archiveBackupSubFolder))
340 \YAWK\sys::setSyslog(
$db, 49, 0,
"archive directory created: $this->archiveBackupSubFolder", 0, 0, 0, 0);
345 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to create archive directory: $this->archiveBackupSubFolder", 0, 0, 0, 0);
350 else if (isset($_POST[
'selectFolder']) && (!empty($_POST[
'selectFolder'])))
352 $this->archiveBackupSubFolder = $this->archiveBackupFolder.$_POST[
'selectFolder'].
"/";
357 if (rename($this->tmpFolder.$this->finalFilename, $this->archiveBackupSubFolder.$this->finalFilename))
359 if (is_file($this->archiveBackupSubFolder.$this->finalFilename))
364 \YAWK\sys::setSyslog(
$db, 49, 3,
"created ".$this->archiveBackupSubFolder.
"$this->finalFilename", 0, 0, 0, 0);
369 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to create ".$this->archiveBackupSubFolder.
"$this->finalFilename", 0, 0, 0, 0);
375 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to move ".$this->archiveBackupSubFolder.
"$this->finalFilename", 0, 0, 0, 0);
382 if (rename($this->tmpFolder.$this->finalFilename, $this->currentBackupFolder.$this->finalFilename))
385 if (is_file($this->currentBackupFolder.$this->finalFilename))
389 \YAWK\sys::setSyslog(
$db, 49, 3,
"created ".$this->currentBackupFolder.
"$this->finalFilename", 0, 0, 0, 0);
394 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to create ".$this->currentBackupFolder.
"$this->finalFilename", 0, 0, 0, 0);
400 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to move ".$this->currentBackupFolder.
"$this->finalFilename", 0, 0, 0, 0);
407 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to backup: POST data not sent", 0, 0, 0, 0);
413 \YAWK\sys::setSyslog(
$db, 52, 0,
"unable to zip ".$this->finalFilename.
"", 0, 0, 0, 0);
429 $this->sourceFolder = $this->currentFolder.$folder;
434 if (\
YAWK\
sys::xcopy($this->sourceFolder, $this->targetFolder) ===
false)
436 \YAWK\sys::setSyslog(
$db, 52, 2,
"failed to copy $this->sourceFolder to $this->targetFolder", 0, 0, 0, 0);
453 if ($this->overwriteBackup ==
"false")
458 if (isset($_POST[
'newFolder']) && (!empty($_POST[
'newFolder'])))
461 $this->archiveBackupSubFolder = $this->archiveBackupFolder.$_POST[
'newFolder'].
"/";
464 if (!is_dir($this->archiveBackupSubFolder))
466 if (mkdir($this->archiveBackupSubFolder))
469 \YAWK\sys::setSyslog(
$db, 49, 0,
"archive directory created: $this->archiveBackupSubFolder", 0, 0, 0, 0);
474 \YAWK\sys::setSyslog(
$db, 52, 0,
"failed to create archive directory: $this->archiveBackupSubFolder", 0, 0, 0, 0);
479 else if (isset($_POST[
'selectFolder']) && (!empty($_POST[
'selectFolder'])))
481 $this->archiveBackupSubFolder = $this->archiveBackupFolder.$_POST[
'selectFolder'].
"/";
495 \YAWK\sys::setSyslog(
$db, 50, 3,
"file backup overwritten", 0, 0, 0, 0);
500 \YAWK\sys::setSyslog(
$db, 52, 2,
"failed to overwrite file backup", 0, 0, 0, 0);
513 \YAWK\sys::setSyslog(
$db, 52, 2,
"failed to write file backup", 0, 0, 0, 0);
doFolderBackup($db)
Copy files to tmp folder, zip it and move it to the place where this backup should be stored (current...
startFileBackup($db)
Check settings and start file backup.
setBackupSettings()
Write backup.ini file (used by backup restore methods)
copyFolder($db, $folder, $targetFolder)
Copy a folder from source to target, including all subdirectories.
initFolderBackup(object $db, string $overwriteBackup, string $zipBackup)
Initialize and start file backup.
getHashValue($db, $file)
Get and return hash value of $file.
zipFileExists()
Check if .zip backup file exists.
zipFolder($db, $source, $destination)
Zip a whole folder from $source to $destination.zip.
static xcopy($source, $dest, $permissions=0755)
Copy a file, or recursively copy a folder and its contents.
static recurseRmdir($dir)
remove a directory recurse
static writeIniFile($array, $file)
write ini file
static now()
returns the current datetime
This class serves methods to create backup from files.