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