root / src / backup.php @ ed74d101
Historique | Voir | Annoter | Télécharger (2,09 ko)
1 |
<?php
|
---|---|
2 |
require_once ("connect_entry.php"); |
3 |
|
4 |
$tmp_dir = "/tmp/"; |
5 |
$backup_dirname = "labstocks_backup_" . date("Y-m-d_H-i-s", mktime()); |
6 |
$backup_filename = $backup_dirname . ".tgz"; |
7 |
$absolute_backup_dir = $tmp_dir . $backup_dirname; |
8 |
$absolute_backup_file = $absolute_backup_dir . ".tgz"; |
9 |
|
10 |
exec("mkdir $absolute_backup_dir"); |
11 |
exec("chmod a+w $absolute_backup_dir"); |
12 |
|
13 |
exec("mkdir $absolute_backup_dir"); |
14 |
if ($_REQUEST["FULL_BACK"]) { |
15 |
exec("cp -r plasmid_files raw_dirs $absolute_backup_dir"); |
16 |
} |
17 |
|
18 |
|
19 |
// $cmd = "mysqldump --user=" . NOM . " --password=" . PASSE . " --host=" . SERVEUR . ' --tab=' . $absolute_backup_dir . ' --fields-terminated-by=";" --fields-enclosed-by="\"" --fields-escaped-by="\"\"" --lines-terminated-by="\r\n" --no-create-db --no-create-info ' . BASE . " " . $_REQUEST["TABLE"] . " > " . $absolute_backup_dir . "/" . BASE . "_" . $_REQUEST["TABLE"] . ".csv";
|
20 |
|
21 |
if ($_REQUEST["TABLE"]) { |
22 |
$cmd = "mysqldump --user=" . NOM . " --password=" . PASSE . " --host=" . SERVEUR . ' --tab=' . $absolute_backup_dir . ' --fields-terminated-by=";" --no-create-db --no-create-info ' . BASE . " " . $_REQUEST["TABLE"]; |
23 |
// echo($cmd);
|
24 |
// die();
|
25 |
exec($cmd); |
26 |
exec("cp $absolute_backup_dir/" . $_REQUEST["TABLE"] . ".txt $absolute_backup_dir/" . $_REQUEST["TABLE"] . ".csv "); |
27 |
} else {
|
28 |
exec("mysqldump --user=" . NOM . " --password=" . PASSE . " --host=" . SERVEUR . " " . BASE . " > " . $absolute_backup_dir . "/" . BASE . ".sql"); |
29 |
} |
30 |
|
31 |
$cmd = "tar Pcfvz $absolute_backup_file -C $tmp_dir $backup_dirname"; |
32 |
exec($cmd); |
33 |
exec("rm -Rf " . $absolute_backup_dir); |
34 |
|
35 |
$attachment_location = $absolute_backup_dir . ".tgz"; |
36 |
if (file_exists($attachment_location)) { |
37 |
header($_SERVER["SERVER_PROTOCOL"] . " 200 OK"); |
38 |
header("Cache-Control: public"); // needed for i.e. |
39 |
//header("Content-Type: application/gzip");
|
40 |
header("Content-Transfer-Encoding: Binary"); |
41 |
header("Content-Length:".filesize($attachment_location)); |
42 |
header("Content-Disposition: attachment; filename=" . $backup_filename); |
43 |
readfile($attachment_location); |
44 |
exec("rm -Rf $absolute_backup_file"); |
45 |
die();
|
46 |
} else {
|
47 |
die("Error: File not found."); |
48 |
} |
49 |
|
50 |
|
51 |
|
52 |
?>
|