Version Description
dev.= * Add Dashboard Widget * Add Database Check * Add Backup file transfer to FTP Server * Save log fieles in own database table * Optimize Memory usage * Optimize File system access * DB dump with own function * fixed some Bugs
Download this release
Release Info
| Developer | danielhuesken |
| Plugin | |
| Version | 0.6.0 |
| Comparing to | |
| See all releases | |
Code changes from version 0.5.5 to 0.6.0
- app/css/options.css +1 -1
- app/dojob/MySQLDBExport.class.php +0 -295
- app/dojob/after.php +20 -28
- app/dojob/bevore.php +26 -19
- app/dojob/check.php +33 -0
- app/dojob/db.php +119 -18
- app/dojob/destination-ftp.php +64 -0
- app/dojob/destination-mail.php +8 -6
- app/dojob/file.php +82 -85
- app/dojob/optimize.php +3 -5
- app/functions.php +172 -44
- app/options-db_restore.php +24 -0
- app/options-edit.php +33 -10
- app/options-logs.php +17 -28
- app/options-runnow.php +5 -8
- app/options-save.php +22 -17
- app/options-settings.php +13 -5
- app/options-view_log.php +5 -4
- app/options.php +3 -16
- backwpup.php +18 -18
- lang/backwpup.pot +375 -163
- readme.txt +18 -6
app/css/options.css
CHANGED
|
@@ -5,7 +5,7 @@
|
|
| 5 |
width:100px;
|
| 6 |
}
|
| 7 |
.column-type {
|
| 8 |
-
width:
|
| 9 |
}
|
| 10 |
.column-size {
|
| 11 |
width:75px;
|
| 5 |
width:100px;
|
| 6 |
}
|
| 7 |
.column-type {
|
| 8 |
+
width:120px;
|
| 9 |
}
|
| 10 |
.column-size {
|
| 11 |
width:75px;
|
app/dojob/MySQLDBExport.class.php
DELETED
|
@@ -1,295 +0,0 @@
|
|
| 1 |
-
<?php
|
| 2 |
-
|
| 3 |
-
// **********************************************
|
| 4 |
-
// *** MySQLDBExport.class.php v2.0.1 ***
|
| 5 |
-
// **********************************************
|
| 6 |
-
|
| 7 |
-
// -----------------------------------------------------------------------
|
| 8 |
-
/*
|
| 9 |
-
Copyright:
|
| 10 |
-
==============
|
| 11 |
-
Dieses Script wurde urspr�nglich von Dennis Riehle geschrieben - Sie d�rfen
|
| 12 |
-
das Script frei verwenden, bearbeiten und weitergeben, solange dieser Copyright
|
| 13 |
-
Hinweis nicht entfernt wird.
|
| 14 |
-
Es erfolgt keinerlei Haftung f�r eventuell durch dieses Script entstandene
|
| 15 |
-
Sch�den - die Benutzung erfolgt vollst�ndig auf eigene Gefahr.
|
| 16 |
-
|
| 17 |
-
Beschreibung:
|
| 18 |
-
==============
|
| 19 |
-
Mit dieser Klasse l�sst sich ein Dump (Export) einer MySQL Datenbank erzeugen,
|
| 20 |
-
was z.B. f�r ein Backupsystem verwendet werden kann.
|
| 21 |
-
|
| 22 |
-
Benutzung:
|
| 23 |
-
==============
|
| 24 |
-
a) Bei einer bereits vorhandenen MySQL Verbindung:
|
| 25 |
-
|
| 26 |
-
$export = new MySQLDBExport(); // Instanz erzeugen
|
| 27 |
-
$export->set_db("Datenbank"); // Datenbank ausw�hlen
|
| 28 |
-
$dump = $export->make_dump(); // Dump erstellen
|
| 29 |
-
|
| 30 |
-
b) Wenn erst noch eine Verbindung hergestellt werden muss:
|
| 31 |
-
|
| 32 |
-
$export = new MySQLDBExport("Host", "User", "Passwort");
|
| 33 |
-
// Instanz erzeugen und gleichzeitig
|
| 34 |
-
// eine MySQL-Verbindung erstellen
|
| 35 |
-
$export->set_db("Datenbank"); // Datenbank ausw�hlen
|
| 36 |
-
$dump = $export->make_dump(); // Dump erstellen
|
| 37 |
-
|
| 38 |
-
Weitere Optionen:
|
| 39 |
-
-----------------
|
| 40 |
-
Standardm��ig wird innerhalb des Dumps ein Unix Zeilenumbruch verwendet, m�chte
|
| 41 |
-
man dies �ndern, so ist vor dem Aufrufen von make_dump() folgendes zu setzen:
|
| 42 |
-
$export->set_newline("\r\n");
|
| 43 |
-
|
| 44 |
-
MySQLDBExport erzeugt normalerweise immer einen Dump f�r alle sich innerhalb einer
|
| 45 |
-
Datenbank befindlichen Tabellen, m�chte man nur eine einzelne oder nur bestimmte
|
| 46 |
-
Tabellen exportieren, so l�sst sich make_dump() ein String oder ein Array der
|
| 47 |
-
zu exportierenden Tabellen �bergeben:
|
| 48 |
-
$export->make_dump("Tabellenname");
|
| 49 |
-
Oder:
|
| 50 |
-
$export->make_dump(array("Tabelle1", "Tabelle2"));
|
| 51 |
-
|
| 52 |
-
Error Handling - beim Auftreten eines Fehlers liefern die Funktionen false
|
| 53 |
-
zur�ck und schreiben eine Nachricht in die error Variable, die sich wie folgt
|
| 54 |
-
abfragen l�sst:
|
| 55 |
-
echo $export->get_error();
|
| 56 |
-
|
| 57 |
-
Changelog
|
| 58 |
-
==============
|
| 59 |
-
Von Version 2.0.1 auf Version 2.0.2 wurden folgende �nderungen vorgenommen:
|
| 60 |
-
- in Zeile 272 und 273 (bzw. 284 und 285 in Version 2.0.1) fehlte ein abschlie�endes
|
| 61 |
-
Semikolon (Syntaxfehler)
|
| 62 |
-
- in get_tables() trat eine Verwechslung von Variablen auf
|
| 63 |
-
*/
|
| 64 |
-
|
| 65 |
-
class MySQLDBExport {
|
| 66 |
-
|
| 67 |
-
var $con = false;
|
| 68 |
-
var $db = "";
|
| 69 |
-
var $newline = "\n";
|
| 70 |
-
var $error = "";
|
| 71 |
-
|
| 72 |
-
// -----------------------------------------------------------------------
|
| 73 |
-
function MySQLDBExport($host = NULL, $user = NULL, $pass = NULL) {
|
| 74 |
-
// Initialisierung - sofern gew�nscht, MySQL Verbindung aufbauen
|
| 75 |
-
if($host != NULL AND $user != NULL) {
|
| 76 |
-
// Verbindung herstellen
|
| 77 |
-
$con = @mysql_connect($host, $user, $pass);
|
| 78 |
-
// Wenn fehlgeschlagen, Error melden und abbrechen
|
| 79 |
-
if(!$con) {
|
| 80 |
-
$this->error = "Fehler beim Herstellen der MySQL Verbindung - " . mysql_error();
|
| 81 |
-
return false;
|
| 82 |
-
}
|
| 83 |
-
// Sonst die Verbindung in $con speichern
|
| 84 |
-
$this->con = $con;
|
| 85 |
-
return true;
|
| 86 |
-
}
|
| 87 |
-
}
|
| 88 |
-
|
| 89 |
-
// -----------------------------------------------------------------------
|
| 90 |
-
function get_error() {
|
| 91 |
-
// Ausgabe der letzten Error-Meldung
|
| 92 |
-
return $this->error;
|
| 93 |
-
}
|
| 94 |
-
|
| 95 |
-
// -----------------------------------------------------------------------
|
| 96 |
-
function set_newline($newline) {
|
| 97 |
-
// Setzen von $newline
|
| 98 |
-
$this->newline = $newline;
|
| 99 |
-
return true;
|
| 100 |
-
}
|
| 101 |
-
|
| 102 |
-
// -----------------------------------------------------------------------
|
| 103 |
-
function set_db($db) {
|
| 104 |
-
// Wenn vorher bereits ein Fehler aufgetreten ist, abbrechen
|
| 105 |
-
if(!empty($this->error)) {
|
| 106 |
-
return false;
|
| 107 |
-
}
|
| 108 |
-
// Sonst versuchen, die MySQL Datenbank auszuw�hlen
|
| 109 |
-
$try = @mysql_select_db($db);
|
| 110 |
-
// Im Fehlerfall einen Error melden und abbrechen
|
| 111 |
-
if(!$try) {
|
| 112 |
-
$this->error = mysql_error();
|
| 113 |
-
return false;
|
| 114 |
-
}
|
| 115 |
-
// Sonst den Datenbanknamen abspeichern in $db
|
| 116 |
-
$this->db = $db;
|
| 117 |
-
return true;
|
| 118 |
-
}
|
| 119 |
-
|
| 120 |
-
// -----------------------------------------------------------------------
|
| 121 |
-
function escape_table_name($table) {
|
| 122 |
-
// Escapen von Tabellen oder Datenbanknamen gem��
|
| 123 |
-
// <http://dev.mysql.com/doc/refman/5.0/en/legal-names.html>
|
| 124 |
-
$table = str_replace("�", "��", $table);
|
| 125 |
-
return $table;
|
| 126 |
-
}
|
| 127 |
-
|
| 128 |
-
// -----------------------------------------------------------------------
|
| 129 |
-
function get_tables() {
|
| 130 |
-
// Liste �ber alle existierenden Tabellen in der Datenbank besorgen
|
| 131 |
-
$result = mysql_query('SHOW TABLES FROM `' . $this->escape_table_name($this->db) . '`;');
|
| 132 |
-
if(!$result) {
|
| 133 |
-
$this->error = mysql_error();
|
| 134 |
-
return false;
|
| 135 |
-
}
|
| 136 |
-
// Array f�r Liste initialisieren
|
| 137 |
-
$tables = array();
|
| 138 |
-
// MySQL Ergebnisliste durchgehen und jede Tabelle in $tables hinzuf�gen
|
| 139 |
-
while (list($current) = mysql_fetch_row($result)) {
|
| 140 |
-
$tables[] = $current;
|
| 141 |
-
}
|
| 142 |
-
// Und Tabellenarray zur�ckgeben
|
| 143 |
-
return $tables;
|
| 144 |
-
}
|
| 145 |
-
|
| 146 |
-
// -----------------------------------------------------------------------
|
| 147 |
-
function export_table_structure($table, $drop_if_exists = true) {
|
| 148 |
-
// Ausgabestring initialisieren
|
| 149 |
-
$sqlstring = "";
|
| 150 |
-
// Wenn DROP TABLE mit ausgegeben werden soll, dieses in den
|
| 151 |
-
// Ausgabestring schreiben
|
| 152 |
-
if($drop_if_exists) {
|
| 153 |
-
$sqlstring .= "DROP TABLE IF EXISTS `" . $this->escape_table_name($table)
|
| 154 |
-
. "`;" . $this->newline;
|
| 155 |
-
}
|
| 156 |
-
// Die CREATE TABLE Syntax per SQL Befehl besorgen oder Fehler ausgeben
|
| 157 |
-
$return = mysql_query("SHOW CREATE TABLE `" . $this->escape_table_name($table) . "`");
|
| 158 |
-
if(!$return) {
|
| 159 |
-
$this->error = mysql_error();
|
| 160 |
-
return false;
|
| 161 |
-
}
|
| 162 |
-
// Auslesen, ...
|
| 163 |
-
$data = mysql_fetch_assoc($return);
|
| 164 |
-
// ...in Ausgabestring schreiben ...
|
| 165 |
-
$sqlstring .= str_replace("\n", $this->newline, $data['Create Table']) . ";"
|
| 166 |
-
. $this->newline
|
| 167 |
-
. $this->newline;
|
| 168 |
-
// ...und diesen zur�ck geben
|
| 169 |
-
return $sqlstring;
|
| 170 |
-
}
|
| 171 |
-
|
| 172 |
-
// -----------------------------------------------------------------------
|
| 173 |
-
function export_table_data($table, $leave_out_fields = false) {
|
| 174 |
-
// Alle Felder aus der Tabelle auslesen, bei Fehler abbrechen
|
| 175 |
-
$sql = "SELECT * FROM `" . $this->escape_table_name($table) . "`";
|
| 176 |
-
$return = mysql_query($sql);
|
| 177 |
-
if(!$return) {
|
| 178 |
-
$this->error = mysql_error();
|
| 179 |
-
return false;
|
| 180 |
-
}
|
| 181 |
-
// Ausgabestring initialisieren
|
| 182 |
-
$sqlstring = "";
|
| 183 |
-
// Alle Ergebniszeilen abarbeiten...
|
| 184 |
-
while($data = mysql_fetch_assoc($return))
|
| 185 |
-
{
|
| 186 |
-
// Arrays zum Sammeln der Key und der Value Werte initialisieren
|
| 187 |
-
$keys = array();
|
| 188 |
-
$values = array();
|
| 189 |
-
foreach($data as $key => $value) {
|
| 190 |
-
// Wenn dieses Feld ausgelassen werden soll, fahre mit
|
| 191 |
-
// n�chster Schleife fort
|
| 192 |
-
if(is_array($leave_out_fields) AND in_array($key, $leave_out_fields)) {
|
| 193 |
-
continue;
|
| 194 |
-
}
|
| 195 |
-
// Sonst f�ge den aktuellen Key in das "Keysammelarray" hinzu
|
| 196 |
-
$keys[] = "`" . $this->escape_table_name($key) . "`";
|
| 197 |
-
// Wenn das Value NULL ist, in den String NULL umwandeln
|
| 198 |
-
if($value === NULL) {
|
| 199 |
-
$value = "NULL";
|
| 200 |
-
}
|
| 201 |
-
// Wenn das Value leer oder False ist, ein "" als Value nehmen
|
| 202 |
-
elseif($value === "" OR $value === false) {
|
| 203 |
-
$value = '""';
|
| 204 |
-
}
|
| 205 |
-
// Wenn das Value nicht numerisch ist, es mit mysql_real_escape_string()
|
| 206 |
-
// escapen und zwischen " setzen
|
| 207 |
-
elseif(!is_numeric($value)) {
|
| 208 |
-
$value = mysql_real_escape_string($value);
|
| 209 |
-
$value = "\"$value\"";
|
| 210 |
-
}
|
| 211 |
-
// In allen anderen F�llen ist das Value numerisch, kann belassen
|
| 212 |
-
// werden wie es ist und direkt in das "Valuesammelarray" hinzugef�gt
|
| 213 |
-
// werden
|
| 214 |
-
$values[] = $value;
|
| 215 |
-
}
|
| 216 |
-
// Aus den Sammelarrays jetzt einen INSERT INTO SQL-Befehl erstellen und diesen
|
| 217 |
-
// an die Ausgabe anh�ngen
|
| 218 |
-
$sqlstring .= "INSERT INTO `" . $this->escape_table_name($table) . "` ( "
|
| 219 |
-
. implode(", ",$keys)
|
| 220 |
-
. " ){$this->newline}\tVALUES ( "
|
| 221 |
-
. implode(", ",$values)
|
| 222 |
-
. " );" . $this->newline;
|
| 223 |
-
}
|
| 224 |
-
// Ausgabestring zur�ckliefern
|
| 225 |
-
return $sqlstring;
|
| 226 |
-
}
|
| 227 |
-
|
| 228 |
-
// -----------------------------------------------------------------------
|
| 229 |
-
function make_dump($tables_input = NULL, $drop_if_exists = false, $leave_out_fields = false ) {
|
| 230 |
-
// Ausgabestring f�r den Datenbank Dump initialisieren mit einer ersten Kommentarzeile
|
| 231 |
-
$exportstring = "-- ------------------------------------------" . $this->newline;
|
| 232 |
-
// Array f�r alle zu exportierenden Tabellen initialisieren
|
| 233 |
-
// Jeder Wert in diesem Array wird sp�ter als Tabellennamen aufgefasst und es wird
|
| 234 |
-
// versucht einen MySQL DUMP dieser Tabelle zu erstellen
|
| 235 |
-
$tables = array();
|
| 236 |
-
// Wenn f�r $tables_input ein Array �bergeben wurde die Kopfzeile f�r einen indivi-
|
| 237 |
-
// duellen Datenbankexport erzeugen und alle Eintr�ge aus dem Array in das Tabellen-
|
| 238 |
-
// array kopieren, sodass nur die im Array �bergebenen Tabellen exportiert werden
|
| 239 |
-
if(is_array($tables_input)) {
|
| 240 |
-
$tables = $tables_input;
|
| 241 |
-
$exportstring .= "-- INDIVIDUAL DATABASE EXPORT --" . $this->newline;
|
| 242 |
-
}
|
| 243 |
-
// Ansonsten, wenn $tables_input ein einfacher String ist, diesen als eine Tabelle
|
| 244 |
-
// auffassen und nur diese eine Tabelle exportieren, als Single Database Export
|
| 245 |
-
elseif(!is_array($tables_input) AND $tables_input != NULL) {
|
| 246 |
-
$tables[0] = $tables_input;
|
| 247 |
-
$exportstring .= "-- SINGLE DATABASE EXPORT --" . $this->newline;
|
| 248 |
-
}
|
| 249 |
-
// Wurde der Parameter $tables_input gar nicht mit �bergeben oder ist dieser False, so
|
| 250 |
-
// wird per $this->get_tables() herausgefunden welche Tabellen alle existieren und es werden
|
| 251 |
-
// alle Tabellen exportiert => Full Database Export
|
| 252 |
-
else {
|
| 253 |
-
$tables = $this->get_tables();
|
| 254 |
-
// Wenn get_tables() fehlschl�gt, abbrechen
|
| 255 |
-
if($tables === false) return false;
|
| 256 |
-
$exportstring .= "-- FULL DATABASE EXPORT --".$this->newline;
|
| 257 |
-
}
|
| 258 |
-
// In den Ausgabestring die Kopfzeilen schreiben, welche den Namen der Datenbank in
|
| 259 |
-
// der die Tabellen liegen, das Datum zu dem der Dump erzeugt wurde sowie den Typ des
|
| 260 |
-
// Exports (s.o.) enth�lt
|
| 261 |
-
$exportstring .= "-- ------------------------------------------" . $this->newline
|
| 262 |
-
. "-- Database: " . $this->db.str_repeat(" ",30 - strlen($this->db)) . "--"
|
| 263 |
-
. $this->newline
|
| 264 |
-
. "-- Build: " . date("d.m.Y, H:i")." --" . $this->newline
|
| 265 |
-
. "-- Script by Dennis Riehle --" . $this->newline
|
| 266 |
-
. "-- http://tutorial.riehle-web.com/scripts/ --" . $this->newline
|
| 267 |
-
. "-- ------------------------------------------" . $this->newline
|
| 268 |
-
. $this->newline;
|
| 269 |
-
// Gehe alle Tabellen in $tables durch und exportiere nacheinander von jeder Tabelle
|
| 270 |
-
// die Struktur, sowie die Daten.
|
| 271 |
-
foreach($tables as $table) {
|
| 272 |
-
$structure = $this->export_table_structure($table, $drop_if_exists);
|
| 273 |
-
$data = $this->export_table_data($table, $leave_out_fields);
|
| 274 |
-
// Wenn export_table_structure() oder export_table_data() fehlschl�gt, abbrechen
|
| 275 |
-
if($structure === false OR $data === false) return false;
|
| 276 |
-
$exportstring .= "-- Table: $table" . $this->newline
|
| 277 |
-
. "-- ------------------------------------------" . $this->newline
|
| 278 |
-
. $structure
|
| 279 |
-
. $data
|
| 280 |
-
. $this->newline;
|
| 281 |
-
}
|
| 282 |
-
// F�ge dem Exportstring noch ein Ende Kennzeichen hinzu...
|
| 283 |
-
$exportstring .= "-- ------------------------------------------" . $this->newline
|
| 284 |
-
. "-- Export End --" . $this->newline
|
| 285 |
-
. "-- ------------------------------------------" . $this->newline;
|
| 286 |
-
// ...und liefere den kompletten String zur�ck.
|
| 287 |
-
return $exportstring;
|
| 288 |
-
}
|
| 289 |
-
}
|
| 290 |
-
// -----------------------------------------------------------------------
|
| 291 |
-
/*
|
| 292 |
-
ENDE
|
| 293 |
-
*/
|
| 294 |
-
|
| 295 |
-
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/dojob/after.php
CHANGED
|
@@ -2,33 +2,27 @@
|
|
| 2 |
//Delete old Logs/Backupfiles
|
| 3 |
if (!empty($jobs[$jobid]['maxbackups'])) {
|
| 4 |
BackWPupFunctions::joblog($logtime,__('Delete old backup files...','backwpup'));
|
| 5 |
-
$logs
|
| 6 |
if (is_array($logs)) {
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
if ($
|
| 10 |
-
$
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
for ($i=0;$i<sizeof($logkeys);$i++) {
|
| 16 |
-
if (!empty($logs[$logkeys[$i]]['backupfile']) or in_array($jobs[$jobid]['type'],$logonlytyps))
|
| 17 |
-
$counter++;
|
| 18 |
-
if ($counter>=$jobs[$jobid]['maxbackups']) {
|
| 19 |
-
if (is_file($logs[$logkeys[$i]]['backupfile'])) {
|
| 20 |
-
unlink($logs[$logkeys[$i]]['backupfile']);
|
| 21 |
-
$countdelbackups++;
|
| 22 |
-
}
|
| 23 |
-
unset($logs[$logkeys[$i]]);
|
| 24 |
}
|
|
|
|
|
|
|
| 25 |
}
|
| 26 |
}
|
| 27 |
}
|
| 28 |
-
|
| 29 |
-
|
|
|
|
|
|
|
| 30 |
//clean vars
|
| 31 |
-
unset($logkeys);
|
| 32 |
unset($logs);
|
| 33 |
}
|
| 34 |
|
|
@@ -40,7 +34,8 @@ if (is_file($backupfile)) {
|
|
| 40 |
if (is_file(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql') ) { //delete sql temp file
|
| 41 |
unlink(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql');
|
| 42 |
}
|
| 43 |
-
|
|
|
|
| 44 |
unlink($backupfile);
|
| 45 |
unset($backupfile);
|
| 46 |
}
|
|
@@ -51,10 +46,7 @@ $jobs[$jobid]['lastrun']=$jobs[$jobid]['starttime'];
|
|
| 51 |
$jobs[$jobid]['lastruntime']=$jobs[$jobid]['stoptime']-$jobs[$jobid]['starttime'];
|
| 52 |
$jobs[$jobid]['scheduletime']=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid));
|
| 53 |
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 54 |
-
|
| 55 |
-
$
|
| 56 |
-
|
| 57 |
-
if (is_file($backupfile))
|
| 58 |
-
$logs[$logtime]['backupfile']=$backupfile;
|
| 59 |
-
update_option('backwpup_log',$logs);
|
| 60 |
?>
|
| 2 |
//Delete old Logs/Backupfiles
|
| 3 |
if (!empty($jobs[$jobid]['maxbackups'])) {
|
| 4 |
BackWPupFunctions::joblog($logtime,__('Delete old backup files...','backwpup'));
|
| 5 |
+
$logs=$wpdb->get_results("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC", ARRAY_A);
|
| 6 |
if (is_array($logs)) {
|
| 7 |
+
$counter=0;$countdelbackups=0;$countdellogs=0;
|
| 8 |
+
for ($i=0;$i<sizeof($logs);$i++) {
|
| 9 |
+
if (!empty($logs[$i]['backupfile']) or in_array($jobs[$jobid]['type'],$logonlytyps))
|
| 10 |
+
$counter++;
|
| 11 |
+
if ($counter>=$jobs[$jobid]['maxbackups']) {
|
| 12 |
+
if (is_file($logs[$i]['backupfile'])) {
|
| 13 |
+
unlink($logs[$i]['backupfile']);
|
| 14 |
+
$countdelbackups++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
}
|
| 16 |
+
$wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logs[$i]['logtime']);
|
| 17 |
+
$countdellogs++;
|
| 18 |
}
|
| 19 |
}
|
| 20 |
}
|
| 21 |
+
if ($countdelbackups>0)
|
| 22 |
+
BackWPupFunctions::joblog($logtime,$countdelbackups.' '.__('old backup files deleted!!!','backwpup'));
|
| 23 |
+
if ($countdellogs>0)
|
| 24 |
+
BackWPupFunctions::joblog($logtime,$countdellogs.' '.__('old logs deleted!!!','backwpup'));
|
| 25 |
//clean vars
|
|
|
|
| 26 |
unset($logs);
|
| 27 |
}
|
| 28 |
|
| 34 |
if (is_file(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql') ) { //delete sql temp file
|
| 35 |
unlink(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql');
|
| 36 |
}
|
| 37 |
+
|
| 38 |
+
if (empty($jobs[$jobid]['backupdir']) and (dirname($backupfile)!=BackWPupFunctions::get_temp_dir().'backwpup') and is_file($backupfile) ) { //delete backup file in temp dir
|
| 39 |
unlink($backupfile);
|
| 40 |
unset($backupfile);
|
| 41 |
}
|
| 46 |
$jobs[$jobid]['lastruntime']=$jobs[$jobid]['stoptime']-$jobs[$jobid]['starttime'];
|
| 47 |
$jobs[$jobid]['scheduletime']=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid));
|
| 48 |
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 49 |
+
//Write backupfile und worktime to log
|
| 50 |
+
$wpdb->update( $wpdb->backwpup_logs, array( 'worktime' => $jobs[$jobid]['lastruntime'], 'backupfile' => mysql_real_escape_string($backupfile)), array( 'logtime' => $logtime ));
|
| 51 |
+
ob_end_flush();
|
|
|
|
|
|
|
|
|
|
| 52 |
?>
|
app/dojob/bevore.php
CHANGED
|
@@ -1,44 +1,51 @@
|
|
| 1 |
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
$cfg=get_option('backwpup');
|
| 3 |
$jobs=get_option('backwpup_jobs');
|
| 4 |
-
$
|
|
|
|
| 5 |
$jobs[$jobid]['stoptime']='';
|
| 6 |
$jobs[$jobid]['scheduletime']=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid));
|
| 7 |
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 8 |
-
$
|
| 9 |
-
$
|
| 10 |
-
|
| 11 |
-
|
|
|
|
|
|
|
| 12 |
} else {
|
| 13 |
-
$backupfile=
|
| 14 |
}
|
| 15 |
-
$logonlytyps=array('OPTIMIZE');
|
| 16 |
if (in_array($jobs[$jobid]['type'],$logonlytyps)) {
|
| 17 |
$jobs[$jobid]['maxbackups']=20;
|
| 18 |
}
|
| 19 |
|
| 20 |
//Create Log
|
| 21 |
-
$
|
| 22 |
-
|
| 23 |
-
$logs[$logtime]['error']=0;
|
| 24 |
-
$logs[$logtime]['warning']=0;
|
| 25 |
-
$logs[$logtime]['log']='';
|
| 26 |
-
$logs[$logtime]['type']=$jobs[$jobid]['type'];
|
| 27 |
-
update_option('backwpup_log',$logs);
|
| 28 |
|
| 29 |
-
if (!ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='off') {
|
| 30 |
set_time_limit(300); //300 is most webserver time limit.
|
| 31 |
} else {
|
| 32 |
-
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.sprintf(__('Safe Mode is on!!! Max exec time is %1$s sec.','backwpup'),ini_get('max_execution_time')));
|
| 33 |
}
|
| 34 |
|
| 35 |
//Look for and Crate Temp dir and secure
|
|
|
|
|
|
|
| 36 |
if (!is_dir(BackWPupFunctions::get_temp_dir().'backwpup')) {
|
| 37 |
-
if (!mkdir(BackWPupFunctions::get_temp_dir().'backwpup')) {
|
| 38 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Temp dir','backwpup'));
|
| 39 |
require_once('after.php');
|
| 40 |
return false;
|
| 41 |
-
}
|
| 42 |
}
|
| 43 |
if (!is_writeable(BackWPupFunctions::get_temp_dir().'backwpup')) {
|
| 44 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not write to Temp dir','backwpup'));
|
|
@@ -62,7 +69,7 @@ if (!is_file(BackWPupFunctions::get_temp_dir().'backwpup/index.html')) {
|
|
| 62 |
if (!empty($backupfile)) {
|
| 63 |
//Look for and Crate Backup dir and secure
|
| 64 |
if (!is_dir($jobs[$jobid]['backupdir'])) {
|
| 65 |
-
if (!mkdir($jobs[$jobid]['backupdir'])) {
|
| 66 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Backup dir','backwpup'));
|
| 67 |
require_once('after.php');
|
| 68 |
return false;
|
| 1 |
<?php
|
| 2 |
+
global $logtime;
|
| 3 |
+
//@ini_set('memory_limit', '256M');
|
| 4 |
+
ignore_user_abort(true);
|
| 5 |
+
ob_start();
|
| 6 |
+
ob_end_clean();
|
| 7 |
+
|
| 8 |
+
define( 'PCLZIP_TEMPORARY_DIR', BackWPupFunctions::get_temp_dir().'backwpup/' );
|
| 9 |
$cfg=get_option('backwpup');
|
| 10 |
$jobs=get_option('backwpup_jobs');
|
| 11 |
+
$logtime=time();
|
| 12 |
+
$jobs[$jobid]['starttime']=$logtime;
|
| 13 |
$jobs[$jobid]['stoptime']='';
|
| 14 |
$jobs[$jobid]['scheduletime']=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid));
|
| 15 |
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 16 |
+
if ($jobs[$jobid]['type']=='FILE' or $jobs[$jobid]['type']=='DB+FILE' or $jobs[$jobid]['type']=='DB') {
|
| 17 |
+
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 18 |
+
$backupfile=$jobs[$jobid]['backupdir'].'/backwpup_'.$jobid.'_'.date('Y-m-d_H-i-s',$jobs[$jobid]['starttime']).'.zip';
|
| 19 |
+
} else {
|
| 20 |
+
$backupfile=BackWPupFunctions::get_temp_dir().'backwpup/backwpup_'.$jobid.'_'.date('Y-m-d_H-i-s',$jobs[$jobid]['starttime']).'.zip';
|
| 21 |
+
}
|
| 22 |
} else {
|
| 23 |
+
$backupfile='';
|
| 24 |
}
|
| 25 |
+
$logonlytyps=array('OPTIMIZE','CHECK');
|
| 26 |
if (in_array($jobs[$jobid]['type'],$logonlytyps)) {
|
| 27 |
$jobs[$jobid]['maxbackups']=20;
|
| 28 |
}
|
| 29 |
|
| 30 |
//Create Log
|
| 31 |
+
$wpdb->insert( $wpdb->backwpup_logs, array( 'logtime' => $logtime, 'jobid' => $jobid, 'jobname' => $jobs[$jobid]['name'], 'type' => $jobs[$jobid]['type'], 'log' => '' ));
|
| 32 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
|
| 34 |
+
if (!ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='off' or ini_get('safe_mode')=='0') {
|
| 35 |
set_time_limit(300); //300 is most webserver time limit.
|
| 36 |
} else {
|
| 37 |
+
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.sprintf(__('PHP Safe Mode is on!!! Max exec time is %1$s sec.','backwpup'),ini_get('max_execution_time')));
|
| 38 |
}
|
| 39 |
|
| 40 |
//Look for and Crate Temp dir and secure
|
| 41 |
+
BackWPupFunctions::joblog($logtime,sprintf(__('Temp dir is %1$s.','backwpup'),get_temp_dir().'backwpup'));
|
| 42 |
+
|
| 43 |
if (!is_dir(BackWPupFunctions::get_temp_dir().'backwpup')) {
|
| 44 |
+
if (!mkdir(BackWPupFunctions::get_temp_dir().'backwpup',0777,true)) {
|
| 45 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Temp dir','backwpup'));
|
| 46 |
require_once('after.php');
|
| 47 |
return false;
|
| 48 |
+
}
|
| 49 |
}
|
| 50 |
if (!is_writeable(BackWPupFunctions::get_temp_dir().'backwpup')) {
|
| 51 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not write to Temp dir','backwpup'));
|
| 69 |
if (!empty($backupfile)) {
|
| 70 |
//Look for and Crate Backup dir and secure
|
| 71 |
if (!is_dir($jobs[$jobid]['backupdir'])) {
|
| 72 |
+
if (!mkdir($jobs[$jobid]['backupdir'],0777,true)) {
|
| 73 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Backup dir','backwpup'));
|
| 74 |
require_once('after.php');
|
| 75 |
return false;
|
app/dojob/check.php
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?PHP
|
| 2 |
+
//Optimize SQL Table
|
| 3 |
+
BackWPupFunctions::joblog($logtime,__('Run Database check...','backwpup'));
|
| 4 |
+
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 5 |
+
|
| 6 |
+
if (is_array($jobs[$jobid]['dbexclude'])) {
|
| 7 |
+
foreach($tables as $tablekey => $tablevalue) {
|
| 8 |
+
if (in_array($tablevalue,$jobs[$jobid]['dbexclude']))
|
| 9 |
+
unset($tables[$tablekey]);
|
| 10 |
+
}
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
if (sizeof($tables)>0) {
|
| 14 |
+
foreach ($tables as $table) {
|
| 15 |
+
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 16 |
+
$check=$wpdb->get_row('CHECK TABLE `'.$table.'` MEDIUM', ARRAY_A);
|
| 17 |
+
BackWPupFunctions::joblog($logtime,__(strtoupper($check['Msg_type']).':','backwpup').' '.sprintf(__('Result of table check for %1$s is: %2$s','backwpup'), $table, $check['Msg_text']));
|
| 18 |
+
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 19 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 20 |
+
if ($check['Msg_type']=='error') {
|
| 21 |
+
$repair=$wpdb->get_row('REPAIR TABLE `'.$table.'`', ARRAY_A);
|
| 22 |
+
BackWPupFunctions::joblog($logtime,__(strtoupper($repair['Msg_type']).':','backwpup').' '.sprintf(__('Result of table repair for %1$s is: %2$s ','backwpup'), $table, $repair['Msg_text']));
|
| 23 |
+
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 24 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 25 |
+
}
|
| 26 |
+
}
|
| 27 |
+
}
|
| 28 |
+
$wpdb->flush();
|
| 29 |
+
BackWPupFunctions::joblog($logtime,__('Database check done!','backwpup'));
|
| 30 |
+
} else {
|
| 31 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('No Tables to check','backwpup'));
|
| 32 |
+
}
|
| 33 |
+
?>
|
app/dojob/db.php
CHANGED
|
@@ -1,9 +1,72 @@
|
|
| 1 |
<?PHP
|
| 2 |
BackWPupFunctions::joblog($logtime,__('Run Database Backup...','backwpup'));
|
| 3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
//Tables to backup
|
| 5 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 6 |
-
|
| 7 |
if (is_array($jobs[$jobid]['dbexclude'])) {
|
| 8 |
foreach($tables as $tablekey => $tablevalue) {
|
| 9 |
if (in_array($tablevalue,$jobs[$jobid]['dbexclude']))
|
|
@@ -12,35 +75,73 @@ if (is_array($jobs[$jobid]['dbexclude'])) {
|
|
| 12 |
}
|
| 13 |
|
| 14 |
if (sizeof($tables)>0) {
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
$
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
$file = @fopen(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql', 'w');
|
| 22 |
-
fwrite($file, $export->make_dump($tables));
|
| 23 |
-
fclose($file);
|
| 24 |
-
|
| 25 |
|
| 26 |
-
if ($
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
}
|
| 29 |
} else {
|
| 30 |
-
BackWPupFunctions::joblog($logtime,__('ERROR: No Tables to Backup','backwpup'));
|
| 31 |
}
|
| 32 |
|
| 33 |
|
| 34 |
BackWPupFunctions::joblog($logtime,__('Database backup done!','backwpup'));
|
| 35 |
|
| 36 |
if ($jobs[$jobid]['type']=='DB' and is_file(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')) {
|
|
|
|
| 37 |
BackWPupFunctions::joblog($logtime,__('Create Zip file from dump...','backwpup'));
|
| 38 |
-
require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
|
| 39 |
$zipbackupfile = new PclZip($backupfile);
|
| 40 |
-
if (0==$zipbackupfile -> create(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql',
|
| 41 |
-
BackWPupFunctions::joblog($logtime,__('ERROR: Database Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 42 |
$joberror=true;
|
| 43 |
-
}
|
| 44 |
BackWPupFunctions::joblog($logtime,__('Zip file created...','backwpup'));
|
| 45 |
}
|
| 46 |
//clean vars
|
| 1 |
<?PHP
|
| 2 |
BackWPupFunctions::joblog($logtime,__('Run Database Backup...','backwpup'));
|
| 3 |
|
| 4 |
+
function dump_table($table,$status) {
|
| 5 |
+
global $wpdb,$logtime;
|
| 6 |
+
$table = str_replace("�", "��", $table); //esc table name
|
| 7 |
+
|
| 8 |
+
// create dump
|
| 9 |
+
$dump = "\n";
|
| 10 |
+
$dump.= "--\n";
|
| 11 |
+
$dump.= "-- Table structure for table $table\n";
|
| 12 |
+
$dump.= "--\n\n";
|
| 13 |
+
$dump.= "DROP TABLE IF EXISTS `" . $table . "`;\n";
|
| 14 |
+
$dump.= "/*!40101 SET @saved_cs_client = @@character_set_client */;\n";
|
| 15 |
+
$dump.= "/*!40101 SET character_set_client = latin1 */;\n";
|
| 16 |
+
//Dump the table structure
|
| 17 |
+
$result=$wpdb->get_row("SHOW CREATE TABLE `".$table."`", ARRAY_A);
|
| 18 |
+
if ($sqlerr=mysql_error($wpdb->dbh)) {
|
| 19 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 20 |
+
return false;
|
| 21 |
+
}
|
| 22 |
+
$dump.=$result['Create Table']."\n";
|
| 23 |
+
$dump.="/*!40101 SET character_set_client = @saved_cs_client */;\n";
|
| 24 |
+
$wpdb->flush();
|
| 25 |
+
|
| 26 |
+
//take data of table
|
| 27 |
+
$result=$wpdb->get_results("SELECT * FROM `".$table."`", ARRAY_A);
|
| 28 |
+
if ($sqlerr=mysql_error($wpdb->dbh)) {
|
| 29 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 30 |
+
return false;
|
| 31 |
+
}
|
| 32 |
+
if (is_array($result)) {
|
| 33 |
+
$dump.= "--\n";
|
| 34 |
+
$dump.= "-- Dumping data for table $table\n";
|
| 35 |
+
$dump.= "--\n\n";
|
| 36 |
+
$dump.= "LOCK TABLES `".$table."` WRITE;\n\n";
|
| 37 |
+
if ($status['Engine']=='MyISAM')
|
| 38 |
+
$dump.= "/*!40000 ALTER TABLE `".$table."` DISABLE KEYS */;\n";
|
| 39 |
+
foreach($result as $data) {
|
| 40 |
+
$keys = array();
|
| 41 |
+
$values = array();
|
| 42 |
+
foreach($data as $key => $value) {
|
| 43 |
+
$keys[] = "`".str_replace("�", "��", $key)."`"; // Add key to key list
|
| 44 |
+
|
| 45 |
+
if($value === NULL) // Make Value NULL to string NULL
|
| 46 |
+
$value = "NULL";
|
| 47 |
+
elseif($value === "" or $value === false) // if empty or false Value make "" as Value
|
| 48 |
+
$value = '""';
|
| 49 |
+
elseif(!is_numeric($value)) //is value not numeric esc
|
| 50 |
+
$value = "\"".mysql_real_escape_string($value)."\"";
|
| 51 |
+
|
| 52 |
+
$values[] = $value;
|
| 53 |
+
}
|
| 54 |
+
// make data dump
|
| 55 |
+
$dump .= "INSERT INTO `".$table."` ( ".implode(", ",$keys)." )\n\tVALUES ( ".implode(", ",$values)." );\n";
|
| 56 |
+
}
|
| 57 |
+
if ($status['Engine']=='MyISAM')
|
| 58 |
+
$dump.= "/*!40000 ALTER TABLE ".$table." ENABLE KEYS */;\n";
|
| 59 |
+
$dump.= "UNLOCK TABLES;\n";
|
| 60 |
+
}
|
| 61 |
+
$wpdb->flush();
|
| 62 |
+
return $dump;
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
|
| 67 |
//Tables to backup
|
| 68 |
$tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
|
| 69 |
+
$jobs[$jobid]['dbexclude'][]=$wpdb->backwpup_logs; //Exclude log table
|
| 70 |
if (is_array($jobs[$jobid]['dbexclude'])) {
|
| 71 |
foreach($tables as $tablekey => $tablevalue) {
|
| 72 |
if (in_array($tablevalue,$jobs[$jobid]['dbexclude']))
|
| 75 |
}
|
| 76 |
|
| 77 |
if (sizeof($tables)>0) {
|
| 78 |
+
$result=$wpdb->get_results("SHOW TABLE STATUS FROM `".DB_NAME."`;", ARRAY_A); //get table status
|
| 79 |
+
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 80 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 81 |
+
foreach($result as $statusdata) {
|
| 82 |
+
$status[$statusdata['Name']]=$statusdata;
|
| 83 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
| 84 |
|
| 85 |
+
if ($file = @fopen(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql', 'w')) {
|
| 86 |
+
fwrite($file, "-- ---------------------------------------------------------\n");
|
| 87 |
+
fwrite($file, "-- Dump with BackWPup ver.: ".BACKWPUP_VERSION."\n");
|
| 88 |
+
fwrite($file, "-- Plugin for WordPress by Daniel Huesken\n");
|
| 89 |
+
fwrite($file, "-- http://danielhuesken.de/portfolio/backwpup/\n");
|
| 90 |
+
fwrite($file, "-- Blog Name: ".get_option('blogname')."\n");
|
| 91 |
+
if (defined('WP_SITEURL'))
|
| 92 |
+
fwrite($file, "-- Blog URL: ".trailingslashit(WP_SITEURL)."\n");
|
| 93 |
+
else
|
| 94 |
+
fwrite($file, "-- Blog URL: ".trailingslashit(get_option('siteurl'))."\n");
|
| 95 |
+
fwrite($file, "-- Blog ABSPATH: ".trailingslashit(ABSPATH)."\n");
|
| 96 |
+
fwrite($file, "-- Database Name: ".DB_NAME."\n");
|
| 97 |
+
fwrite($file, "-- Dump on: ".date('Y-m-d H:i:s')."\n");
|
| 98 |
+
fwrite($file, "-- ---------------------------------------------------------\n\n");
|
| 99 |
+
//for better import with mysql client
|
| 100 |
+
fwrite($file, "/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;\n");
|
| 101 |
+
fwrite($file, "/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */\n");
|
| 102 |
+
fwrite($file, "/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;\n");
|
| 103 |
+
fwrite($file, "/*!40101 SET NAMES latin1 */;\n");
|
| 104 |
+
fwrite($file, "/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;\n");
|
| 105 |
+
//fwrite($file, "/*!40103 SET TIME_ZONE='+00:00' */;\n");
|
| 106 |
+
fwrite($file, "/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;\n");
|
| 107 |
+
fwrite($file, "/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;\n");
|
| 108 |
+
fwrite($file, "/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;\n");
|
| 109 |
+
fwrite($file, "/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;\n\n");
|
| 110 |
+
//make table dumps
|
| 111 |
+
foreach($tables as $table) {
|
| 112 |
+
BackWPupFunctions::joblog($logtime,__('Database table to Backup: ','backwpup').' '.$table);
|
| 113 |
+
BackWPupFunctions::needfreememory(($status[$table]['Data_length']+$status[$table]['Index_length'])*2); //get mor memory if needed
|
| 114 |
+
fwrite($file, dump_table($table,$status[$table]));
|
| 115 |
+
}
|
| 116 |
+
//for better import with mysql client
|
| 117 |
+
fwrite($file, "\n");
|
| 118 |
+
fwrite($file, "/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;\n");
|
| 119 |
+
fwrite($file, "/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;\n");
|
| 120 |
+
fwrite($file, "/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;\n");
|
| 121 |
+
fwrite($file, "/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;\n");
|
| 122 |
+
fwrite($file, "/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;\n");
|
| 123 |
+
fwrite($file, "/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;\n");
|
| 124 |
+
fwrite($file, "/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;\n");
|
| 125 |
+
fwrite($file, "/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n");
|
| 126 |
+
fclose($file);
|
| 127 |
+
} else {
|
| 128 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not create Database Backup file','backwpup'));
|
| 129 |
}
|
| 130 |
} else {
|
| 131 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('No Tables to Backup','backwpup'));
|
| 132 |
}
|
| 133 |
|
| 134 |
|
| 135 |
BackWPupFunctions::joblog($logtime,__('Database backup done!','backwpup'));
|
| 136 |
|
| 137 |
if ($jobs[$jobid]['type']=='DB' and is_file(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')) {
|
| 138 |
+
BackWPupFunctions::joblog($logtime,__('Database file size:','backwpup').' '.BackWPupFunctions::formatBytes(filesize(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
|
| 139 |
BackWPupFunctions::joblog($logtime,__('Create Zip file from dump...','backwpup'));
|
|
|
|
| 140 |
$zipbackupfile = new PclZip($backupfile);
|
| 141 |
+
if (0==$zipbackupfile -> create(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql',PCLZIP_OPT_REMOVE_ALL_PATH,PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
|
| 142 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Database Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 143 |
$joberror=true;
|
| 144 |
+
}
|
| 145 |
BackWPupFunctions::joblog($logtime,__('Zip file created...','backwpup'));
|
| 146 |
}
|
| 147 |
//clean vars
|
app/dojob/destination-ftp.php
CHANGED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
if (!empty($jobs[$jobid]['ftphost']) and !empty($jobs[$jobid]['ftpuser']) and !empty($jobs[$jobid]['ftppass'])) {
|
| 3 |
+
$ftpport=21;
|
| 4 |
+
$ftphost=$jobs[$jobid]['ftphost'];
|
| 5 |
+
if (false !== strpos($jobs[$jobid]['ftphost'],':')) //look for port
|
| 6 |
+
list($ftphost,$ftpport)=split(':',$jobs[$jobid]['ftphost'],2);
|
| 7 |
+
|
| 8 |
+
if (function_exists('ftp_ssl_connect')) { //make SSL FTP connection
|
| 9 |
+
$ftp_conn_id = @ftp_ssl_connect($ftphost,$ftpport);
|
| 10 |
+
if ($ftp_conn_id)
|
| 11 |
+
BackWPupFunctions::joblog($logtime,__('Connected by SSL to FTP server:','backwpup').' '.$jobs[$jobid]['ftphost']);
|
| 12 |
+
}
|
| 13 |
+
if (!$ftp_conn_id) { //make normal FTP conection if SSL not work
|
| 14 |
+
$ftp_conn_id = @ftp_connect($ftphost,$ftpport);
|
| 15 |
+
if ($ftp_conn_id)
|
| 16 |
+
BackWPupFunctions::joblog($logtime,__('Connected insecure to FTP server:','backwpup').' '.$jobs[$jobid]['ftphost']);
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
if ($ftp_conn_id) {
|
| 20 |
+
if ($login_result = @ftp_login($ftp_conn_id, $jobs[$jobid]['ftpuser'], $jobs[$jobid]['ftppass'])) {
|
| 21 |
+
BackWPupFunctions::joblog($logtime,__('Logt on to FTP server with user:','backwpup').' '.$jobs[$jobid]['ftpuser']);
|
| 22 |
+
|
| 23 |
+
if (@ftp_pasv($ftp_conn_id, true)) //set passive mode
|
| 24 |
+
BackWPupFunctions::joblog($logtime,__('FTP set to passiv.','backwpup'));
|
| 25 |
+
else
|
| 26 |
+
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.__('Can not set FTP Server to passiv!','backwpup'));
|
| 27 |
+
|
| 28 |
+
if (@ftp_alloc($ftp_conn_id, filesize($backupfile), $result)) //allocate file spase on ftp server
|
| 29 |
+
BackWPupFunctions::joblog($logtime,__('Space successfully allocated on FTP server. Sending backup file.','backwpup'));
|
| 30 |
+
else
|
| 31 |
+
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.__('Unable to allocate space on server. FTP Server said:','backwpup').' '.$result);
|
| 32 |
+
|
| 33 |
+
if (@ftp_put($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']).basename($backupfile), $backupfile, FTP_BINARY)) { //transvere file
|
| 34 |
+
BackWPupFunctions::joblog($logtime,__('Backup File transfered to FTP Server:','backwpup').' '.trailingslashit($jobs[$jobid]['ftpdir']).basename($backupfile));
|
| 35 |
+
} else {
|
| 36 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not tranfer backup to FTP server.','backwpup'));
|
| 37 |
+
}
|
| 38 |
+
if ($jobs[$jobid]['ftpmaxbackups']>0) { //Delete old backups
|
| 39 |
+
if ($filelist=ftp_nlist($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']))) {
|
| 40 |
+
foreach($filelist as $files) {
|
| 41 |
+
if (!in_array(basename($files),array('.','..')) and false !== strpos(basename($files),'backwpup_'.$jobid.'_'))
|
| 42 |
+
$backupfilelist[]=basename($files);
|
| 43 |
+
}
|
| 44 |
+
rsort($backupfilelist);
|
| 45 |
+
$numdeltefiles=0;
|
| 46 |
+
for ($i=$jobs[$jobid]['ftpmaxbackups'];$i<sizeof($backupfilelist);$i++) {
|
| 47 |
+
if (ftp_delete($ftp_conn_id, trailingslashit($jobs[$jobid]['ftpdir']).$backupfilelist[$i])) //delte files on ftp
|
| 48 |
+
$numdeltefiles++;
|
| 49 |
+
else
|
| 50 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not delete file on FTP Server:','backwpup').' '.trailingslashit($jobs[$jobid]['ftpdir']).$backupfilelist[$i]);
|
| 51 |
+
}
|
| 52 |
+
if ($numdeltefiles>0)
|
| 53 |
+
BackWPupFunctions::joblog($logtime,$numdeltefiles.' '.__('files deleted on FTP Server:','backwpup'));
|
| 54 |
+
}
|
| 55 |
+
}
|
| 56 |
+
} else {
|
| 57 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not login to FTP server with user:','backwpup').' '.$jobs[$jobid]['ftpuser']);
|
| 58 |
+
}
|
| 59 |
+
ftp_close($ftp_conn_id);
|
| 60 |
+
} else {
|
| 61 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not connect to FTP server:','backwpup').' '.$jobs[$jobid]['ftphost']);
|
| 62 |
+
}
|
| 63 |
+
}
|
| 64 |
+
?>
|
app/dojob/destination-mail.php
CHANGED
|
@@ -2,19 +2,22 @@
|
|
| 2 |
if (!empty($jobs[$jobid]['mailaddress'])) {
|
| 3 |
BackWPupFunctions::joblog($logtime,__('Sendig mail...','backwpup'));
|
| 4 |
if (is_file($backupfile)) {
|
| 5 |
-
if (filesize($backupfile)<
|
| 6 |
-
$mailfiles=$backupfile;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
} else {
|
| 8 |
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 9 |
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.__('Backup Archive too big for sendig by mail','backwpup'));
|
| 10 |
} else {
|
| 11 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Backup Archive too big for sendig by mail','backwpup'));
|
| 12 |
}
|
| 13 |
-
$mailfiles
|
| 14 |
}
|
| 15 |
}
|
| 16 |
-
$
|
| 17 |
-
if (wp_mail($jobs[$jobid]['mailaddress'],__('BackWPup Job:','backwpup').' '.$jobs[$jobid]['name'],$logs[$logtime]['log'],'',$mailfiles)) {
|
| 18 |
BackWPupFunctions::joblog($logtime,__('Mail send!!!','backwpup'));
|
| 19 |
} else {
|
| 20 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not send mail!!!','backwpup'));
|
|
@@ -22,5 +25,4 @@ if (!empty($jobs[$jobid]['mailaddress'])) {
|
|
| 22 |
}
|
| 23 |
//clean vars
|
| 24 |
unset($mailfiles);
|
| 25 |
-
unset($message);
|
| 26 |
?>
|
| 2 |
if (!empty($jobs[$jobid]['mailaddress'])) {
|
| 3 |
BackWPupFunctions::joblog($logtime,__('Sendig mail...','backwpup'));
|
| 4 |
if (is_file($backupfile)) {
|
| 5 |
+
if (filesize($backupfile)<20971520) {
|
| 6 |
+
$mailfiles[0]=$backupfile;
|
| 7 |
+
if (!BackWPupFunctions::needfreememory(filesize($backupfile)*3+33554432)) {
|
| 8 |
+
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Out of Memory for sending Backup Archive by mail','backwpup'));
|
| 9 |
+
unset($mailfiles);
|
| 10 |
+
}
|
| 11 |
} else {
|
| 12 |
if (!empty($jobs[$jobid]['backupdir'])) {
|
| 13 |
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.__('Backup Archive too big for sendig by mail','backwpup'));
|
| 14 |
} else {
|
| 15 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Backup Archive too big for sendig by mail','backwpup'));
|
| 16 |
}
|
| 17 |
+
unset($mailfiles);
|
| 18 |
}
|
| 19 |
}
|
| 20 |
+
if (wp_mail($jobs[$jobid]['mailaddress'],__('BackWPup Job:','backwpup').' '.$jobs[$jobid]['name'],$wpdb->get_var("SELECT log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime),'',$mailfiles)) {
|
|
|
|
| 21 |
BackWPupFunctions::joblog($logtime,__('Mail send!!!','backwpup'));
|
| 22 |
} else {
|
| 23 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Can not send mail!!!','backwpup'));
|
| 25 |
}
|
| 26 |
//clean vars
|
| 27 |
unset($mailfiles);
|
|
|
|
| 28 |
?>
|
app/dojob/file.php
CHANGED
|
@@ -1,110 +1,107 @@
|
|
| 1 |
<?PHP
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
$
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
$
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
$
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
}
|
| 23 |
-
}
|
| 24 |
-
}
|
| 25 |
-
if ($jobs[$jobid]['backupplugins']) {
|
| 26 |
-
$filelist=array_merge(BackWPupFunctions::list_files(str_replace('\\','/',untrailingslashit(WP_PLUGIN_DIR))),$filelist);
|
| 27 |
-
} else {
|
| 28 |
-
if (is_array($filelist)) {
|
| 29 |
-
unset($excludefilelist); //clean vars
|
| 30 |
-
$excludefilelist=BackWPupFunctions::list_files(WP_PLUGIN_DIR);
|
| 31 |
-
foreach($excludefilelist as $fileexcludevalue) {
|
| 32 |
-
foreach($filelist as $filelistkey =>$filelistvalue) {
|
| 33 |
-
if ($filelistvalue==$fileexcludevalue)
|
| 34 |
-
unset($filelist[$filelistkey]);
|
| 35 |
}
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
}
|
| 46 |
}
|
| 47 |
}
|
|
|
|
|
|
|
| 48 |
}
|
| 49 |
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
if (stristr($filelistvalue,$jobsvale['backupdir'].'/') and !empty($filelistvalue))
|
| 62 |
-
unset($filelist[$filelistkey]);
|
| 63 |
-
}
|
| 64 |
-
}
|
| 65 |
-
//Exclute files and dirs
|
| 66 |
-
if (!empty($jobs[$jobid]['fileexclude'])) {
|
| 67 |
-
$fileexclude=split(',',$jobs[$jobid]['fileexclude']);
|
| 68 |
-
if (is_array($fileexclude)) {
|
| 69 |
-
foreach($fileexclude as $fileexcludevalue) {
|
| 70 |
-
foreach($filelist as $filelistkey =>$filelistvalue) {
|
| 71 |
-
if (stristr($filelistvalue,$fileexcludevalue))
|
| 72 |
-
unset($filelist[$filelistkey]);
|
| 73 |
-
}
|
| 74 |
-
}
|
| 75 |
-
}
|
| 76 |
-
unset($fileexclude); //clean vars
|
| 77 |
-
}
|
| 78 |
}
|
|
|
|
| 79 |
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
$
|
| 83 |
-
|
| 84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
}
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('No files to Backup','backwpup'));
|
| 91 |
unset($filelist); //clean vars
|
|
|
|
|
|
|
| 92 |
}
|
| 93 |
|
|
|
|
|
|
|
| 94 |
//Create Zip File
|
| 95 |
-
if (is_array($filelist)
|
| 96 |
-
BackWPupFunctions::joblog($logtime,__('Files to Backup: ','backwpup').print_r($filelist,true));
|
| 97 |
BackWPupFunctions::joblog($logtime,__('Create Backup Zip file...','backwpup'));
|
| 98 |
-
require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
|
| 99 |
$zipbackupfile = new PclZip($backupfile);
|
| 100 |
-
if (0==$zipbackupfile -> create($filelist,PCLZIP_OPT_REMOVE_PATH,str_replace('\\','/',ABSPATH))) {
|
| 101 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 102 |
}
|
| 103 |
if ($jobs[$jobid]['type']=='DB+FILE') {
|
|
|
|
| 104 |
BackWPupFunctions::joblog($logtime,__('Add Database dump to Backup Zip file...','backwpup'));
|
| 105 |
-
if (0==$zipbackupfile -> add(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql',
|
| 106 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create Add Database dump:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 107 |
-
}
|
| 108 |
}
|
| 109 |
//clean vars
|
| 110 |
unset($zipbackupfile);
|
| 1 |
<?PHP
|
| 2 |
+
global $backwupu_exclude ,$backwpup_allfilezise, $backwpup_jobs;
|
| 3 |
+
$backwpup_jobs=$jobs[$jobid];
|
| 4 |
+
BackWPupFunctions::joblog($logtime,__('Run file backup...','backwpup'));
|
| 5 |
+
BackWPupFunctions::joblog($logtime,__('Get files to backup...','backwpup'));
|
| 6 |
+
|
| 7 |
+
// helper function to scan dirs recursive
|
| 8 |
+
function backwpup_list_files( $folder = '', $levels = 100 ) {
|
| 9 |
+
global $backwupu_exclude ,$backwpup_allfilezise, $backwpup_jobs;
|
| 10 |
+
if( empty($folder) )
|
| 11 |
+
return false;
|
| 12 |
+
if( ! $levels )
|
| 13 |
+
return false;
|
| 14 |
+
$files = array();
|
| 15 |
+
if ( $dir = @opendir( $folder ) ) {
|
| 16 |
+
while (($file = readdir( $dir ) ) !== false ) {
|
| 17 |
+
if ( in_array($file, array('.', '..','.svn') ) )
|
| 18 |
+
continue;
|
| 19 |
+
foreach ($backwupu_exclude as $exclusion) { //exclude dirs and files
|
| 20 |
+
if (false !== stripos($folder.'/'.$file,str_replace('\\','/',$exclusion)))
|
| 21 |
+
continue 2;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
}
|
| 23 |
+
if (!$backwpup_jobs['backupcontent'] and false !== stripos($folder.'/'.$file,str_replace('\\','/',WP_CONTENT_DIR)) and false === stripos($folder.'/'.$file,str_replace('\\','/',WP_PLUGIN_DIR)) and !is_dir($folder.'/'.$file))
|
| 24 |
+
continue;
|
| 25 |
+
if (!$backwpup_jobs['backupplugins'] and false !== stripos($folder.'/'.$file,str_replace('\\','/',WP_PLUGIN_DIR)))
|
| 26 |
+
continue;
|
| 27 |
+
if ( is_dir( $folder . '/' . $file ) ) {
|
| 28 |
+
$files2 = backwpup_list_files( $folder . '/' . $file, $levels - 1);
|
| 29 |
+
if( $files2 )
|
| 30 |
+
$files = array_merge($files, $files2 );
|
| 31 |
+
} elseif (is_file( $folder . '/' . $file )) {
|
| 32 |
+
if (is_readable($folder . '/' . $file)) {
|
| 33 |
+
$files[] = $folder . '/' . $file;
|
| 34 |
+
$filezise=filesize($folder . '/' . $file);
|
| 35 |
+
$backwpup_allfilezise=$backwpup_allfilezise+$filezise;
|
| 36 |
+
BackWPupFunctions::joblog($logtime,__('File to Backup:','backwpup').' '.$folder . '/' . $file.' '.BackWPupFunctions::formatBytes($filezise));
|
| 37 |
+
} else {
|
| 38 |
+
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.__('Can not read file:','backwpup').' '.$folder . '/' . $file);
|
| 39 |
+
}
|
| 40 |
+
} else {
|
| 41 |
+
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.__('Is not a file or directory:','backwpup').' '.$folder . '/' . $file);
|
| 42 |
}
|
| 43 |
}
|
| 44 |
}
|
| 45 |
+
@closedir( $dir );
|
| 46 |
+
return $files;
|
| 47 |
}
|
| 48 |
|
| 49 |
+
|
| 50 |
+
//Make filelist
|
| 51 |
+
$backwupu_exclude=array(); $dirinclude=array(); $allfilezise=''; $filelist=array();
|
| 52 |
+
|
| 53 |
+
if (!empty($jobs[$jobid]['fileexclude']))
|
| 54 |
+
$backwupu_exclude=split(',',$jobs[$jobid]['fileexclude']);
|
| 55 |
+
//Exclude Temp dir
|
| 56 |
+
$backwupu_exclude[]=BackWPupFunctions::get_temp_dir().'backwpup';
|
| 57 |
+
//Exclude Backup dirs
|
| 58 |
+
foreach($jobs as $jobsvale) {
|
| 59 |
+
$backwupu_exclude[]=$jobsvale['backupdir'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
}
|
| 61 |
+
$backwupu_exclude=array_unique($backwupu_exclude);
|
| 62 |
|
| 63 |
+
//include dirs
|
| 64 |
+
if (!empty($jobs[$jobid]['dirinclude']))
|
| 65 |
+
$dirinclude=split(',',str_replace('\\','/',$jobs[$jobid]['dirinclude']));
|
| 66 |
+
|
| 67 |
+
if ($jobs[$jobid]['backuproot']) //Include extra path
|
| 68 |
+
$dirinclude[]=ABSPATH;
|
| 69 |
+
if ($jobs[$jobid]['backupcontent'] and ((strtolower(str_replace('\\','/',substr(WP_CONTENT_DIR,0,strlen(ABSPATH))))!=strtolower(str_replace('\\','/',ABSPATH)) and $jobs[$jobid]['backuproot']) or !$jobs[$jobid]['backuproot']))
|
| 70 |
+
$dirinclude[]=WP_CONTENT_DIR;
|
| 71 |
+
if ($jobs[$jobid]['backupplugins'] and ((strtolower(str_replace('\\','/',substr(WP_PLUGIN_DIR,0,strlen(ABSPATH))))!=strtolower(str_replace('\\','/',ABSPATH)) and $jobs[$jobid]['backuproot']) or !$jobs[$jobid]['backuproot']) and ((strtolower(str_replace('\\','/',substr(WP_PLUGIN_DIR,0,strlen(WP_CONTENT_DIR))))!=strtolower(str_replace('\\','/',WP_CONTENT_DIR)) and $jobs[$jobid]['backupcontent']) or !$jobs[$jobid]['backupcontent']))
|
| 72 |
+
$dirinclude[]=WP_PLUGIN_DIR;
|
| 73 |
+
$dirinclude=array_unique($dirinclude);
|
| 74 |
+
//Crate file list
|
| 75 |
+
if (is_array($dirinclude)) {
|
| 76 |
+
foreach($dirinclude as $dirincludevalue) {
|
| 77 |
+
if (is_dir($dirincludevalue))
|
| 78 |
+
$filelist=array_merge(backwpup_list_files(untrailingslashit(str_replace('\\','/',$dirincludevalue))),$filelist);
|
| 79 |
}
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
|
| 83 |
+
if (sizeof($filelist)<1) {
|
| 84 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('No files to Backup','backwpup'));
|
| 85 |
unset($filelist); //clean vars
|
| 86 |
+
} else {
|
| 87 |
+
BackWPupFunctions::joblog($logtime,__('Size off all files:','backwpup').' '.BackWPupFunctions::formatBytes($backwpup_allfilezise));
|
| 88 |
}
|
| 89 |
|
| 90 |
+
BackWPupFunctions::needfreememory(33554432);
|
| 91 |
+
|
| 92 |
//Create Zip File
|
| 93 |
+
if (is_array($filelist)) {
|
|
|
|
| 94 |
BackWPupFunctions::joblog($logtime,__('Create Backup Zip file...','backwpup'));
|
|
|
|
| 95 |
$zipbackupfile = new PclZip($backupfile);
|
| 96 |
+
if (0==$zipbackupfile -> create($filelist,PCLZIP_OPT_REMOVE_PATH,str_replace('\\','/',ABSPATH),PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
|
| 97 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 98 |
}
|
| 99 |
if ($jobs[$jobid]['type']=='DB+FILE') {
|
| 100 |
+
BackWPupFunctions::joblog($logtime,__('Database file size:','backwpup').' '.BackWPupFunctions::formatBytes(filesize(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql')));
|
| 101 |
BackWPupFunctions::joblog($logtime,__('Add Database dump to Backup Zip file...','backwpup'));
|
| 102 |
+
if (0==$zipbackupfile -> add(BackWPupFunctions::get_temp_dir().'backwpup/'.DB_NAME.'.sql',PCLZIP_OPT_REMOVE_ALL_PATH,PCLZIP_OPT_ADD_TEMP_FILE_ON)) {
|
| 103 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.__('Zip file create Add Database dump:','backwpup').' '.$zipbackupfile->errorInfo(true));
|
| 104 |
+
}
|
| 105 |
}
|
| 106 |
//clean vars
|
| 107 |
unset($zipbackupfile);
|
app/dojob/optimize.php
CHANGED
|
@@ -11,14 +11,12 @@ if (is_array($jobs[$jobid]['dbexclude'])) {
|
|
| 11 |
}
|
| 12 |
|
| 13 |
if (sizeof($tables)>0) {
|
| 14 |
-
BackWPupFunctions::joblog($logtime,__('Tables to optimize: ','backwpup').print_r($tables,true));
|
| 15 |
-
|
| 16 |
foreach ($tables as $table) {
|
| 17 |
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 18 |
-
$wpdb->
|
| 19 |
-
|
|
|
|
| 20 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
| 21 |
-
}
|
| 22 |
}
|
| 23 |
}
|
| 24 |
$wpdb->flush();
|
| 11 |
}
|
| 12 |
|
| 13 |
if (sizeof($tables)>0) {
|
|
|
|
|
|
|
| 14 |
foreach ($tables as $table) {
|
| 15 |
if (!in_array($table,(array)$jobs[$jobid]['dbexclude'])) {
|
| 16 |
+
$optimize=$wpdb->get_row('OPTIMIZE TABLE `'.$table.'`', ARRAY_A);
|
| 17 |
+
BackWPupFunctions::joblog($logtime,__(strtoupper($optimize['Msg_type']).':','backwpup').' '.sprintf(__('Result of table optimize for %1$s is: %2$s','backwpup'), $table, $optimize['Msg_text']));
|
| 18 |
+
if ($sqlerr=mysql_error($wpdb->dbh))
|
| 19 |
BackWPupFunctions::joblog($logtime,__('ERROR:','backwpup').' '.sprintf(__('BackWPup database error %1$s for query %2$s','backwpup'), $sqlerr, $sqlerr->last_query));
|
|
|
|
| 20 |
}
|
| 21 |
}
|
| 22 |
$wpdb->flush();
|
app/functions.php
CHANGED
|
@@ -2,33 +2,8 @@
|
|
| 2 |
|
| 3 |
class BackWPupFunctions {
|
| 4 |
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
if( empty($folder) )
|
| 8 |
-
return false;
|
| 9 |
-
if( ! $levels )
|
| 10 |
-
return false;
|
| 11 |
-
$files = array();
|
| 12 |
-
if ( $dir = @opendir( $folder ) ) {
|
| 13 |
-
while (($file = readdir( $dir ) ) !== false ) {
|
| 14 |
-
if ( in_array($file, array('.', '..','.svn') ) )
|
| 15 |
-
continue;
|
| 16 |
-
if ( is_dir( $folder . '/' . $file ) ) {
|
| 17 |
-
$files2 = list_files( $folder . '/' . $file, $levels - 1);
|
| 18 |
-
if( $files2 )
|
| 19 |
-
$files = array_merge($files, $files2 );
|
| 20 |
-
else
|
| 21 |
-
$files[] = $folder . '/' . $file . '/';
|
| 22 |
-
} else {
|
| 23 |
-
$files[] = $folder . '/' . $file;
|
| 24 |
-
}
|
| 25 |
-
}
|
| 26 |
-
}
|
| 27 |
-
@closedir( $dir );
|
| 28 |
-
return $files;
|
| 29 |
-
}
|
| 30 |
-
|
| 31 |
-
function get_temp_dir() { //Same as WP function but needet for cron
|
| 32 |
if ( defined('WP_TEMP_DIR') )
|
| 33 |
return trailingslashit(WP_TEMP_DIR);
|
| 34 |
$temp = WP_CONTENT_DIR . '/';
|
|
@@ -73,13 +48,15 @@ class BackWPupFunctions {
|
|
| 73 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-edit.php');
|
| 74 |
break;
|
| 75 |
case 'logs':
|
| 76 |
-
$logs=get_option('backwpup_log');
|
| 77 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-logs.php');
|
| 78 |
break;
|
| 79 |
case 'settings':
|
| 80 |
$cfg=get_option('backwpup');
|
| 81 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-settings.php');
|
| 82 |
break;
|
|
|
|
|
|
|
|
|
|
| 83 |
case 'runnow':
|
| 84 |
$jobid = (int) $_GET['jobid'];
|
| 85 |
check_admin_referer('runnow-job_' . $jobid);
|
|
@@ -89,7 +66,6 @@ class BackWPupFunctions {
|
|
| 89 |
case 'view_log':
|
| 90 |
$logtime= (int) $_GET['logtime'];
|
| 91 |
check_admin_referer('view-log');
|
| 92 |
-
$logs=get_option('backwpup_log');
|
| 93 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-view_log.php');
|
| 94 |
break;
|
| 95 |
default:
|
|
@@ -162,13 +138,47 @@ class BackWPupFunctions {
|
|
| 162 |
|
| 163 |
//delete Otions
|
| 164 |
function plugin_uninstall() {
|
|
|
|
| 165 |
delete_option('backwpup');
|
| 166 |
delete_option('backwpup_jobs');
|
| 167 |
delete_option('backwpup_log');
|
|
|
|
| 168 |
}
|
| 169 |
|
| 170 |
//On Plugin activate
|
| 171 |
function plugin_activate() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
//add cron jobs
|
| 173 |
$jobs=get_option('backwpup_jobs');
|
| 174 |
if (is_array($jobs)) {
|
|
@@ -178,6 +188,7 @@ class BackWPupFunctions {
|
|
| 178 |
}
|
| 179 |
}
|
| 180 |
}
|
|
|
|
| 181 |
}
|
| 182 |
|
| 183 |
//on Plugin deaktivate
|
|
@@ -236,40 +247,75 @@ class BackWPupFunctions {
|
|
| 236 |
require_once('dojob/bevore.php');
|
| 237 |
switch($jobs[$jobid]['type']) {
|
| 238 |
case 'DB+FILE':
|
|
|
|
| 239 |
require_once('dojob/db.php');
|
| 240 |
require_once('dojob/file.php');
|
| 241 |
-
|
| 242 |
break;
|
| 243 |
case 'DB':
|
|
|
|
| 244 |
require_once('dojob/db.php');
|
| 245 |
-
|
| 246 |
break;
|
| 247 |
case 'FILE':
|
|
|
|
| 248 |
require_once('dojob/file.php');
|
| 249 |
-
|
| 250 |
break;
|
| 251 |
case 'OPTIMIZE':
|
| 252 |
require_once('dojob/optimize.php');
|
| 253 |
break;
|
|
|
|
|
|
|
|
|
|
| 254 |
}
|
| 255 |
require_once('dojob/destination-mail.php');
|
| 256 |
require_once('dojob/after.php');
|
| 257 |
|
| 258 |
-
|
| 259 |
-
return $logtime;
|
| 260 |
-
else
|
| 261 |
-
return;
|
| 262 |
}
|
| 263 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 264 |
//Make Log File for Jobs.
|
| 265 |
function joblog($logtime,$entry) {
|
| 266 |
-
$
|
|
|
|
| 267 |
if (substr($entry,0,strlen(__('ERROR:','backwpup')))==__('ERROR:','backwpup'))
|
| 268 |
-
$
|
| 269 |
if (substr($entry,0,strlen(__('WARNING:','backwpup')))==__('WARNING:','backwpup'))
|
| 270 |
-
$
|
| 271 |
-
$
|
| 272 |
-
|
|
|
|
|
|
|
|
|
|
| 273 |
}
|
| 274 |
|
| 275 |
//file size
|
|
@@ -282,10 +328,90 @@ class BackWPupFunctions {
|
|
| 282 |
return round($bytes, $precision) . ' ' . $units[$pow];
|
| 283 |
}
|
| 284 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 285 |
// add all action and so on only if plugin loaded.
|
| 286 |
function init() {
|
| 287 |
-
//load Text Domain
|
| 288 |
-
load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_DIR.'/lang');
|
| 289 |
//add Menu
|
| 290 |
add_action('admin_menu', array('BackWPupFunctions', 'menu_entry'));
|
| 291 |
//Additional links on the plugin page
|
|
@@ -294,7 +420,9 @@ class BackWPupFunctions {
|
|
| 294 |
//add cron intervals
|
| 295 |
add_filter('cron_schedules', array('BackWPupFunctions', 'intervals'));
|
| 296 |
//Actions for Cron job
|
| 297 |
-
add_action('backwpup_cron', array('BackWPupFunctions', 'dojob'));
|
|
|
|
|
|
|
| 298 |
}
|
| 299 |
}
|
| 300 |
|
| 2 |
|
| 3 |
class BackWPupFunctions {
|
| 4 |
|
| 5 |
+
//Same as WP function but needet for cron
|
| 6 |
+
function get_temp_dir() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
if ( defined('WP_TEMP_DIR') )
|
| 8 |
return trailingslashit(WP_TEMP_DIR);
|
| 9 |
$temp = WP_CONTENT_DIR . '/';
|
| 48 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-edit.php');
|
| 49 |
break;
|
| 50 |
case 'logs':
|
|
|
|
| 51 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-logs.php');
|
| 52 |
break;
|
| 53 |
case 'settings':
|
| 54 |
$cfg=get_option('backwpup');
|
| 55 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-settings.php');
|
| 56 |
break;
|
| 57 |
+
case 'db_restore':
|
| 58 |
+
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-db_restore.php');
|
| 59 |
+
break;
|
| 60 |
case 'runnow':
|
| 61 |
$jobid = (int) $_GET['jobid'];
|
| 62 |
check_admin_referer('runnow-job_' . $jobid);
|
| 66 |
case 'view_log':
|
| 67 |
$logtime= (int) $_GET['logtime'];
|
| 68 |
check_admin_referer('view-log');
|
|
|
|
| 69 |
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/options-view_log.php');
|
| 70 |
break;
|
| 71 |
default:
|
| 138 |
|
| 139 |
//delete Otions
|
| 140 |
function plugin_uninstall() {
|
| 141 |
+
global $wpdb;
|
| 142 |
delete_option('backwpup');
|
| 143 |
delete_option('backwpup_jobs');
|
| 144 |
delete_option('backwpup_log');
|
| 145 |
+
$wpdb->query("DROP TABLE IF EXISTS ".$wpdb->backwpup_logs);
|
| 146 |
}
|
| 147 |
|
| 148 |
//On Plugin activate
|
| 149 |
function plugin_activate() {
|
| 150 |
+
global $wpdb;
|
| 151 |
+
|
| 152 |
+
//Create log table
|
| 153 |
+
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
|
| 154 |
+
$charset_collate = '';
|
| 155 |
+
if($wpdb->supports_collation()) {
|
| 156 |
+
if(!empty($wpdb->charset)) {
|
| 157 |
+
$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
|
| 158 |
+
}
|
| 159 |
+
if(!empty($wpdb->collate)) {
|
| 160 |
+
$charset_collate .= " COLLATE $wpdb->collate";
|
| 161 |
+
}
|
| 162 |
+
}
|
| 163 |
+
|
| 164 |
+
|
| 165 |
+
$statements = array(
|
| 166 |
+
"CREATE TABLE ".$wpdb->backwpup_logs." (
|
| 167 |
+
logtime BIGINT NOT NULL,
|
| 168 |
+
jobid INT NOT NULL,
|
| 169 |
+
jobname VARCHAR(255) NOT NULL,
|
| 170 |
+
type VARCHAR(20) NOT NULL,
|
| 171 |
+
error TINYINT NOT NULL default '0',
|
| 172 |
+
warning TINYINT NOT NULL default '0',
|
| 173 |
+
worktime TINYINT NOT NULL default '0',
|
| 174 |
+
log TEXT NOT NULL default '',
|
| 175 |
+
backupfile VARCHAR(255),
|
| 176 |
+
PRIMARY KEY (logtime)
|
| 177 |
+
)".$charset_collate,
|
| 178 |
+
);
|
| 179 |
+
$sql = implode(';', $statements);
|
| 180 |
+
dbDelta($sql);
|
| 181 |
+
|
| 182 |
//add cron jobs
|
| 183 |
$jobs=get_option('backwpup_jobs');
|
| 184 |
if (is_array($jobs)) {
|
| 188 |
}
|
| 189 |
}
|
| 190 |
}
|
| 191 |
+
|
| 192 |
}
|
| 193 |
|
| 194 |
//on Plugin deaktivate
|
| 247 |
require_once('dojob/bevore.php');
|
| 248 |
switch($jobs[$jobid]['type']) {
|
| 249 |
case 'DB+FILE':
|
| 250 |
+
require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
|
| 251 |
require_once('dojob/db.php');
|
| 252 |
require_once('dojob/file.php');
|
| 253 |
+
require_once('dojob/destination-ftp.php');
|
| 254 |
break;
|
| 255 |
case 'DB':
|
| 256 |
+
require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
|
| 257 |
require_once('dojob/db.php');
|
| 258 |
+
require_once('dojob/destination-ftp.php');
|
| 259 |
break;
|
| 260 |
case 'FILE':
|
| 261 |
+
require_once(ABSPATH . 'wp-admin/includes/class-pclzip.php');
|
| 262 |
require_once('dojob/file.php');
|
| 263 |
+
require_once('dojob/destination-ftp.php');
|
| 264 |
break;
|
| 265 |
case 'OPTIMIZE':
|
| 266 |
require_once('dojob/optimize.php');
|
| 267 |
break;
|
| 268 |
+
case 'CHECK':
|
| 269 |
+
require_once('dojob/check.php');
|
| 270 |
+
break;
|
| 271 |
}
|
| 272 |
require_once('dojob/destination-mail.php');
|
| 273 |
require_once('dojob/after.php');
|
| 274 |
|
| 275 |
+
return $logtime;
|
|
|
|
|
|
|
|
|
|
| 276 |
}
|
| 277 |
|
| 278 |
+
//increase Memory need free memory in bytes
|
| 279 |
+
function needfreememory($memneed) {
|
| 280 |
+
global $logtime;
|
| 281 |
+
//calc mem to bytes
|
| 282 |
+
if (strtoupper(substr(trim(ini_get('memory_limit')),-1))=='K')
|
| 283 |
+
$memory=trim(substr(ini_get('memory_limit'),0,-1))*1024;
|
| 284 |
+
elseif (strtoupper(substr(trim(ini_get('memory_limit')),-1))=='M')
|
| 285 |
+
$memory=trim(substr(ini_get('memory_limit'),0,-1))*1024*1024;
|
| 286 |
+
elseif (strtoupper(substr(trim(ini_get('memory_limit')),-1))=='G')
|
| 287 |
+
$memory=trim(substr(ini_get('memory_limit'),0,-1))*1024*1024*1024;
|
| 288 |
+
else
|
| 289 |
+
$memory=trim(ini_get('memory_limit'));
|
| 290 |
+
|
| 291 |
+
if (memory_get_usage()+$memneed>$memory) { // increase Memory
|
| 292 |
+
if (ini_get('safe_mode') or strtolower(ini_get('safe_mode'))=='on' or ini_get('safe_mode')=='1') {
|
| 293 |
+
BackWPupFunctions::joblog($logtime,__('WARNING:','backwpup').' '.sprintf(__('PHP Safe Mode is on!!! Can not increse Memory Limit is %1$s','backwpup'),ini_get('memory_limit')));
|
| 294 |
+
return false;
|
| 295 |
+
}
|
| 296 |
+
$newmemory=round((memory_get_usage()+$memneed)/1024/1024)+1;
|
| 297 |
+
if ($oldmem=ini_set('memory_limit', $newmemory.'M'))
|
| 298 |
+
BackWPupFunctions::joblog($logtime,sprintf(__('Memory incresed from %1$s to %2$s','backwpup'),$oldmem,ini_get('memory_limit')));
|
| 299 |
+
else
|
| 300 |
+
BackWPupFunctions::joblog($logtime,sprintf(__('ERROR:','backwpup').' '.__('Can not increse Memory Limit is %1$s','backwpup'),ini_get('memory_limit')));
|
| 301 |
+
}
|
| 302 |
+
return true;
|
| 303 |
+
}
|
| 304 |
+
|
| 305 |
+
|
| 306 |
//Make Log File for Jobs.
|
| 307 |
function joblog($logtime,$entry) {
|
| 308 |
+
global $wpdb;
|
| 309 |
+
$log=$wpdb->get_row("SELECT error,warning,log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime, ARRAY_A);
|
| 310 |
if (substr($entry,0,strlen(__('ERROR:','backwpup')))==__('ERROR:','backwpup'))
|
| 311 |
+
$log['error']=$log['error']+1;
|
| 312 |
if (substr($entry,0,strlen(__('WARNING:','backwpup')))==__('WARNING:','backwpup'))
|
| 313 |
+
$log['warning']=$log['warning']+1;
|
| 314 |
+
$wpdb->update( $wpdb->backwpup_logs, array( 'error' => $log['error'], 'warning' => $log['warning'], 'log' => $log['log'].date('Y-m-d H:i:s').": ".$entry."\n" ), array( 'logtime' => $logtime ));
|
| 315 |
+
echo date('Y-m-d H:i.s').": ".$entry."\n";
|
| 316 |
+
$wpdb->flush();
|
| 317 |
+
flush();
|
| 318 |
+
ob_flush();
|
| 319 |
}
|
| 320 |
|
| 321 |
//file size
|
| 328 |
return round($bytes, $precision) . ' ' . $units[$pow];
|
| 329 |
}
|
| 330 |
|
| 331 |
+
//echo long backup type name
|
| 332 |
+
function backup_types($type='',$echo=false) {
|
| 333 |
+
switch($type) {
|
| 334 |
+
case 'DB+FILE':
|
| 335 |
+
$typename=__('Database & File Backup','backwpup');
|
| 336 |
+
break;
|
| 337 |
+
case 'DB':
|
| 338 |
+
$typename=__('Database Backup','backwpup');
|
| 339 |
+
break;
|
| 340 |
+
case 'FILE':
|
| 341 |
+
$typename=__('File Backup','backwpup');
|
| 342 |
+
break;
|
| 343 |
+
case 'OPTIMIZE':
|
| 344 |
+
$typename=__('Optimize Database Tabels','backwpup');
|
| 345 |
+
break;
|
| 346 |
+
case 'CHECK':
|
| 347 |
+
$typename=__('Check Database Tabels','backwpup');
|
| 348 |
+
break;
|
| 349 |
+
default:
|
| 350 |
+
$typename=array('DB+FILE','DB','FILE','OPTIMIZE','CHECK');
|
| 351 |
+
break;
|
| 352 |
+
}
|
| 353 |
+
if ($echo and !empty($type))
|
| 354 |
+
echo $typename;
|
| 355 |
+
else
|
| 356 |
+
return $typename;
|
| 357 |
+
}
|
| 358 |
+
|
| 359 |
+
//Dashboard widget
|
| 360 |
+
function dashboard_output() {
|
| 361 |
+
global $wpdb;
|
| 362 |
+
echo '<strong>'.__('Logs:','backwpup').'</strong><ul>';
|
| 363 |
+
$logs=$wpdb->get_results("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC LIMIT 5", ARRAY_A);
|
| 364 |
+
$wpdb->flush();
|
| 365 |
+
if (is_array($logs)) {
|
| 366 |
+
foreach ($logs as $logvalue) {
|
| 367 |
+
echo '<li><a href="'.wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$logvalue['logtime'], 'view-log').'" title="'.__('View Log','backwpup').'"><strong>'.date(get_option('date_format'),$logvalue['logtime']).' '.date(get_option('time_format'),$logvalue['logtime']).'</strong>: <i>';
|
| 368 |
+
if (empty($logvalue['jobname']))
|
| 369 |
+
BackWPupFunctions::backup_types($logvalue['type'],true);
|
| 370 |
+
else
|
| 371 |
+
echo $logvalue['jobname'];
|
| 372 |
+
echo '</i>';
|
| 373 |
+
if($logvalue['error']>0 or $logvalue['warning']>0) {
|
| 374 |
+
if ($logvalue['error']>0)
|
| 375 |
+
echo ' <strong><span style="color:red;">'.$logvalue['error'].' '.__('ERROR(S)','backwpup').'</span></strong>';
|
| 376 |
+
if ($logvalue['warning']>0)
|
| 377 |
+
echo ' <strong><span style="color:yellow;">'.$logvalue['warning'].' '.__('WARNING(S)','backwpup').'</span></strong>';
|
| 378 |
+
} else {
|
| 379 |
+
echo ' <strong><span style="color:green;">'.__('OK','backwpup').'</span></strong>';
|
| 380 |
+
}
|
| 381 |
+
echo '</a></li>';
|
| 382 |
+
}
|
| 383 |
+
} else {
|
| 384 |
+
echo '<li><i>'.__('none','backwpup').'</i></li>';
|
| 385 |
+
}
|
| 386 |
+
echo "</ul>";
|
| 387 |
+
$jobs=get_option('backwpup_jobs');
|
| 388 |
+
echo '<strong>'.__('Scheduled Jobs:','backwpup').'</strong><ul>';
|
| 389 |
+
if (is_array($jobs)) {
|
| 390 |
+
foreach ($jobs as $jobid => $jobvalue) {
|
| 391 |
+
if (wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 392 |
+
echo '<li><a href="'.wp_nonce_url('admin.php?page=BackWPup&action=edit&jobid='.$jobid, 'edit-job').'" title="'.__('Edit Job','backwpup').'"><strong>';
|
| 393 |
+
if ($jobvalue['starttime']>0 and empty($jobvalue['stoptime'])) {
|
| 394 |
+
$runtime=time()-$jobvalue['starttime'];
|
| 395 |
+
echo __('Running since:','backwpup').' '.$runtime.' '.__('sec.','backwpup');
|
| 396 |
+
} elseif ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 397 |
+
echo date(get_option('date_format'),$time).' '.date(get_option('time_format'),$time);
|
| 398 |
+
}
|
| 399 |
+
echo '</strong>: <span>'.$jobvalue['name'].'</span></a></li>';
|
| 400 |
+
}
|
| 401 |
+
}
|
| 402 |
+
} else {
|
| 403 |
+
echo '<li><i>'.__('none','backwpup').'</i></li>';
|
| 404 |
+
}
|
| 405 |
+
echo "</ul>";
|
| 406 |
+
}
|
| 407 |
+
|
| 408 |
+
//add dashboard widget
|
| 409 |
+
function add_dashboard() {
|
| 410 |
+
wp_add_dashboard_widget( 'backwpup_dashboard_widget', 'BackWPup', array ('BackWPupFunctions', 'dashboard_output') );
|
| 411 |
+
}
|
| 412 |
+
|
| 413 |
// add all action and so on only if plugin loaded.
|
| 414 |
function init() {
|
|
|
|
|
|
|
| 415 |
//add Menu
|
| 416 |
add_action('admin_menu', array('BackWPupFunctions', 'menu_entry'));
|
| 417 |
//Additional links on the plugin page
|
| 420 |
//add cron intervals
|
| 421 |
add_filter('cron_schedules', array('BackWPupFunctions', 'intervals'));
|
| 422 |
//Actions for Cron job
|
| 423 |
+
add_action('backwpup_cron', array('BackWPupFunctions', 'dojob'));
|
| 424 |
+
//add Dashboard widget
|
| 425 |
+
add_action( 'wp_dashboard_setup', array ('BackWPupFunctions', 'add_dashboard') );
|
| 426 |
}
|
| 427 |
}
|
| 428 |
|
app/options-db_restore.php
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<div class="wrap">
|
| 2 |
+
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
+
<h2><?php _e("BackWPup Restore Database", "backwpup"); ?></h2>
|
| 4 |
+
<ul class="subsubsub">
|
| 5 |
+
<li><a href="admin.php?page=BackWPup"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 6 |
+
<li><a href="admin.php?page=BackWPup&action=logs"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
| 7 |
+
<li><a href="admin.php?page=BackWPup&action=db_restore" class="current"><?PHP _e('DB Restore','backwpup'); ?></a> |</li>
|
| 8 |
+
<li><a href="admin.php?page=BackWPup&action=settings"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
+
</ul>
|
| 10 |
+
|
| 11 |
+
<form method="post" action="">
|
| 12 |
+
<input type="hidden" name="action" value="db_restore" />
|
| 13 |
+
<input type="hidden" name="page" value="BackWPup" />
|
| 14 |
+
<?php wp_nonce_field('backwpup-db_restore'); ?>
|
| 15 |
+
|
| 16 |
+
<table class="form-table">
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
</table>
|
| 20 |
+
|
| 21 |
+
<p class="submit">
|
| 22 |
+
<input type="submit" name="Submit" class="button-primary" value="<?php _e('Save Changes', 'backwpup'); ?>" />
|
| 23 |
+
</p>
|
| 24 |
+
</form>
|
app/options-edit.php
CHANGED
|
@@ -11,11 +11,11 @@ if (empty($jobs[$jobid]['type']))
|
|
| 11 |
$jobs[$jobid]['type']='DB+FILE';
|
| 12 |
|
| 13 |
|
| 14 |
-
if ($jobs[$jobid]['type']=='OPTIMIZE') {
|
| 15 |
echo '<input type="hidden" name="backupdir" value="'.$jobs[$jobid]['backupdir'].'" />';
|
| 16 |
echo '<input type="hidden" name="maxbackups" value="'.$jobs[$jobid]['maxbackups'].'" />';
|
| 17 |
}
|
| 18 |
-
if ($jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='OPTIMIZE') {
|
| 19 |
echo '<input type="hidden" name="fileexclude" value="'.$jobs[$jobid]['fileexclude'].'" />';
|
| 20 |
}
|
| 21 |
if ($jobs[$jobid]['type']=='FILE') {
|
|
@@ -33,11 +33,12 @@ if ($jobs[$jobid]['type']=='FILE') {
|
|
| 33 |
<tr valign="top">
|
| 34 |
<th scope="row"><label for="job_type"><?PHP _e('Job Type','backwpup'); ?></label></th>
|
| 35 |
<td>
|
| 36 |
-
<select name="type" id="job_type">
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
|
|
|
| 41 |
</select>
|
| 42 |
<input type="submit" name="change" class="button" value="<?php _e('Change', 'backwpup'); ?>" />
|
| 43 |
</td>
|
|
@@ -48,7 +49,7 @@ if ($jobs[$jobid]['type']=='FILE') {
|
|
| 48 |
<td><input name="name" type="text" id="jobname" value="<?PHP echo $jobs[$jobid]['name'];?>" class="regular-text" /></td>
|
| 49 |
</tr>
|
| 50 |
|
| 51 |
-
<?PHP if ($jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='DB+FILE' or $jobs[$jobid]['type']=='OPTIMIZE') {?>
|
| 52 |
<tr valign="top">
|
| 53 |
<th scope="row"><label for="dbexclude"><?PHP _e('Exclude Databas Tabels:','backwpup'); ?></label></th><td>
|
| 54 |
<?php
|
|
@@ -60,7 +61,8 @@ if (!isset($jobs[$jobid]['dbexclude'])) { //def.
|
|
| 60 |
}
|
| 61 |
}
|
| 62 |
foreach ($tables as $table) {
|
| 63 |
-
|
|
|
|
| 64 |
}
|
| 65 |
|
| 66 |
?>
|
|
@@ -140,7 +142,7 @@ echo '</select>';
|
|
| 140 |
?>
|
| 141 |
<br />
|
| 142 |
<span class="description"><?php _e('Activate:', 'backwpup'); ?></span>
|
| 143 |
-
<input class="checkbox" type="checkbox" <?php checked($jobs[$jobid]['activated'],true); ?> name="activated" />
|
| 144 |
</td>
|
| 145 |
</tr>
|
| 146 |
|
|
@@ -164,6 +166,27 @@ _e('Oldest files will deletet first.','backwpup');
|
|
| 164 |
?></span>
|
| 165 |
</td>
|
| 166 |
</tr>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 167 |
<?PHP } ?>
|
| 168 |
|
| 169 |
|
| 11 |
$jobs[$jobid]['type']='DB+FILE';
|
| 12 |
|
| 13 |
|
| 14 |
+
if ($jobs[$jobid]['type']=='OPTIMIZE' or $jobs[$jobid]['type']=='CHECK') {
|
| 15 |
echo '<input type="hidden" name="backupdir" value="'.$jobs[$jobid]['backupdir'].'" />';
|
| 16 |
echo '<input type="hidden" name="maxbackups" value="'.$jobs[$jobid]['maxbackups'].'" />';
|
| 17 |
}
|
| 18 |
+
if ($jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='OPTIMIZE' or $jobs[$jobid]['type']=='CHECK') {
|
| 19 |
echo '<input type="hidden" name="fileexclude" value="'.$jobs[$jobid]['fileexclude'].'" />';
|
| 20 |
}
|
| 21 |
if ($jobs[$jobid]['type']=='FILE') {
|
| 33 |
<tr valign="top">
|
| 34 |
<th scope="row"><label for="job_type"><?PHP _e('Job Type','backwpup'); ?></label></th>
|
| 35 |
<td>
|
| 36 |
+
<select name="type" id="job_type">
|
| 37 |
+
<?php
|
| 38 |
+
foreach (BackWPupFunctions::backup_types() as $type) {
|
| 39 |
+
echo '<option value="'.$type.'"'.selected($type,$jobs[$jobid]['type'],false).'>'.BackWPupFunctions::backup_types($type).'</option>';
|
| 40 |
+
}
|
| 41 |
+
?>
|
| 42 |
</select>
|
| 43 |
<input type="submit" name="change" class="button" value="<?php _e('Change', 'backwpup'); ?>" />
|
| 44 |
</td>
|
| 49 |
<td><input name="name" type="text" id="jobname" value="<?PHP echo $jobs[$jobid]['name'];?>" class="regular-text" /></td>
|
| 50 |
</tr>
|
| 51 |
|
| 52 |
+
<?PHP if ($jobs[$jobid]['type']=='DB' or $jobs[$jobid]['type']=='DB+FILE' or $jobs[$jobid]['type']=='OPTIMIZE' or $jobs[$jobid]['type']=='CHECK') {?>
|
| 53 |
<tr valign="top">
|
| 54 |
<th scope="row"><label for="dbexclude"><?PHP _e('Exclude Databas Tabels:','backwpup'); ?></label></th><td>
|
| 55 |
<?php
|
| 61 |
}
|
| 62 |
}
|
| 63 |
foreach ($tables as $table) {
|
| 64 |
+
if ($wpdb->backwpup_logs<>$table)
|
| 65 |
+
echo ' <input class="checkbox" type="checkbox"'.checked(in_array($table,(array)$jobs[$jobid]['dbexclude']),true,false).' name="dbexclude[]" value="'.$table.'"/>'.$table;
|
| 66 |
}
|
| 67 |
|
| 68 |
?>
|
| 142 |
?>
|
| 143 |
<br />
|
| 144 |
<span class="description"><?php _e('Activate:', 'backwpup'); ?></span>
|
| 145 |
+
<input class="checkbox" value="1" type="checkbox" <?php checked($jobs[$jobid]['activated'],true); ?> name="activated" />
|
| 146 |
</td>
|
| 147 |
</tr>
|
| 148 |
|
| 166 |
?></span>
|
| 167 |
</td>
|
| 168 |
</tr>
|
| 169 |
+
|
| 170 |
+
|
| 171 |
+
<tr valign="top">
|
| 172 |
+
<th scope="row"><label for="mailaddress"><?PHP _e('Place Backup to FTP Server:','backwpup'); ?></label></th>
|
| 173 |
+
<td>
|
| 174 |
+
<span class="description"><?PHP _e('Ftp Hostname:','backwpup'); ?></span><input name="ftphost" type="text" value="<?PHP echo $jobs[$jobid]['ftphost'];?>" class="regular-text" /><br />
|
| 175 |
+
<span class="description"><?PHP _e('Ftp Username:','backwpup'); ?></span><input name="ftpuser" type="text" value="<?PHP echo $jobs[$jobid]['ftpuser'];?>" class="user" size="10" /><br />
|
| 176 |
+
<span class="description"><?PHP _e('Ftp Password:','backwpup'); ?></span><input name="ftppass" type="password" value="<?PHP echo $jobs[$jobid]['ftppass'];?>" class="password" size="10" /><br />
|
| 177 |
+
<span class="description"><?PHP _e('Ftp directory:','backwpup'); ?></span><input name="ftpdir" type="text" value="<?PHP echo $jobs[$jobid]['ftpdir'];?>" class="regular-text" /><br />
|
| 178 |
+
<span class="description"><?PHP _e('Max Backup fieles on ftp:','backwpup'); ?></span>
|
| 179 |
+
<?PHP
|
| 180 |
+
echo '<select name="ftpmaxbackups">';
|
| 181 |
+
echo '<option value="0"'.selected(0,$jobs[$jobid]['ftpmaxbackups'],false).'>'.__('Off','backwpup').'</option>';
|
| 182 |
+
for ($i=1;$i<=50;$i++) {
|
| 183 |
+
echo '<option value="'.$i.'"'.selected($i,$jobs[$jobid]['ftpmaxbackups'],false).'>'.$i.'</option>';
|
| 184 |
+
}
|
| 185 |
+
echo '</select>';
|
| 186 |
+
?><br />
|
| 187 |
+
</td>
|
| 188 |
+
</tr>
|
| 189 |
+
|
| 190 |
<?PHP } ?>
|
| 191 |
|
| 192 |
|
app/options-logs.php
CHANGED
|
@@ -2,9 +2,10 @@
|
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e('BackWPup Logs', 'backwpup'); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
-
<li><a href="admin.php?page=BackWPup"
|
| 6 |
-
<li><a href="admin.php?page=BackWPup&action=logs" class="current"
|
| 7 |
-
<li><a href="admin.php?page=BackWPup&action=
|
|
|
|
| 8 |
</ul>
|
| 9 |
|
| 10 |
<form id="logs-filter" action="" method="post">
|
|
@@ -52,30 +53,18 @@
|
|
| 52 |
|
| 53 |
<tbody id="the-list" class="list:post">
|
| 54 |
|
| 55 |
-
<?PHP
|
| 56 |
-
$logs
|
| 57 |
-
|
|
|
|
| 58 |
<tr id="post-16" class="alternate author-self status-inherit" valign="top">
|
| 59 |
<th scope="row" class="check-column">
|
| 60 |
-
<input type="checkbox" name="logs[]" value="<?PHP echo $
|
| 61 |
</th>
|
| 62 |
<td class="column-id"><?PHP echo $logvalue['jobid'];?></td>
|
| 63 |
<td class="column-type">
|
| 64 |
<?PHP
|
| 65 |
-
|
| 66 |
-
case 'DB+FILE':
|
| 67 |
-
_e('Database & File Backup','backwpup');
|
| 68 |
-
break;
|
| 69 |
-
case 'DB':
|
| 70 |
-
_e('Database Backup','backwpup');
|
| 71 |
-
break;
|
| 72 |
-
case 'FILE':
|
| 73 |
-
_e('File Backup','backwpup');
|
| 74 |
-
break;
|
| 75 |
-
case 'OPTIMIZE':
|
| 76 |
-
_e('Optimize Database Tabels','backwpup');
|
| 77 |
-
break;
|
| 78 |
-
}
|
| 79 |
?>
|
| 80 |
</td>
|
| 81 |
<td class="name column-log">
|
|
@@ -84,12 +73,12 @@
|
|
| 84 |
if (is_file($logvalue['backupfile']))
|
| 85 |
$name=basename($logvalue['backupfile']);
|
| 86 |
?>
|
| 87 |
-
<strong><a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$
|
| 88 |
<p><div class="row-actions">
|
| 89 |
-
<span class="view"><a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$
|
| 90 |
-
<span class="delete"> | <a class="submitdelete" href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=delete-logs&log='.$
|
| 91 |
<?PHP if (!empty($logvalue['backupfile']) and is_file($logvalue['backupfile'])) { ?>
|
| 92 |
-
<span class="download"> | <a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=download&log='.$
|
| 93 |
<?PHP } ?>
|
| 94 |
</div></p>
|
| 95 |
</td>
|
|
@@ -98,11 +87,11 @@
|
|
| 98 |
<?PHP
|
| 99 |
if($logvalue['error']>0 or $logvalue['warning']>0) {
|
| 100 |
if ($logvalue['error']>0)
|
| 101 |
-
echo '<span style="color:red;">'.$logvalue['error'].' '.__('ERROR(S)','backwpup').'</span
|
| 102 |
if ($logvalue['warning']>0)
|
| 103 |
echo '<span style="color:yellow;">'.$logvalue['warning'].' '.__('WARNING(S)','backwpup').'</span>';
|
| 104 |
} else {
|
| 105 |
-
|
| 106 |
}
|
| 107 |
?>
|
| 108 |
</strong>
|
|
@@ -116,7 +105,7 @@
|
|
| 116 |
}
|
| 117 |
?>
|
| 118 |
</td>
|
| 119 |
-
<td class="column-
|
| 120 |
<?PHP
|
| 121 |
echo $logvalue['worktime'].' '.__('sec.','backwpup');
|
| 122 |
?>
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e('BackWPup Logs', 'backwpup'); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
+
<li><a href="admin.php?page=BackWPup"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 6 |
+
<li><a href="admin.php?page=BackWPup&action=logs" class="current"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
| 7 |
+
<li><a href="admin.php?page=BackWPup&action=db_restore"><?PHP _e('DB Restore','backwpup'); ?></a> |</li>
|
| 8 |
+
<li><a href="admin.php?page=BackWPup&action=settings"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
</ul>
|
| 10 |
|
| 11 |
<form id="logs-filter" action="" method="post">
|
| 53 |
|
| 54 |
<tbody id="the-list" class="list:post">
|
| 55 |
|
| 56 |
+
<?PHP
|
| 57 |
+
$logs=$wpdb->get_results("SELECT * FROM ".$wpdb->backwpup_logs." ORDER BY logtime DESC", ARRAY_A);
|
| 58 |
+
if (is_array($logs)) {
|
| 59 |
+
foreach ($logs as $logvalue) {?>
|
| 60 |
<tr id="post-16" class="alternate author-self status-inherit" valign="top">
|
| 61 |
<th scope="row" class="check-column">
|
| 62 |
+
<input type="checkbox" name="logs[]" value="<?PHP echo $logvalue['logtime']?>" />
|
| 63 |
</th>
|
| 64 |
<td class="column-id"><?PHP echo $logvalue['jobid'];?></td>
|
| 65 |
<td class="column-type">
|
| 66 |
<?PHP
|
| 67 |
+
BackWPupFunctions::backup_types($logvalue['type'],true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 68 |
?>
|
| 69 |
</td>
|
| 70 |
<td class="name column-log">
|
| 73 |
if (is_file($logvalue['backupfile']))
|
| 74 |
$name=basename($logvalue['backupfile']);
|
| 75 |
?>
|
| 76 |
+
<strong><a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$logvalue['logtime'], 'view-log'); ?>" title="<?PHP _e('View log','backwpup'); ?>"><?PHP echo date(get_option('date_format'),$logvalue['logtime']); ?> <?PHP echo date(get_option('time_format'),$logvalue['logtime']); ?><?php if (!empty($logvalue['jobname'])) echo ': <i>'.$logvalue['jobname'].'</i>';?></a></strong>
|
| 77 |
<p><div class="row-actions">
|
| 78 |
+
<span class="view"><a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=view_log&logtime='.$logvalue['logtime'], 'view-log'); ?>"><?PHP _e('View','backwpup'); ?></a></span>
|
| 79 |
+
<span class="delete"> | <a class="submitdelete" href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=delete-logs&log='.$logvalue['logtime'], 'delete-log_'.$logvalue['logtime']); ?>" onclick="if ( confirm('<?PHP echo esc_js(__("You are about to delete this Log and Backupfile. \n 'Cancel' to stop, 'OK' to delete.","backwpup")) ?>') ){return true;}return false;"><?PHP _e('Delete','backwpup'); ?></a></span>
|
| 80 |
<?PHP if (!empty($logvalue['backupfile']) and is_file($logvalue['backupfile'])) { ?>
|
| 81 |
+
<span class="download"> | <a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=download&log='.$logvalue['logtime'], 'download-backup_'.$logvalue['logtime']); ?>"><?PHP _e('Download','backwpup'); ?></a></span>
|
| 82 |
<?PHP } ?>
|
| 83 |
</div></p>
|
| 84 |
</td>
|
| 87 |
<?PHP
|
| 88 |
if($logvalue['error']>0 or $logvalue['warning']>0) {
|
| 89 |
if ($logvalue['error']>0)
|
| 90 |
+
echo '<span style="color:red;">'.$logvalue['error'].' '.__('ERROR(S)','backwpup').'</span><br />';
|
| 91 |
if ($logvalue['warning']>0)
|
| 92 |
echo '<span style="color:yellow;">'.$logvalue['warning'].' '.__('WARNING(S)','backwpup').'</span>';
|
| 93 |
} else {
|
| 94 |
+
echo '<span style="color:green;">'.__('OK','backwpup').'</span>';
|
| 95 |
}
|
| 96 |
?>
|
| 97 |
</strong>
|
| 105 |
}
|
| 106 |
?>
|
| 107 |
</td>
|
| 108 |
+
<td class="column-runtime">
|
| 109 |
<?PHP
|
| 110 |
echo $logvalue['worktime'].' '.__('sec.','backwpup');
|
| 111 |
?>
|
app/options-runnow.php
CHANGED
|
@@ -2,15 +2,12 @@
|
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup Job Running", "backwpup"); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
-
<li><a href="admin.php?page=BackWPup"
|
| 6 |
-
<li><a href="admin.php?page=BackWPup&action=logs"
|
| 7 |
-
<li><a href="admin.php?page=BackWPup&action=
|
|
|
|
| 8 |
</ul>
|
| 9 |
<br class="clear" />
|
| 10 |
-
<?PHP $logtime=BackWPupFunctions::dojob(array('jobid'=>$jobid,'returnlogfile'=>true)); ?>
|
| 11 |
<pre>
|
| 12 |
-
<?PHP
|
| 13 |
-
$logs=get_option('backwpup_log');
|
| 14 |
-
echo $logs[$logtime]['log'];
|
| 15 |
-
?>
|
| 16 |
</pre>
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup Job Running", "backwpup"); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
+
<li><a href="admin.php?page=BackWPup"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 6 |
+
<li><a href="admin.php?page=BackWPup&action=logs"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
| 7 |
+
<li><a href="admin.php?page=BackWPup&action=db_restore"><?PHP _e('DB Restore','backwpup'); ?></a> |</li>
|
| 8 |
+
<li><a href="admin.php?page=BackWPup&action=settings"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
</ul>
|
| 10 |
<br class="clear" />
|
|
|
|
| 11 |
<pre>
|
| 12 |
+
<?PHP BackWPupFunctions::dojob($jobid); ?>
|
|
|
|
|
|
|
|
|
|
| 13 |
</pre>
|
app/options-save.php
CHANGED
|
@@ -11,12 +11,12 @@ class BackWPupOptions {
|
|
| 11 |
}
|
| 12 |
}
|
| 13 |
|
| 14 |
-
function delete_log($
|
| 15 |
-
$
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
| 20 |
}
|
| 21 |
|
| 22 |
function copy_job($jobid) {
|
|
@@ -40,19 +40,20 @@ class BackWPupOptions {
|
|
| 40 |
update_option('backwpup',$cfg); //Save Settings
|
| 41 |
}
|
| 42 |
|
| 43 |
-
function download_backup($
|
| 44 |
-
$
|
| 45 |
-
|
|
|
|
| 46 |
header("Pragma: public");
|
| 47 |
header("Expires: 0");
|
| 48 |
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
| 49 |
header("Content-Type: application/force-download");
|
| 50 |
header("Content-Type: application/octet-stream");
|
| 51 |
header("Content-Type: application/download");
|
| 52 |
-
header("Content-Disposition: attachment; filename=".basename($
|
| 53 |
header("Content-Transfer-Encoding: binary");
|
| 54 |
-
header("Content-Length: ".filesize($
|
| 55 |
-
@readfile($
|
| 56 |
} else {
|
| 57 |
header('HTTP/1.0 404 Not Found');
|
| 58 |
die(__('File does not exist.', 'backwpup'));
|
|
@@ -76,7 +77,7 @@ class BackWPupOptions {
|
|
| 76 |
|
| 77 |
$jobs[$jobid]['type']= $_POST['type'];
|
| 78 |
$jobs[$jobid]['name']= esc_html($_POST['name']);
|
| 79 |
-
$jobs[$jobid]['activated']= $_POST['activated'];
|
| 80 |
$jobs[$jobid]['scheduletime']=mktime($_POST['schedulehour'],$_POST['scheduleminute'],0,$_POST['schedulemonth'],$_POST['scheduleday'],$_POST['scheduleyear']);
|
| 81 |
$jobs[$jobid]['scheduleintervaltype']=$_POST['scheduleintervaltype'];
|
| 82 |
$jobs[$jobid]['scheduleintervalteimes']=$_POST['scheduleintervalteimes'];
|
|
@@ -87,10 +88,14 @@ class BackWPupOptions {
|
|
| 87 |
$jobs[$jobid]['dbexclude']=array_unique((array)$_POST['dbexclude']);
|
| 88 |
$jobs[$jobid]['fileexclude']=str_replace('\\','/',stripslashes($_POST['fileexclude']));
|
| 89 |
$jobs[$jobid]['dirinclude']=str_replace('\\','/',stripslashes($_POST['dirinclude']));
|
| 90 |
-
$jobs[$jobid]['backuproot']=
|
| 91 |
-
$jobs[$jobid]['backupcontent']=
|
| 92 |
-
$jobs[$jobid]['backupplugins']=
|
| 93 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
|
| 95 |
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 96 |
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
| 11 |
}
|
| 12 |
}
|
| 13 |
|
| 14 |
+
function delete_log($logtime) {
|
| 15 |
+
global $wpdb;
|
| 16 |
+
$backupfile=$wpdb->get_var("SELECT backupfile FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime);
|
| 17 |
+
if (is_file($backupfile))
|
| 18 |
+
unlink($backupfile);
|
| 19 |
+
$wpdb->query("DELETE FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime);
|
| 20 |
}
|
| 21 |
|
| 22 |
function copy_job($jobid) {
|
| 40 |
update_option('backwpup',$cfg); //Save Settings
|
| 41 |
}
|
| 42 |
|
| 43 |
+
function download_backup($logtime) {
|
| 44 |
+
global $wpdb;
|
| 45 |
+
$backupfile=$wpdb->get_var("SELECT backupfile FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime);
|
| 46 |
+
if (is_file($backupfile)) {
|
| 47 |
header("Pragma: public");
|
| 48 |
header("Expires: 0");
|
| 49 |
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
| 50 |
header("Content-Type: application/force-download");
|
| 51 |
header("Content-Type: application/octet-stream");
|
| 52 |
header("Content-Type: application/download");
|
| 53 |
+
header("Content-Disposition: attachment; filename=".basename($backupfile).";");
|
| 54 |
header("Content-Transfer-Encoding: binary");
|
| 55 |
+
header("Content-Length: ".filesize($backupfile));
|
| 56 |
+
@readfile($backupfile);
|
| 57 |
} else {
|
| 58 |
header('HTTP/1.0 404 Not Found');
|
| 59 |
die(__('File does not exist.', 'backwpup'));
|
| 77 |
|
| 78 |
$jobs[$jobid]['type']= $_POST['type'];
|
| 79 |
$jobs[$jobid]['name']= esc_html($_POST['name']);
|
| 80 |
+
$jobs[$jobid]['activated']= $_POST['activated']==1 ? true : false;
|
| 81 |
$jobs[$jobid]['scheduletime']=mktime($_POST['schedulehour'],$_POST['scheduleminute'],0,$_POST['schedulemonth'],$_POST['scheduleday'],$_POST['scheduleyear']);
|
| 82 |
$jobs[$jobid]['scheduleintervaltype']=$_POST['scheduleintervaltype'];
|
| 83 |
$jobs[$jobid]['scheduleintervalteimes']=$_POST['scheduleintervalteimes'];
|
| 88 |
$jobs[$jobid]['dbexclude']=array_unique((array)$_POST['dbexclude']);
|
| 89 |
$jobs[$jobid]['fileexclude']=str_replace('\\','/',stripslashes($_POST['fileexclude']));
|
| 90 |
$jobs[$jobid]['dirinclude']=str_replace('\\','/',stripslashes($_POST['dirinclude']));
|
| 91 |
+
$jobs[$jobid]['backuproot']= $_POST['backuproot']==1 ? true : false;
|
| 92 |
+
$jobs[$jobid]['backupcontent']= $_POST['backupcontent']==1 ? true : false;
|
| 93 |
+
$jobs[$jobid]['backupplugins']= $_POST['backupplugins']==1 ? true : false;
|
| 94 |
+
$jobs[$jobid]['ftphost']=$_POST['ftphost'];
|
| 95 |
+
$jobs[$jobid]['ftpuser']=$_POST['ftpuser'];
|
| 96 |
+
$jobs[$jobid]['ftppass']=$_POST['ftppass'];
|
| 97 |
+
$jobs[$jobid]['ftpdir']=str_replace('\\','/',stripslashes($_POST['ftpdir']));
|
| 98 |
+
$jobs[$jobid]['ftpmaxbackups']=abs((int)$_POST['ftpmaxbackups']);
|
| 99 |
|
| 100 |
update_option('backwpup_jobs',$jobs); //Save Settings
|
| 101 |
if ($time=wp_next_scheduled('backwpup_cron',array('jobid'=>$jobid))) {
|
app/options-settings.php
CHANGED
|
@@ -2,10 +2,10 @@
|
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup Settings", "backwpup"); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
-
|
| 6 |
-
<li><a href="admin.php?page=BackWPup"
|
| 7 |
-
<li><a href="admin.php?page=BackWPup&action=
|
| 8 |
-
<li><a href="admin.php?page=BackWPup&action=settings" class="current"
|
| 9 |
</ul>
|
| 10 |
|
| 11 |
<form method="post" action="">
|
|
@@ -13,7 +13,15 @@
|
|
| 13 |
<?php wp_nonce_field('backwpup-cfg'); ?>
|
| 14 |
|
| 15 |
<table class="form-table">
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
|
| 18 |
</table>
|
| 19 |
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup Settings", "backwpup"); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
+
<li><a href="admin.php?page=BackWPup"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 6 |
+
<li><a href="admin.php?page=BackWPup&action=logs"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
| 7 |
+
<li><a href="admin.php?page=BackWPup&action=db_restore"><?PHP _e('DB Restore','backwpup'); ?></a> |</li>
|
| 8 |
+
<li><a href="admin.php?page=BackWPup&action=settings" class="current"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
</ul>
|
| 10 |
|
| 11 |
<form method="post" action="">
|
| 13 |
<?php wp_nonce_field('backwpup-cfg'); ?>
|
| 14 |
|
| 15 |
<table class="form-table">
|
| 16 |
+
<tr valign="top">
|
| 17 |
+
<tr valign="top">
|
| 18 |
+
<th scope="row"><label for="jobname"><?PHP _e('Script Runime','backwpup'); ?></label></th>
|
| 19 |
+
<td>
|
| 20 |
+
<?
|
| 21 |
+
echo __('PHP.ini execution time:','backwpup').' '.ini_get('max_execution_time').' '.__('sec.','backwpup').'<br />';
|
| 22 |
+
?>
|
| 23 |
+
</td>
|
| 24 |
+
</tr>
|
| 25 |
|
| 26 |
</table>
|
| 27 |
|
app/options-view_log.php
CHANGED
|
@@ -2,14 +2,15 @@
|
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup View Log", "backwpup"); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
-
<li><a href="admin.php?page=BackWPup"
|
| 6 |
-
<li><a href="admin.php?page=BackWPup&action=logs"
|
| 7 |
-
<li><a href="admin.php?page=BackWPup&action=
|
|
|
|
| 8 |
</ul>
|
| 9 |
<br class="clear" />
|
| 10 |
|
| 11 |
<pre>
|
| 12 |
<?PHP
|
| 13 |
-
echo $
|
| 14 |
?>
|
| 15 |
</pre>
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup View Log", "backwpup"); ?></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
+
<li><a href="admin.php?page=BackWPup"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 6 |
+
<li><a href="admin.php?page=BackWPup&action=logs"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
| 7 |
+
<li><a href="admin.php?page=BackWPup&action=db_restore"><?PHP _e('DB Restore','backwpup'); ?></a> |</li>
|
| 8 |
+
<li><a href="admin.php?page=BackWPup&action=settings"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
</ul>
|
| 10 |
<br class="clear" />
|
| 11 |
|
| 12 |
<pre>
|
| 13 |
<?PHP
|
| 14 |
+
echo $wpdb->get_var("SELECT log FROM ".$wpdb->backwpup_logs." WHERE logtime=".$logtime);
|
| 15 |
?>
|
| 16 |
</pre>
|
app/options.php
CHANGED
|
@@ -2,9 +2,9 @@
|
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup", "backwpup"); ?><a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=edit&jobid=0', 'edit-job'); ?>" class="button add-new-h2"><?php esc_html_e('Add New'); ?></a></h2>
|
| 4 |
<ul class="subsubsub">
|
| 5 |
-
|
| 6 |
<li><a href="admin.php?page=BackWPup" class="current"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 7 |
-
<li><a href="admin.php?page=BackWPup&action=logs"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
|
|
|
| 8 |
<li><a href="admin.php?page=BackWPup&action=settings"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
</ul>
|
| 10 |
|
|
@@ -68,20 +68,7 @@
|
|
| 68 |
</td>
|
| 69 |
<td class="column-type">
|
| 70 |
<?PHP
|
| 71 |
-
|
| 72 |
-
case 'DB+FILE':
|
| 73 |
-
_e('Database & File Backup','backwpup');
|
| 74 |
-
break;
|
| 75 |
-
case 'DB':
|
| 76 |
-
_e('Database Backup','backwpup');
|
| 77 |
-
break;
|
| 78 |
-
case 'FILE':
|
| 79 |
-
_e('File Backup','backwpup');
|
| 80 |
-
break;
|
| 81 |
-
case 'OPTIMIZE':
|
| 82 |
-
_e('Optimize Database Tabels','backwpup');
|
| 83 |
-
break;
|
| 84 |
-
}
|
| 85 |
?>
|
| 86 |
</td>
|
| 87 |
<td class="column-next">
|
| 2 |
<div id="icon-tools" class="icon32"><br /></div>
|
| 3 |
<h2><?php _e("BackWPup", "backwpup"); ?><a href="<?PHP echo wp_nonce_url('admin.php?page=BackWPup&action=edit&jobid=0', 'edit-job'); ?>" class="button add-new-h2"><?php esc_html_e('Add New'); ?></a></h2>
|
| 4 |
<ul class="subsubsub">
|
|
|
|
| 5 |
<li><a href="admin.php?page=BackWPup" class="current"><?PHP _e('Jobs','backwpup'); ?></a> |</li>
|
| 6 |
+
<li><a href="admin.php?page=BackWPup&action=logs"><?PHP _e('Logs','backwpup'); ?></a> |</li>
|
| 7 |
+
<li><a href="admin.php?page=BackWPup&action=db_restore"><?PHP _e('DB Restore','backwpup'); ?></a> |</li>
|
| 8 |
<li><a href="admin.php?page=BackWPup&action=settings"><?PHP _e('Settings','backwpup'); ?></a></li>
|
| 9 |
</ul>
|
| 10 |
|
| 68 |
</td>
|
| 69 |
<td class="column-type">
|
| 70 |
<?PHP
|
| 71 |
+
BackWPupFunctions::backup_types($jobvalue['type'],true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
?>
|
| 73 |
</td>
|
| 74 |
<td class="column-next">
|
backwpup.php
CHANGED
|
@@ -4,14 +4,14 @@ Plugin Name: BackWPup
|
|
| 4 |
Plugin URI: http://danielhuesken.de/portfolio/backwpup/
|
| 5 |
Description: Backup and more of your WordPress Blog Database and Files.
|
| 6 |
Author: Daniel Hüsken
|
| 7 |
-
Version: 0.
|
| 8 |
Author URI: http://danielhuesken.de
|
| 9 |
Text Domain: backwpup
|
| 10 |
Domain Path: /lang/
|
| 11 |
*/
|
| 12 |
|
| 13 |
/*
|
| 14 |
-
Copyright
|
| 15 |
|
| 16 |
This program is free software; you can redistribute it and/or modify
|
| 17 |
it under the terms of the GNU General Public License as published by
|
|
@@ -25,33 +25,33 @@ Domain Path: /lang/
|
|
| 25 |
|
| 26 |
You should have received a copy of the GNU General Public License
|
| 27 |
along with this program; if not, write to the Free Software
|
| 28 |
-
Foundation, Inc.,
|
| 29 |
-
*/
|
| 30 |
-
|
| 31 |
-
/*
|
| 32 |
-
Change log:
|
| 33 |
-
Version 0.5.0: Inital test Release
|
| 34 |
-
|
| 35 |
*/
|
| 36 |
|
| 37 |
|
| 38 |
//Set plugin dirname
|
| 39 |
define('BACKWPUP_PLUGIN_DIR', dirname(plugin_basename(__FILE__)));
|
| 40 |
//Set Plugin Version
|
| 41 |
-
define('BACKWPUP_VERSION', '0.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
|
| 43 |
//Version check
|
| 44 |
if (version_compare($wp_version, '2.8', '<')) { // Let only Activate on WordPress Version 2.8 or heiger
|
| 45 |
add_action('admin_notices', create_function('', 'echo \'<div id="message" class="error fade"><p><strong>' . __('Sorry, BackWPup works only under WordPress 2.8 or higher','backwpup') . '</strong></p></div>\';'));
|
| 46 |
} else {
|
| 47 |
-
//Load functions file
|
| 48 |
-
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/functions.php');
|
| 49 |
-
//Plugin activate
|
| 50 |
-
register_activation_hook(__FILE__, array('BackWPupFunctions', 'plugin_activate')); //Don't work!!!!
|
| 51 |
-
//Plugin deactivate
|
| 52 |
-
register_deactivation_hook(__FILE__, array('BackWPupFunctions', 'plugin_deactivate'));
|
| 53 |
-
//Plugin uninstall
|
| 54 |
-
register_uninstall_hook(__FILE__, array('BackWPupFunctions', 'plugin_uninstall'));
|
| 55 |
//Plugin init
|
| 56 |
add_action('plugins_loaded', array('BackWPupFunctions', 'init'));
|
| 57 |
}
|
| 4 |
Plugin URI: http://danielhuesken.de/portfolio/backwpup/
|
| 5 |
Description: Backup and more of your WordPress Blog Database and Files.
|
| 6 |
Author: Daniel Hüsken
|
| 7 |
+
Version: 0.6.0
|
| 8 |
Author URI: http://danielhuesken.de
|
| 9 |
Text Domain: backwpup
|
| 10 |
Domain Path: /lang/
|
| 11 |
*/
|
| 12 |
|
| 13 |
/*
|
| 14 |
+
Copyright 2009 Daniel H�sken (email : daniel@huesken-net.de)
|
| 15 |
|
| 16 |
This program is free software; you can redistribute it and/or modify
|
| 17 |
it under the terms of the GNU General Public License as published by
|
| 25 |
|
| 26 |
You should have received a copy of the GNU General Public License
|
| 27 |
along with this program; if not, write to the Free Software
|
| 28 |
+
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
*/
|
| 30 |
|
| 31 |
|
| 32 |
//Set plugin dirname
|
| 33 |
define('BACKWPUP_PLUGIN_DIR', dirname(plugin_basename(__FILE__)));
|
| 34 |
//Set Plugin Version
|
| 35 |
+
define('BACKWPUP_VERSION', '0.6.0');
|
| 36 |
+
//BackWPup Log Table Name
|
| 37 |
+
global $wpdb;
|
| 38 |
+
$wpdb->backwpup_logs = $wpdb->prefix.'backwpup_logs';
|
| 39 |
+
|
| 40 |
+
//load Text Domain
|
| 41 |
+
load_plugin_textdomain('backwpup', false, BACKWPUP_PLUGIN_DIR.'/lang');
|
| 42 |
+
//Load functions file
|
| 43 |
+
require_once(WP_PLUGIN_DIR.'/'.BACKWPUP_PLUGIN_DIR.'/app/functions.php');
|
| 44 |
+
//Plugin activate
|
| 45 |
+
register_activation_hook(__FILE__, array('BackWPupFunctions', 'plugin_activate'));
|
| 46 |
+
//Plugin deactivate
|
| 47 |
+
register_deactivation_hook(__FILE__, array('BackWPupFunctions', 'plugin_deactivate'));
|
| 48 |
+
//Plugin uninstall
|
| 49 |
+
register_uninstall_hook(__FILE__, array('BackWPupFunctions', 'plugin_uninstall'));
|
| 50 |
|
| 51 |
//Version check
|
| 52 |
if (version_compare($wp_version, '2.8', '<')) { // Let only Activate on WordPress Version 2.8 or heiger
|
| 53 |
add_action('admin_notices', create_function('', 'echo \'<div id="message" class="error fade"><p><strong>' . __('Sorry, BackWPup works only under WordPress 2.8 or higher','backwpup') . '</strong></p></div>\';'));
|
| 54 |
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 55 |
//Plugin init
|
| 56 |
add_action('plugins_loaded', array('BackWPupFunctions', 'init'));
|
| 57 |
}
|
lang/backwpup.pot
CHANGED
|
@@ -8,7 +8,7 @@ msgid ""
|
|
| 8 |
msgstr ""
|
| 9 |
"Project-Id-Version: PACKAGE VERSION\n"
|
| 10 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/backwpup\n"
|
| 11 |
-
"POT-Creation-Date: 2009-07-
|
| 12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
@@ -20,138 +20,259 @@ msgstr ""
|
|
| 20 |
msgid "Delete old backup files..."
|
| 21 |
msgstr ""
|
| 22 |
|
| 23 |
-
#: app/dojob/after.php:
|
| 24 |
-
msgid "
|
| 25 |
msgstr ""
|
| 26 |
|
| 27 |
-
#: app/dojob/after.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
#, php-format
|
| 29 |
msgid "Backup zip filesize is %1s"
|
| 30 |
msgstr ""
|
| 31 |
|
| 32 |
-
#: app/dojob/bevore.php:
|
| 33 |
-
#: app/
|
|
|
|
|
|
|
| 34 |
msgid "WARNING:"
|
| 35 |
msgstr ""
|
| 36 |
|
| 37 |
-
#: app/dojob/bevore.php:
|
| 38 |
#, php-format
|
| 39 |
-
msgid "Safe Mode is on!!! Max exec time is %1$s sec."
|
| 40 |
msgstr ""
|
| 41 |
|
| 42 |
-
#: app/dojob/bevore.php:
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
msgid "ERROR:"
|
| 48 |
msgstr ""
|
| 49 |
|
| 50 |
-
#: app/dojob/bevore.php:
|
| 51 |
msgid "Can not create Temp dir"
|
| 52 |
msgstr ""
|
| 53 |
|
| 54 |
-
#: app/dojob/bevore.php:
|
| 55 |
msgid "Can not write to Temp dir"
|
| 56 |
msgstr ""
|
| 57 |
|
| 58 |
-
#: app/dojob/bevore.php:
|
| 59 |
msgid "Can not create Backup dir"
|
| 60 |
msgstr ""
|
| 61 |
|
| 62 |
-
#: app/dojob/bevore.php:
|
| 63 |
msgid "Can not write to Backup dir"
|
| 64 |
msgstr ""
|
| 65 |
|
| 66 |
-
#: app/dojob/bevore.php:
|
| 67 |
msgid "Backup zip file save to:"
|
| 68 |
msgstr ""
|
| 69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 70 |
#: app/dojob/db.php:2
|
| 71 |
msgid "Run Database Backup..."
|
| 72 |
msgstr ""
|
| 73 |
|
| 74 |
-
#: app/dojob/db.php:
|
| 75 |
-
msgid "
|
| 76 |
msgstr ""
|
| 77 |
|
| 78 |
-
#: app/dojob/db.php:
|
| 79 |
-
msgid "
|
| 80 |
msgstr ""
|
| 81 |
|
| 82 |
-
#: app/dojob/db.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
msgid "Database backup done!"
|
| 84 |
msgstr ""
|
| 85 |
|
| 86 |
-
#: app/dojob/db.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
msgid "Create Zip file from dump..."
|
| 88 |
msgstr ""
|
| 89 |
|
| 90 |
-
#: app/dojob/db.php:
|
| 91 |
-
msgid "
|
| 92 |
msgstr ""
|
| 93 |
|
| 94 |
-
#: app/dojob/db.php:
|
| 95 |
msgid "Zip file created..."
|
| 96 |
msgstr ""
|
| 97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
#: app/dojob/destination-mail.php:3
|
| 99 |
msgid "Sendig mail..."
|
| 100 |
msgstr ""
|
| 101 |
|
| 102 |
-
#: app/dojob/destination-mail.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 103 |
msgid "Backup Archive too big for sendig by mail"
|
| 104 |
msgstr ""
|
| 105 |
|
| 106 |
-
#: app/dojob/destination-mail.php:
|
| 107 |
msgid "BackWPup Job:"
|
| 108 |
msgstr ""
|
| 109 |
|
| 110 |
-
#: app/dojob/destination-mail.php:
|
| 111 |
msgid "Mail send!!!"
|
| 112 |
msgstr ""
|
| 113 |
|
| 114 |
-
#: app/dojob/destination-mail.php:
|
| 115 |
msgid "Can not send mail!!!"
|
| 116 |
msgstr ""
|
| 117 |
|
| 118 |
-
#: app/dojob/file.php:
|
| 119 |
-
msgid "Run
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
msgstr ""
|
| 121 |
|
| 122 |
-
#: app/dojob/file.php:
|
| 123 |
-
msgid "
|
| 124 |
msgstr ""
|
| 125 |
|
| 126 |
-
#: app/dojob/file.php:
|
| 127 |
-
msgid "
|
| 128 |
msgstr ""
|
| 129 |
|
| 130 |
-
#: app/dojob/file.php:
|
| 131 |
msgid "No files to Backup"
|
| 132 |
msgstr ""
|
| 133 |
|
| 134 |
-
#: app/dojob/file.php:
|
| 135 |
-
msgid "
|
| 136 |
msgstr ""
|
| 137 |
|
| 138 |
-
#: app/dojob/file.php:
|
| 139 |
msgid "Create Backup Zip file..."
|
| 140 |
msgstr ""
|
| 141 |
|
| 142 |
-
#: app/dojob/file.php:
|
| 143 |
msgid "Zip file create:"
|
| 144 |
msgstr ""
|
| 145 |
|
| 146 |
-
#: app/dojob/file.php:
|
| 147 |
msgid "Add Database dump to Backup Zip file..."
|
| 148 |
msgstr ""
|
| 149 |
|
| 150 |
-
#: app/dojob/file.php:
|
| 151 |
msgid "Zip file create Add Database dump:"
|
| 152 |
msgstr ""
|
| 153 |
|
| 154 |
-
#: app/dojob/file.php:
|
| 155 |
msgid "Backup Zip file create done!"
|
| 156 |
msgstr ""
|
| 157 |
|
|
@@ -159,327 +280,416 @@ msgstr ""
|
|
| 159 |
msgid "Run Database optimize..."
|
| 160 |
msgstr ""
|
| 161 |
|
| 162 |
-
#: app/dojob/optimize.php:
|
| 163 |
-
msgid "Tables to optimize: "
|
| 164 |
-
msgstr ""
|
| 165 |
-
|
| 166 |
-
#: app/dojob/optimize.php:20
|
| 167 |
#, php-format
|
| 168 |
-
msgid "
|
| 169 |
msgstr ""
|
| 170 |
|
| 171 |
-
#: app/dojob/optimize.php:
|
| 172 |
msgid "Database optimize done!"
|
| 173 |
msgstr ""
|
| 174 |
|
| 175 |
-
#: app/dojob/optimize.php:
|
| 176 |
msgid "No Tables to optimize"
|
| 177 |
msgstr ""
|
| 178 |
|
| 179 |
#. #-#-#-#-# plugin.pot (PACKAGE VERSION) #-#-#-#-#
|
| 180 |
#. Plugin Name of an extension
|
| 181 |
-
#: app/functions.php:
|
| 182 |
msgid "BackWPup"
|
| 183 |
msgstr ""
|
| 184 |
|
| 185 |
-
#: app/functions.php:
|
| 186 |
msgid "Support"
|
| 187 |
msgstr ""
|
| 188 |
|
| 189 |
-
#: app/functions.php:
|
| 190 |
msgid "FAQ"
|
| 191 |
msgstr ""
|
| 192 |
|
| 193 |
-
#: app/functions.php:
|
| 194 |
msgid "Plugin Homepage"
|
| 195 |
msgstr ""
|
| 196 |
|
| 197 |
-
#: app/functions.php:
|
| 198 |
msgid "Plugin Home on WordPress.org"
|
| 199 |
msgstr ""
|
| 200 |
|
| 201 |
-
#: app/functions.php:
|
| 202 |
msgid "Donate"
|
| 203 |
msgstr ""
|
| 204 |
|
| 205 |
-
#: app/functions.php:
|
| 206 |
msgid "Version:"
|
| 207 |
msgstr ""
|
| 208 |
|
| 209 |
-
#: app/functions.php:
|
| 210 |
msgid "Author:"
|
| 211 |
msgstr ""
|
| 212 |
|
| 213 |
-
#: app/functions.php:
|
| 214 |
msgid "Go to Settings Page"
|
| 215 |
msgstr ""
|
| 216 |
|
| 217 |
-
#: app/functions.php:
|
|
|
|
|
|
|
| 218 |
msgid "Settings"
|
| 219 |
msgstr ""
|
| 220 |
|
| 221 |
-
#: app/functions.php:
|
| 222 |
msgid "BackWPup Job "
|
| 223 |
msgstr ""
|
| 224 |
|
| 225 |
-
#: app/
|
| 226 |
-
|
|
|
|
| 227 |
msgstr ""
|
| 228 |
|
| 229 |
-
#: app/
|
| 230 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 231 |
msgstr ""
|
| 232 |
|
| 233 |
-
#: app/
|
| 234 |
msgid "Database & File Backup"
|
| 235 |
msgstr ""
|
| 236 |
|
| 237 |
-
#: app/
|
| 238 |
msgid "Database Backup"
|
| 239 |
msgstr ""
|
| 240 |
|
| 241 |
-
#: app/
|
| 242 |
msgid "File Backup"
|
| 243 |
msgstr ""
|
| 244 |
|
| 245 |
-
#: app/
|
| 246 |
msgid "Optimize Database Tabels"
|
| 247 |
msgstr ""
|
| 248 |
|
| 249 |
-
#: app/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 250 |
msgid "Change"
|
| 251 |
msgstr ""
|
| 252 |
|
| 253 |
-
#: app/options-edit.php:
|
| 254 |
msgid "Job Name"
|
| 255 |
msgstr ""
|
| 256 |
|
| 257 |
-
#: app/options-edit.php:
|
| 258 |
msgid "Exclude Databas Tabels:"
|
| 259 |
msgstr ""
|
| 260 |
|
| 261 |
-
#: app/options-edit.php:
|
| 262 |
msgid "Backup Blog dirs"
|
| 263 |
msgstr ""
|
| 264 |
|
| 265 |
-
#: app/options-edit.php:
|
| 266 |
msgid "Blog root and WP Files"
|
| 267 |
msgstr ""
|
| 268 |
|
| 269 |
-
#: app/options-edit.php:
|
| 270 |
msgid "Blog Content"
|
| 271 |
msgstr ""
|
| 272 |
|
| 273 |
-
#: app/options-edit.php:
|
| 274 |
msgid "Blog Plugins"
|
| 275 |
msgstr ""
|
| 276 |
|
| 277 |
-
#: app/options-edit.php:
|
| 278 |
msgid "Include extra dirs"
|
| 279 |
msgstr ""
|
| 280 |
|
| 281 |
-
#: app/options-edit.php:
|
| 282 |
msgid "Separate with ,. Full Path like:"
|
| 283 |
msgstr ""
|
| 284 |
|
| 285 |
-
#: app/options-edit.php:
|
| 286 |
msgid "Exclude files/dirs"
|
| 287 |
msgstr ""
|
| 288 |
|
| 289 |
-
#: app/options-edit.php:
|
| 290 |
msgid "Separate with ,"
|
| 291 |
msgstr ""
|
| 292 |
|
| 293 |
-
#: app/options-edit.php:
|
| 294 |
msgid "Schedule"
|
| 295 |
msgstr ""
|
| 296 |
|
| 297 |
-
#: app/options-edit.php:
|
| 298 |
msgid "Run Every:"
|
| 299 |
msgstr ""
|
| 300 |
|
| 301 |
-
#: app/options-edit.php:
|
| 302 |
msgid "Min(s)"
|
| 303 |
msgstr ""
|
| 304 |
|
| 305 |
-
#: app/options-edit.php:
|
| 306 |
msgid "Houer(s)"
|
| 307 |
msgstr ""
|
| 308 |
|
| 309 |
-
#: app/options-edit.php:
|
| 310 |
msgid "Day(s)"
|
| 311 |
msgstr ""
|
| 312 |
|
| 313 |
-
#: app/options-edit.php:
|
| 314 |
msgid "Start Time:"
|
| 315 |
msgstr ""
|
| 316 |
|
| 317 |
-
#: app/options-edit.php:
|
| 318 |
msgid "Start Date:"
|
| 319 |
msgstr ""
|
| 320 |
|
| 321 |
-
#: app/options-edit.php:
|
| 322 |
msgid "January"
|
| 323 |
msgstr ""
|
| 324 |
|
| 325 |
-
#: app/options-edit.php:
|
| 326 |
msgid "February"
|
| 327 |
msgstr ""
|
| 328 |
|
| 329 |
-
#: app/options-edit.php:
|
| 330 |
msgid "March"
|
| 331 |
msgstr ""
|
| 332 |
|
| 333 |
-
#: app/options-edit.php:
|
| 334 |
msgid "April"
|
| 335 |
msgstr ""
|
| 336 |
|
| 337 |
-
#: app/options-edit.php:
|
| 338 |
msgid "May"
|
| 339 |
msgstr ""
|
| 340 |
|
| 341 |
-
#: app/options-edit.php:
|
| 342 |
msgid "June"
|
| 343 |
msgstr ""
|
| 344 |
|
| 345 |
-
#: app/options-edit.php:
|
| 346 |
msgid "July"
|
| 347 |
msgstr ""
|
| 348 |
|
| 349 |
-
#: app/options-edit.php:
|
| 350 |
msgid "August"
|
| 351 |
msgstr ""
|
| 352 |
|
| 353 |
-
#: app/options-edit.php:
|
| 354 |
msgid "September"
|
| 355 |
msgstr ""
|
| 356 |
|
| 357 |
-
#: app/options-edit.php:
|
| 358 |
msgid "October"
|
| 359 |
msgstr ""
|
| 360 |
|
| 361 |
-
#: app/options-edit.php:
|
| 362 |
msgid "November"
|
| 363 |
msgstr ""
|
| 364 |
|
| 365 |
-
#: app/options-edit.php:
|
| 366 |
msgid "December"
|
| 367 |
msgstr ""
|
| 368 |
|
| 369 |
-
#: app/options-edit.php:
|
| 370 |
msgid "Activate:"
|
| 371 |
msgstr ""
|
| 372 |
|
| 373 |
-
#: app/options-edit.php:
|
| 374 |
msgid "Backup to Directory"
|
| 375 |
msgstr ""
|
| 376 |
|
| 377 |
-
#: app/options-edit.php:
|
| 378 |
msgid "Full Phath of Directory for Backup fiels"
|
| 379 |
msgstr ""
|
| 380 |
|
| 381 |
-
#: app/options-edit.php:
|
| 382 |
msgid "Max number of Backup Files"
|
| 383 |
msgstr ""
|
| 384 |
|
| 385 |
-
#: app/options-edit.php:
|
| 386 |
msgid "Off"
|
| 387 |
msgstr ""
|
| 388 |
|
| 389 |
-
#: app/options-edit.php:
|
| 390 |
msgid "Oldest files will deletet first."
|
| 391 |
msgstr ""
|
| 392 |
|
| 393 |
-
#: app/options-edit.php:
|
| 394 |
-
msgid "
|
| 395 |
msgstr ""
|
| 396 |
|
| 397 |
-
#: app/options-edit.php:
|
| 398 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 399 |
msgstr ""
|
| 400 |
|
| 401 |
#: app/options-logs.php:3
|
| 402 |
msgid "BackWPup Logs"
|
| 403 |
msgstr ""
|
| 404 |
|
| 405 |
-
#: app/options-logs.php:
|
| 406 |
-
#: app/options.php:
|
| 407 |
msgid "Bulk Actions"
|
| 408 |
msgstr ""
|
| 409 |
|
| 410 |
-
#: app/options-logs.php:
|
| 411 |
-
#: app/options.php:19 app/options.php:64 app/options.php:
|
| 412 |
msgid "Delete"
|
| 413 |
msgstr ""
|
| 414 |
|
| 415 |
-
#: app/options-logs.php:
|
| 416 |
-
#: app/options.php:
|
| 417 |
msgid "Apply"
|
| 418 |
msgstr ""
|
| 419 |
|
| 420 |
-
#: app/options-logs.php:
|
| 421 |
msgid "Job"
|
| 422 |
msgstr ""
|
| 423 |
|
| 424 |
-
#: app/options-logs.php:
|
| 425 |
#: app/options.php:46
|
| 426 |
msgid "Type"
|
| 427 |
msgstr ""
|
| 428 |
|
| 429 |
-
#: app/options-logs.php:
|
| 430 |
msgid "Backup/Log Date/Time"
|
| 431 |
msgstr ""
|
| 432 |
|
| 433 |
-
#: app/options-logs.php:
|
| 434 |
msgid "Status"
|
| 435 |
msgstr ""
|
| 436 |
|
| 437 |
-
#: app/options-logs.php:
|
| 438 |
msgid "Size"
|
| 439 |
msgstr ""
|
| 440 |
|
| 441 |
-
#: app/options-logs.php:
|
| 442 |
msgid "Runtime"
|
| 443 |
msgstr ""
|
| 444 |
|
| 445 |
-
#: app/options-logs.php:
|
| 446 |
msgid "View log"
|
| 447 |
msgstr ""
|
| 448 |
|
| 449 |
-
#: app/options-logs.php:
|
| 450 |
msgid "View"
|
| 451 |
msgstr ""
|
| 452 |
|
| 453 |
-
#: app/options-logs.php:
|
| 454 |
msgid ""
|
| 455 |
-
"You are about to delete this
|
| 456 |
" 'Cancel' to stop, 'OK' to delete."
|
| 457 |
msgstr ""
|
| 458 |
|
| 459 |
-
#: app/options-logs.php:
|
| 460 |
msgid "Download"
|
| 461 |
msgstr ""
|
| 462 |
|
| 463 |
-
#: app/options-logs.php:
|
| 464 |
-
msgid "ERROR(S)"
|
| 465 |
-
msgstr ""
|
| 466 |
-
|
| 467 |
-
#: app/options-logs.php:103
|
| 468 |
-
msgid "WARNING(S)"
|
| 469 |
-
msgstr ""
|
| 470 |
-
|
| 471 |
-
#: app/options-logs.php:105
|
| 472 |
-
msgid "OK"
|
| 473 |
-
msgstr ""
|
| 474 |
-
|
| 475 |
-
#: app/options-logs.php:115
|
| 476 |
msgid "only Log"
|
| 477 |
msgstr ""
|
| 478 |
|
| 479 |
-
#: app/options-logs.php:121 app/options.php:91 app/options.php:104
|
| 480 |
-
msgid "sec."
|
| 481 |
-
msgstr ""
|
| 482 |
-
|
| 483 |
#: app/options-runnow.php:3
|
| 484 |
msgid "BackWPup Job Running"
|
| 485 |
msgstr ""
|
|
@@ -488,7 +698,7 @@ msgstr ""
|
|
| 488 |
msgid "Copy of"
|
| 489 |
msgstr ""
|
| 490 |
|
| 491 |
-
#: app/options-save.php:
|
| 492 |
msgid "File does not exist."
|
| 493 |
msgstr ""
|
| 494 |
|
|
@@ -496,20 +706,20 @@ msgstr ""
|
|
| 496 |
msgid "BackWPup Settings"
|
| 497 |
msgstr ""
|
| 498 |
|
| 499 |
-
#: app/options-
|
| 500 |
-
msgid "
|
| 501 |
msgstr ""
|
| 502 |
|
| 503 |
-
#: app/options.php:
|
| 504 |
-
msgid "
|
| 505 |
msgstr ""
|
| 506 |
|
| 507 |
-
#: app/options.php:
|
| 508 |
-
msgid "
|
| 509 |
msgstr ""
|
| 510 |
|
| 511 |
-
#: app/options.php:
|
| 512 |
-
msgid "
|
| 513 |
msgstr ""
|
| 514 |
|
| 515 |
#: app/options.php:33 app/options.php:44
|
|
@@ -536,6 +746,12 @@ msgstr ""
|
|
| 536 |
msgid "Edit"
|
| 537 |
msgstr ""
|
| 538 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 539 |
#: app/options.php:65
|
| 540 |
msgid "Copy"
|
| 541 |
msgstr ""
|
|
@@ -544,22 +760,18 @@ msgstr ""
|
|
| 544 |
msgid "Run Now"
|
| 545 |
msgstr ""
|
| 546 |
|
| 547 |
-
#: app/options.php:
|
| 548 |
-
msgid "Running since:"
|
| 549 |
-
msgstr ""
|
| 550 |
-
|
| 551 |
-
#: app/options.php:95
|
| 552 |
msgid "Inactive"
|
| 553 |
msgstr ""
|
| 554 |
|
| 555 |
-
#: app/options.php:
|
| 556 |
msgid "Runtime:"
|
| 557 |
msgstr ""
|
| 558 |
|
| 559 |
-
#: app/options.php:
|
| 560 |
msgid "None"
|
| 561 |
msgstr ""
|
| 562 |
|
| 563 |
-
#: backwpup.php:
|
| 564 |
msgid "Sorry, BackWPup works only under WordPress 2.8 or higher"
|
| 565 |
msgstr ""
|
| 8 |
msgstr ""
|
| 9 |
"Project-Id-Version: PACKAGE VERSION\n"
|
| 10 |
"Report-Msgid-Bugs-To: http://wordpress.org/tag/backwpup\n"
|
| 11 |
+
"POT-Creation-Date: 2009-07-19 15:25+0000\n"
|
| 12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
| 13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
| 14 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
| 20 |
msgid "Delete old backup files..."
|
| 21 |
msgstr ""
|
| 22 |
|
| 23 |
+
#: app/dojob/after.php:22
|
| 24 |
+
msgid "old backup files deleted!!!"
|
| 25 |
msgstr ""
|
| 26 |
|
| 27 |
+
#: app/dojob/after.php:24
|
| 28 |
+
msgid "old logs deleted!!!"
|
| 29 |
+
msgstr ""
|
| 30 |
+
|
| 31 |
+
#: app/dojob/after.php:31
|
| 32 |
#, php-format
|
| 33 |
msgid "Backup zip filesize is %1s"
|
| 34 |
msgstr ""
|
| 35 |
|
| 36 |
+
#: app/dojob/bevore.php:37 app/dojob/destination-ftp.php:26
|
| 37 |
+
#: app/dojob/destination-ftp.php:31 app/dojob/destination-mail.php:13
|
| 38 |
+
#: app/dojob/file.php:38 app/dojob/file.php:41 app/functions.php:293
|
| 39 |
+
#: app/functions.php:312
|
| 40 |
msgid "WARNING:"
|
| 41 |
msgstr ""
|
| 42 |
|
| 43 |
+
#: app/dojob/bevore.php:37
|
| 44 |
#, php-format
|
| 45 |
+
msgid "PHP Safe Mode is on!!! Max exec time is %1$s sec."
|
| 46 |
msgstr ""
|
| 47 |
|
| 48 |
+
#: app/dojob/bevore.php:41
|
| 49 |
+
#, php-format
|
| 50 |
+
msgid "Temp dir is %1$s."
|
| 51 |
+
msgstr ""
|
| 52 |
+
|
| 53 |
+
#: app/dojob/bevore.php:45 app/dojob/bevore.php:51 app/dojob/bevore.php:73
|
| 54 |
+
#: app/dojob/bevore.php:79 app/dojob/check.php:19 app/dojob/check.php:24
|
| 55 |
+
#: app/dojob/check.php:31 app/dojob/db.php:19 app/dojob/db.php:28
|
| 56 |
+
#: app/dojob/db.php:79 app/dojob/db.php:127 app/dojob/db.php:130
|
| 57 |
+
#: app/dojob/db.php:141 app/dojob/destination-ftp.php:36
|
| 58 |
+
#: app/dojob/destination-ftp.php:50 app/dojob/destination-ftp.php:57
|
| 59 |
+
#: app/dojob/destination-ftp.php:61 app/dojob/destination-mail.php:8
|
| 60 |
+
#: app/dojob/destination-mail.php:15 app/dojob/destination-mail.php:23
|
| 61 |
+
#: app/dojob/file.php:84 app/dojob/file.php:97 app/dojob/file.php:103
|
| 62 |
+
#: app/dojob/optimize.php:19 app/dojob/optimize.php:25 app/functions.php:300
|
| 63 |
+
#: app/functions.php:310
|
| 64 |
msgid "ERROR:"
|
| 65 |
msgstr ""
|
| 66 |
|
| 67 |
+
#: app/dojob/bevore.php:45
|
| 68 |
msgid "Can not create Temp dir"
|
| 69 |
msgstr ""
|
| 70 |
|
| 71 |
+
#: app/dojob/bevore.php:51
|
| 72 |
msgid "Can not write to Temp dir"
|
| 73 |
msgstr ""
|
| 74 |
|
| 75 |
+
#: app/dojob/bevore.php:73
|
| 76 |
msgid "Can not create Backup dir"
|
| 77 |
msgstr ""
|
| 78 |
|
| 79 |
+
#: app/dojob/bevore.php:79
|
| 80 |
msgid "Can not write to Backup dir"
|
| 81 |
msgstr ""
|
| 82 |
|
| 83 |
+
#: app/dojob/bevore.php:95
|
| 84 |
msgid "Backup zip file save to:"
|
| 85 |
msgstr ""
|
| 86 |
|
| 87 |
+
#: app/dojob/check.php:3
|
| 88 |
+
msgid "Run Database check..."
|
| 89 |
+
msgstr ""
|
| 90 |
+
|
| 91 |
+
#: app/dojob/check.php:17 app/dojob/check.php:22 app/dojob/optimize.php:17
|
| 92 |
+
msgid ":"
|
| 93 |
+
msgstr ""
|
| 94 |
+
|
| 95 |
+
#: app/dojob/check.php:17
|
| 96 |
+
#, php-format
|
| 97 |
+
msgid "Result of table check for %1$s is: %2$s"
|
| 98 |
+
msgstr ""
|
| 99 |
+
|
| 100 |
+
#: app/dojob/check.php:19 app/dojob/check.php:24 app/dojob/db.php:19
|
| 101 |
+
#: app/dojob/db.php:28 app/dojob/db.php:79 app/dojob/optimize.php:19
|
| 102 |
+
#, php-format
|
| 103 |
+
msgid "BackWPup database error %1$s for query %2$s"
|
| 104 |
+
msgstr ""
|
| 105 |
+
|
| 106 |
+
#: app/dojob/check.php:22
|
| 107 |
+
#, php-format
|
| 108 |
+
msgid "Result of table repair for %1$s is: %2$s "
|
| 109 |
+
msgstr ""
|
| 110 |
+
|
| 111 |
+
#: app/dojob/check.php:29
|
| 112 |
+
msgid "Database check done!"
|
| 113 |
+
msgstr ""
|
| 114 |
+
|
| 115 |
+
#: app/dojob/check.php:31
|
| 116 |
+
msgid "No Tables to check"
|
| 117 |
+
msgstr ""
|
| 118 |
+
|
| 119 |
#: app/dojob/db.php:2
|
| 120 |
msgid "Run Database Backup..."
|
| 121 |
msgstr ""
|
| 122 |
|
| 123 |
+
#: app/dojob/db.php:111
|
| 124 |
+
msgid "Database table to Backup: "
|
| 125 |
msgstr ""
|
| 126 |
|
| 127 |
+
#: app/dojob/db.php:127
|
| 128 |
+
msgid "Can not create Database Backup file"
|
| 129 |
msgstr ""
|
| 130 |
|
| 131 |
+
#: app/dojob/db.php:130
|
| 132 |
+
msgid "No Tables to Backup"
|
| 133 |
+
msgstr ""
|
| 134 |
+
|
| 135 |
+
#: app/dojob/db.php:134
|
| 136 |
msgid "Database backup done!"
|
| 137 |
msgstr ""
|
| 138 |
|
| 139 |
+
#: app/dojob/db.php:137 app/dojob/file.php:100
|
| 140 |
+
msgid "Database file size:"
|
| 141 |
+
msgstr ""
|
| 142 |
+
|
| 143 |
+
#: app/dojob/db.php:138
|
| 144 |
msgid "Create Zip file from dump..."
|
| 145 |
msgstr ""
|
| 146 |
|
| 147 |
+
#: app/dojob/db.php:141
|
| 148 |
+
msgid "Database Zip file create:"
|
| 149 |
msgstr ""
|
| 150 |
|
| 151 |
+
#: app/dojob/db.php:144
|
| 152 |
msgid "Zip file created..."
|
| 153 |
msgstr ""
|
| 154 |
|
| 155 |
+
#: app/dojob/destination-ftp.php:11
|
| 156 |
+
msgid "Connected by SSL to FTP server:"
|
| 157 |
+
msgstr ""
|
| 158 |
+
|
| 159 |
+
#: app/dojob/destination-ftp.php:16
|
| 160 |
+
msgid "Connected insecure to FTP server:"
|
| 161 |
+
msgstr ""
|
| 162 |
+
|
| 163 |
+
#: app/dojob/destination-ftp.php:21
|
| 164 |
+
msgid "Logt on to FTP server with user:"
|
| 165 |
+
msgstr ""
|
| 166 |
+
|
| 167 |
+
#: app/dojob/destination-ftp.php:24
|
| 168 |
+
msgid "FTP set to passiv."
|
| 169 |
+
msgstr ""
|
| 170 |
+
|
| 171 |
+
#: app/dojob/destination-ftp.php:26
|
| 172 |
+
msgid "Can not set FTP Server to passiv!"
|
| 173 |
+
msgstr ""
|
| 174 |
+
|
| 175 |
+
#: app/dojob/destination-ftp.php:29
|
| 176 |
+
msgid "Space successfully allocated on FTP server. Sending backup file."
|
| 177 |
+
msgstr ""
|
| 178 |
+
|
| 179 |
+
#: app/dojob/destination-ftp.php:31
|
| 180 |
+
msgid "Unable to allocate space on server. FTP Server said:"
|
| 181 |
+
msgstr ""
|
| 182 |
+
|
| 183 |
+
#: app/dojob/destination-ftp.php:34
|
| 184 |
+
msgid "Backup File transfered to FTP Server:"
|
| 185 |
+
msgstr ""
|
| 186 |
+
|
| 187 |
+
#: app/dojob/destination-ftp.php:36
|
| 188 |
+
msgid "Can not tranfer backup to FTP server."
|
| 189 |
+
msgstr ""
|
| 190 |
+
|
| 191 |
+
#: app/dojob/destination-ftp.php:50
|
| 192 |
+
msgid "Can not delete file on FTP Server:"
|
| 193 |
+
msgstr ""
|
| 194 |
+
|
| 195 |
+
#: app/dojob/destination-ftp.php:53
|
| 196 |
+
msgid "files deleted on FTP Server:"
|
| 197 |
+
msgstr ""
|
| 198 |
+
|
| 199 |
+
#: app/dojob/destination-ftp.php:57
|
| 200 |
+
msgid "Can not login to FTP server with user:"
|
| 201 |
+
msgstr ""
|
| 202 |
+
|
| 203 |
+
#: app/dojob/destination-ftp.php:61
|
| 204 |
+
msgid "Can not connect to FTP server:"
|
| 205 |
+
msgstr ""
|
| 206 |
+
|
| 207 |
#: app/dojob/destination-mail.php:3
|
| 208 |
msgid "Sendig mail..."
|
| 209 |
msgstr ""
|
| 210 |
|
| 211 |
+
#: app/dojob/destination-mail.php:8
|
| 212 |
+
msgid "Out of Memory for sending Backup Archive by mail"
|
| 213 |
+
msgstr ""
|
| 214 |
+
|
| 215 |
+
#: app/dojob/destination-mail.php:13 app/dojob/destination-mail.php:15
|
| 216 |
msgid "Backup Archive too big for sendig by mail"
|
| 217 |
msgstr ""
|
| 218 |
|
| 219 |
+
#: app/dojob/destination-mail.php:20
|
| 220 |
msgid "BackWPup Job:"
|
| 221 |
msgstr ""
|
| 222 |
|
| 223 |
+
#: app/dojob/destination-mail.php:21
|
| 224 |
msgid "Mail send!!!"
|
| 225 |
msgstr ""
|
| 226 |
|
| 227 |
+
#: app/dojob/destination-mail.php:23
|
| 228 |
msgid "Can not send mail!!!"
|
| 229 |
msgstr ""
|
| 230 |
|
| 231 |
+
#: app/dojob/file.php:4
|
| 232 |
+
msgid "Run file backup..."
|
| 233 |
+
msgstr ""
|
| 234 |
+
|
| 235 |
+
#: app/dojob/file.php:5
|
| 236 |
+
msgid "Get files to backup..."
|
| 237 |
+
msgstr ""
|
| 238 |
+
|
| 239 |
+
#: app/dojob/file.php:36
|
| 240 |
+
msgid "File to Backup:"
|
| 241 |
msgstr ""
|
| 242 |
|
| 243 |
+
#: app/dojob/file.php:38
|
| 244 |
+
msgid "Can not read file:"
|
| 245 |
msgstr ""
|
| 246 |
|
| 247 |
+
#: app/dojob/file.php:41
|
| 248 |
+
msgid "Is not a file or directory:"
|
| 249 |
msgstr ""
|
| 250 |
|
| 251 |
+
#: app/dojob/file.php:84
|
| 252 |
msgid "No files to Backup"
|
| 253 |
msgstr ""
|
| 254 |
|
| 255 |
+
#: app/dojob/file.php:87
|
| 256 |
+
msgid "Size off all files:"
|
| 257 |
msgstr ""
|
| 258 |
|
| 259 |
+
#: app/dojob/file.php:94
|
| 260 |
msgid "Create Backup Zip file..."
|
| 261 |
msgstr ""
|
| 262 |
|
| 263 |
+
#: app/dojob/file.php:97
|
| 264 |
msgid "Zip file create:"
|
| 265 |
msgstr ""
|
| 266 |
|
| 267 |
+
#: app/dojob/file.php:101
|
| 268 |
msgid "Add Database dump to Backup Zip file..."
|
| 269 |
msgstr ""
|
| 270 |
|
| 271 |
+
#: app/dojob/file.php:103
|
| 272 |
msgid "Zip file create Add Database dump:"
|
| 273 |
msgstr ""
|
| 274 |
|
| 275 |
+
#: app/dojob/file.php:109
|
| 276 |
msgid "Backup Zip file create done!"
|
| 277 |
msgstr ""
|
| 278 |
|
| 280 |
msgid "Run Database optimize..."
|
| 281 |
msgstr ""
|
| 282 |
|
| 283 |
+
#: app/dojob/optimize.php:17
|
|
|
|
|
|
|
|
|
|
|
|
|
| 284 |
#, php-format
|
| 285 |
+
msgid "Result of table optimize for %1$s is: %2$s"
|
| 286 |
msgstr ""
|
| 287 |
|
| 288 |
+
#: app/dojob/optimize.php:23
|
| 289 |
msgid "Database optimize done!"
|
| 290 |
msgstr ""
|
| 291 |
|
| 292 |
+
#: app/dojob/optimize.php:25
|
| 293 |
msgid "No Tables to optimize"
|
| 294 |
msgstr ""
|
| 295 |
|
| 296 |
#. #-#-#-#-# plugin.pot (PACKAGE VERSION) #-#-#-#-#
|
| 297 |
#. Plugin Name of an extension
|
| 298 |
+
#: app/functions.php:19 app/options.php:3
|
| 299 |
msgid "BackWPup"
|
| 300 |
msgstr ""
|
| 301 |
|
| 302 |
+
#: app/functions.php:27 app/functions.php:218
|
| 303 |
msgid "Support"
|
| 304 |
msgstr ""
|
| 305 |
|
| 306 |
+
#: app/functions.php:28 app/functions.php:217
|
| 307 |
msgid "FAQ"
|
| 308 |
msgstr ""
|
| 309 |
|
| 310 |
+
#: app/functions.php:29
|
| 311 |
msgid "Plugin Homepage"
|
| 312 |
msgstr ""
|
| 313 |
|
| 314 |
+
#: app/functions.php:30
|
| 315 |
msgid "Plugin Home on WordPress.org"
|
| 316 |
msgstr ""
|
| 317 |
|
| 318 |
+
#: app/functions.php:31 app/functions.php:219
|
| 319 |
msgid "Donate"
|
| 320 |
msgstr ""
|
| 321 |
|
| 322 |
+
#: app/functions.php:34
|
| 323 |
msgid "Version:"
|
| 324 |
msgstr ""
|
| 325 |
|
| 326 |
+
#: app/functions.php:35
|
| 327 |
msgid "Author:"
|
| 328 |
msgstr ""
|
| 329 |
|
| 330 |
+
#: app/functions.php:209
|
| 331 |
msgid "Go to Settings Page"
|
| 332 |
msgstr ""
|
| 333 |
|
| 334 |
+
#: app/functions.php:209 app/options-db_restore.php:8 app/options-logs.php:8
|
| 335 |
+
#: app/options-runnow.php:8 app/options-settings.php:8
|
| 336 |
+
#: app/options-view_log.php:8 app/options.php:8
|
| 337 |
msgid "Settings"
|
| 338 |
msgstr ""
|
| 339 |
|
| 340 |
+
#: app/functions.php:230
|
| 341 |
msgid "BackWPup Job "
|
| 342 |
msgstr ""
|
| 343 |
|
| 344 |
+
#: app/functions.php:293
|
| 345 |
+
#, php-format
|
| 346 |
+
msgid "PHP Safe Mode is on!!! Can not increse Memory Limit is %1$s"
|
| 347 |
msgstr ""
|
| 348 |
|
| 349 |
+
#: app/functions.php:298
|
| 350 |
+
#, php-format
|
| 351 |
+
msgid "Memory incresed from %1$s to %2$s"
|
| 352 |
+
msgstr ""
|
| 353 |
+
|
| 354 |
+
#: app/functions.php:300
|
| 355 |
+
#, php-format
|
| 356 |
+
msgid "Can not increse Memory Limit is %1$s"
|
| 357 |
msgstr ""
|
| 358 |
|
| 359 |
+
#: app/functions.php:335
|
| 360 |
msgid "Database & File Backup"
|
| 361 |
msgstr ""
|
| 362 |
|
| 363 |
+
#: app/functions.php:338
|
| 364 |
msgid "Database Backup"
|
| 365 |
msgstr ""
|
| 366 |
|
| 367 |
+
#: app/functions.php:341
|
| 368 |
msgid "File Backup"
|
| 369 |
msgstr ""
|
| 370 |
|
| 371 |
+
#: app/functions.php:344
|
| 372 |
msgid "Optimize Database Tabels"
|
| 373 |
msgstr ""
|
| 374 |
|
| 375 |
+
#: app/functions.php:347
|
| 376 |
+
msgid "Check Database Tabels"
|
| 377 |
+
msgstr ""
|
| 378 |
+
|
| 379 |
+
#: app/functions.php:362
|
| 380 |
+
msgid "Logs:"
|
| 381 |
+
msgstr ""
|
| 382 |
+
|
| 383 |
+
#: app/functions.php:367
|
| 384 |
+
msgid "View Log"
|
| 385 |
+
msgstr ""
|
| 386 |
+
|
| 387 |
+
#: app/functions.php:375 app/options-logs.php:90
|
| 388 |
+
msgid "ERROR(S)"
|
| 389 |
+
msgstr ""
|
| 390 |
+
|
| 391 |
+
#: app/functions.php:377 app/options-logs.php:92
|
| 392 |
+
msgid "WARNING(S)"
|
| 393 |
+
msgstr ""
|
| 394 |
+
|
| 395 |
+
#: app/functions.php:379 app/options-logs.php:94
|
| 396 |
+
msgid "OK"
|
| 397 |
+
msgstr ""
|
| 398 |
+
|
| 399 |
+
#: app/functions.php:384 app/functions.php:403
|
| 400 |
+
msgid "none"
|
| 401 |
+
msgstr ""
|
| 402 |
+
|
| 403 |
+
#: app/functions.php:388
|
| 404 |
+
msgid "Scheduled Jobs:"
|
| 405 |
+
msgstr ""
|
| 406 |
+
|
| 407 |
+
#: app/functions.php:392
|
| 408 |
+
msgid "Edit Job"
|
| 409 |
+
msgstr ""
|
| 410 |
+
|
| 411 |
+
#: app/functions.php:395 app/options.php:78
|
| 412 |
+
msgid "Running since:"
|
| 413 |
+
msgstr ""
|
| 414 |
+
|
| 415 |
+
#: app/functions.php:395 app/options-logs.php:110 app/options-settings.php:21
|
| 416 |
+
#: app/options.php:78 app/options.php:91
|
| 417 |
+
msgid "sec."
|
| 418 |
+
msgstr ""
|
| 419 |
+
|
| 420 |
+
#: app/options-db_restore.php:3
|
| 421 |
+
msgid "BackWPup Restore Database"
|
| 422 |
+
msgstr ""
|
| 423 |
+
|
| 424 |
+
#: app/options-db_restore.php:5 app/options-logs.php:5
|
| 425 |
+
#: app/options-runnow.php:5 app/options-settings.php:5
|
| 426 |
+
#: app/options-view_log.php:5 app/options.php:5
|
| 427 |
+
msgid "Jobs"
|
| 428 |
+
msgstr ""
|
| 429 |
+
|
| 430 |
+
#: app/options-db_restore.php:6 app/options-logs.php:6
|
| 431 |
+
#: app/options-runnow.php:6 app/options-settings.php:6
|
| 432 |
+
#: app/options-view_log.php:6 app/options.php:6
|
| 433 |
+
msgid "Logs"
|
| 434 |
+
msgstr ""
|
| 435 |
+
|
| 436 |
+
#: app/options-db_restore.php:7 app/options-logs.php:7
|
| 437 |
+
#: app/options-runnow.php:7 app/options-settings.php:7
|
| 438 |
+
#: app/options-view_log.php:7 app/options.php:7
|
| 439 |
+
msgid "DB Restore"
|
| 440 |
+
msgstr ""
|
| 441 |
+
|
| 442 |
+
#: app/options-db_restore.php:22 app/options-edit.php:200
|
| 443 |
+
#: app/options-settings.php:29
|
| 444 |
+
msgid "Save Changes"
|
| 445 |
+
msgstr ""
|
| 446 |
+
|
| 447 |
+
#: app/options-edit.php:3
|
| 448 |
+
msgid "Edit BackWPup Job"
|
| 449 |
+
msgstr ""
|
| 450 |
+
|
| 451 |
+
#: app/options-edit.php:34
|
| 452 |
+
msgid "Job Type"
|
| 453 |
+
msgstr ""
|
| 454 |
+
|
| 455 |
+
#: app/options-edit.php:43
|
| 456 |
msgid "Change"
|
| 457 |
msgstr ""
|
| 458 |
|
| 459 |
+
#: app/options-edit.php:48
|
| 460 |
msgid "Job Name"
|
| 461 |
msgstr ""
|
| 462 |
|
| 463 |
+
#: app/options-edit.php:54
|
| 464 |
msgid "Exclude Databas Tabels:"
|
| 465 |
msgstr ""
|
| 466 |
|
| 467 |
+
#: app/options-edit.php:74
|
| 468 |
msgid "Backup Blog dirs"
|
| 469 |
msgstr ""
|
| 470 |
|
| 471 |
+
#: app/options-edit.php:75
|
| 472 |
msgid "Blog root and WP Files"
|
| 473 |
msgstr ""
|
| 474 |
|
| 475 |
+
#: app/options-edit.php:76
|
| 476 |
msgid "Blog Content"
|
| 477 |
msgstr ""
|
| 478 |
|
| 479 |
+
#: app/options-edit.php:77
|
| 480 |
msgid "Blog Plugins"
|
| 481 |
msgstr ""
|
| 482 |
|
| 483 |
+
#: app/options-edit.php:81
|
| 484 |
msgid "Include extra dirs"
|
| 485 |
msgstr ""
|
| 486 |
|
| 487 |
+
#: app/options-edit.php:82
|
| 488 |
msgid "Separate with ,. Full Path like:"
|
| 489 |
msgstr ""
|
| 490 |
|
| 491 |
+
#: app/options-edit.php:86
|
| 492 |
msgid "Exclude files/dirs"
|
| 493 |
msgstr ""
|
| 494 |
|
| 495 |
+
#: app/options-edit.php:87
|
| 496 |
msgid "Separate with ,"
|
| 497 |
msgstr ""
|
| 498 |
|
| 499 |
+
#: app/options-edit.php:92
|
| 500 |
msgid "Schedule"
|
| 501 |
msgstr ""
|
| 502 |
|
| 503 |
+
#: app/options-edit.php:94
|
| 504 |
msgid "Run Every:"
|
| 505 |
msgstr ""
|
| 506 |
|
| 507 |
+
#: app/options-edit.php:104
|
| 508 |
msgid "Min(s)"
|
| 509 |
msgstr ""
|
| 510 |
|
| 511 |
+
#: app/options-edit.php:105
|
| 512 |
msgid "Houer(s)"
|
| 513 |
msgstr ""
|
| 514 |
|
| 515 |
+
#: app/options-edit.php:106
|
| 516 |
msgid "Day(s)"
|
| 517 |
msgstr ""
|
| 518 |
|
| 519 |
+
#: app/options-edit.php:110
|
| 520 |
msgid "Start Time:"
|
| 521 |
msgstr ""
|
| 522 |
|
| 523 |
+
#: app/options-edit.php:125
|
| 524 |
msgid "Start Date:"
|
| 525 |
msgstr ""
|
| 526 |
|
| 527 |
+
#: app/options-edit.php:131
|
| 528 |
msgid "January"
|
| 529 |
msgstr ""
|
| 530 |
|
| 531 |
+
#: app/options-edit.php:131
|
| 532 |
msgid "February"
|
| 533 |
msgstr ""
|
| 534 |
|
| 535 |
+
#: app/options-edit.php:131
|
| 536 |
msgid "March"
|
| 537 |
msgstr ""
|
| 538 |
|
| 539 |
+
#: app/options-edit.php:131
|
| 540 |
msgid "April"
|
| 541 |
msgstr ""
|
| 542 |
|
| 543 |
+
#: app/options-edit.php:131
|
| 544 |
msgid "May"
|
| 545 |
msgstr ""
|
| 546 |
|
| 547 |
+
#: app/options-edit.php:131
|
| 548 |
msgid "June"
|
| 549 |
msgstr ""
|
| 550 |
|
| 551 |
+
#: app/options-edit.php:131
|
| 552 |
msgid "July"
|
| 553 |
msgstr ""
|
| 554 |
|
| 555 |
+
#: app/options-edit.php:131
|
| 556 |
msgid "August"
|
| 557 |
msgstr ""
|
| 558 |
|
| 559 |
+
#: app/options-edit.php:131
|
| 560 |
msgid "September"
|
| 561 |
msgstr ""
|
| 562 |
|
| 563 |
+
#: app/options-edit.php:131
|
| 564 |
msgid "October"
|
| 565 |
msgstr ""
|
| 566 |
|
| 567 |
+
#: app/options-edit.php:131
|
| 568 |
msgid "November"
|
| 569 |
msgstr ""
|
| 570 |
|
| 571 |
+
#: app/options-edit.php:131
|
| 572 |
msgid "December"
|
| 573 |
msgstr ""
|
| 574 |
|
| 575 |
+
#: app/options-edit.php:144
|
| 576 |
msgid "Activate:"
|
| 577 |
msgstr ""
|
| 578 |
|
| 579 |
+
#: app/options-edit.php:152
|
| 580 |
msgid "Backup to Directory"
|
| 581 |
msgstr ""
|
| 582 |
|
| 583 |
+
#: app/options-edit.php:153
|
| 584 |
msgid "Full Phath of Directory for Backup fiels"
|
| 585 |
msgstr ""
|
| 586 |
|
| 587 |
+
#: app/options-edit.php:156
|
| 588 |
msgid "Max number of Backup Files"
|
| 589 |
msgstr ""
|
| 590 |
|
| 591 |
+
#: app/options-edit.php:160 app/options-edit.php:181
|
| 592 |
msgid "Off"
|
| 593 |
msgstr ""
|
| 594 |
|
| 595 |
+
#: app/options-edit.php:165
|
| 596 |
msgid "Oldest files will deletet first."
|
| 597 |
msgstr ""
|
| 598 |
|
| 599 |
+
#: app/options-edit.php:172
|
| 600 |
+
msgid "Place Backup to FTP Server:"
|
| 601 |
msgstr ""
|
| 602 |
|
| 603 |
+
#: app/options-edit.php:174
|
| 604 |
+
msgid "Ftp Hostname:"
|
| 605 |
+
msgstr ""
|
| 606 |
+
|
| 607 |
+
#: app/options-edit.php:175
|
| 608 |
+
msgid "Ftp Username:"
|
| 609 |
+
msgstr ""
|
| 610 |
+
|
| 611 |
+
#: app/options-edit.php:176
|
| 612 |
+
msgid "Ftp Password:"
|
| 613 |
+
msgstr ""
|
| 614 |
+
|
| 615 |
+
#: app/options-edit.php:177
|
| 616 |
+
msgid "Ftp directory:"
|
| 617 |
+
msgstr ""
|
| 618 |
+
|
| 619 |
+
#: app/options-edit.php:178
|
| 620 |
+
msgid "Max Backup fieles on ftp:"
|
| 621 |
+
msgstr ""
|
| 622 |
+
|
| 623 |
+
#: app/options-edit.php:194
|
| 624 |
+
msgid "Send Mail to"
|
| 625 |
msgstr ""
|
| 626 |
|
| 627 |
#: app/options-logs.php:3
|
| 628 |
msgid "BackWPup Logs"
|
| 629 |
msgstr ""
|
| 630 |
|
| 631 |
+
#: app/options-logs.php:18 app/options-logs.php:121 app/options.php:18
|
| 632 |
+
#: app/options.php:105
|
| 633 |
msgid "Bulk Actions"
|
| 634 |
msgstr ""
|
| 635 |
|
| 636 |
+
#: app/options-logs.php:19 app/options-logs.php:79 app/options-logs.php:122
|
| 637 |
+
#: app/options.php:19 app/options.php:64 app/options.php:106
|
| 638 |
msgid "Delete"
|
| 639 |
msgstr ""
|
| 640 |
|
| 641 |
+
#: app/options-logs.php:21 app/options-logs.php:124 app/options.php:21
|
| 642 |
+
#: app/options.php:108
|
| 643 |
msgid "Apply"
|
| 644 |
msgstr ""
|
| 645 |
|
| 646 |
+
#: app/options-logs.php:33 app/options-logs.php:45
|
| 647 |
msgid "Job"
|
| 648 |
msgstr ""
|
| 649 |
|
| 650 |
+
#: app/options-logs.php:34 app/options-logs.php:46 app/options.php:35
|
| 651 |
#: app/options.php:46
|
| 652 |
msgid "Type"
|
| 653 |
msgstr ""
|
| 654 |
|
| 655 |
+
#: app/options-logs.php:35 app/options-logs.php:47
|
| 656 |
msgid "Backup/Log Date/Time"
|
| 657 |
msgstr ""
|
| 658 |
|
| 659 |
+
#: app/options-logs.php:36 app/options-logs.php:48
|
| 660 |
msgid "Status"
|
| 661 |
msgstr ""
|
| 662 |
|
| 663 |
+
#: app/options-logs.php:37 app/options-logs.php:49
|
| 664 |
msgid "Size"
|
| 665 |
msgstr ""
|
| 666 |
|
| 667 |
+
#: app/options-logs.php:38 app/options-logs.php:50
|
| 668 |
msgid "Runtime"
|
| 669 |
msgstr ""
|
| 670 |
|
| 671 |
+
#: app/options-logs.php:76
|
| 672 |
msgid "View log"
|
| 673 |
msgstr ""
|
| 674 |
|
| 675 |
+
#: app/options-logs.php:78
|
| 676 |
msgid "View"
|
| 677 |
msgstr ""
|
| 678 |
|
| 679 |
+
#: app/options-logs.php:79
|
| 680 |
msgid ""
|
| 681 |
+
"You are about to delete this Log and Backupfile. \n"
|
| 682 |
" 'Cancel' to stop, 'OK' to delete."
|
| 683 |
msgstr ""
|
| 684 |
|
| 685 |
+
#: app/options-logs.php:81
|
| 686 |
msgid "Download"
|
| 687 |
msgstr ""
|
| 688 |
|
| 689 |
+
#: app/options-logs.php:104
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 690 |
msgid "only Log"
|
| 691 |
msgstr ""
|
| 692 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 693 |
#: app/options-runnow.php:3
|
| 694 |
msgid "BackWPup Job Running"
|
| 695 |
msgstr ""
|
| 698 |
msgid "Copy of"
|
| 699 |
msgstr ""
|
| 700 |
|
| 701 |
+
#: app/options-save.php:59
|
| 702 |
msgid "File does not exist."
|
| 703 |
msgstr ""
|
| 704 |
|
| 706 |
msgid "BackWPup Settings"
|
| 707 |
msgstr ""
|
| 708 |
|
| 709 |
+
#: app/options-settings.php:18
|
| 710 |
+
msgid "Script Runime"
|
| 711 |
msgstr ""
|
| 712 |
|
| 713 |
+
#: app/options-settings.php:21
|
| 714 |
+
msgid "PHP.ini execution time:"
|
| 715 |
msgstr ""
|
| 716 |
|
| 717 |
+
#: app/options-view_log.php:3
|
| 718 |
+
msgid "BackWPup View Log"
|
| 719 |
msgstr ""
|
| 720 |
|
| 721 |
+
#: app/options.php:3
|
| 722 |
+
msgid "Add New"
|
| 723 |
msgstr ""
|
| 724 |
|
| 725 |
#: app/options.php:33 app/options.php:44
|
| 746 |
msgid "Edit"
|
| 747 |
msgstr ""
|
| 748 |
|
| 749 |
+
#: app/options.php:64
|
| 750 |
+
msgid ""
|
| 751 |
+
"You are about to delete this Job. \n"
|
| 752 |
+
" 'Cancel' to stop, 'OK' to delete."
|
| 753 |
+
msgstr ""
|
| 754 |
+
|
| 755 |
#: app/options.php:65
|
| 756 |
msgid "Copy"
|
| 757 |
msgstr ""
|
| 760 |
msgid "Run Now"
|
| 761 |
msgstr ""
|
| 762 |
|
| 763 |
+
#: app/options.php:82
|
|
|
|
|
|
|
|
|
|
|
|
|
| 764 |
msgid "Inactive"
|
| 765 |
msgstr ""
|
| 766 |
|
| 767 |
+
#: app/options.php:91
|
| 768 |
msgid "Runtime:"
|
| 769 |
msgstr ""
|
| 770 |
|
| 771 |
+
#: app/options.php:93
|
| 772 |
msgid "None"
|
| 773 |
msgstr ""
|
| 774 |
|
| 775 |
+
#: backwpup.php:53
|
| 776 |
msgid "Sorry, BackWPup works only under WordPress 2.8 or higher"
|
| 777 |
msgstr ""
|
readme.txt
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
=== BackWPup ===
|
| 2 |
Contributors: danielhuesken
|
| 3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=daniel%40huesken-net%2ede&item_name=Daniel%20Huesken%20Plugin%20Donation&item_number=BackWPup&no_shipping=0&no_note=1&tax=0¤cy_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8
|
| 4 |
-
Tags: backup, admin, file, Database, mysql
|
| 5 |
Requires at least: 2.8
|
| 6 |
Tested up to: 2.8.1
|
| 7 |
-
Stable tag: 0.
|
| 8 |
|
| 9 |
Backup and more of your WordPress Blog Database and Files
|
| 10 |
|
|
@@ -14,13 +14,17 @@ This Plugin is under heavy Development. Pleace test it and give feadback!!!.
|
|
| 14 |
|
| 15 |
Backup and more your Blog.
|
| 16 |
|
| 17 |
-
*
|
| 18 |
-
* Optimize
|
|
|
|
| 19 |
* File Backup
|
| 20 |
* Uses PCLZIP class of Wordpress
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
|
| 23 |
-
I can give no WARRANTY to any backups
|
| 24 |
|
| 25 |
== Installation ==
|
| 26 |
|
|
@@ -43,8 +47,16 @@ You must import the Database Dump with Charaktercoding:latin1
|
|
| 43 |
|
| 44 |
1. Job Page
|
| 45 |
|
| 46 |
-
|
| 47 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 48 |
|
| 49 |
= 0.5.5 =
|
| 50 |
* removed log files. Log now stred in Database
|
| 1 |
=== BackWPup ===
|
| 2 |
Contributors: danielhuesken
|
| 3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=daniel%40huesken-net%2ede&item_name=Daniel%20Huesken%20Plugin%20Donation&item_number=BackWPup&no_shipping=0&no_note=1&tax=0¤cy_code=EUR&lc=DE&bn=PP%2dDonationsBF&charset=UTF%2d8
|
| 4 |
+
Tags: backup, admin, file, Database, mysql,
|
| 5 |
Requires at least: 2.8
|
| 6 |
Tested up to: 2.8.1
|
| 7 |
+
Stable tag: 0.6.0
|
| 8 |
|
| 9 |
Backup and more of your WordPress Blog Database and Files
|
| 10 |
|
| 14 |
|
| 15 |
Backup and more your Blog.
|
| 16 |
|
| 17 |
+
* Database Backup
|
| 18 |
+
* Optimize Database
|
| 19 |
+
* Check\Repair Database
|
| 20 |
* File Backup
|
| 21 |
* Uses PCLZIP class of Wordpress
|
| 22 |
+
* Store backup to Folder
|
| 23 |
+
* Store backup to FTP Server
|
| 24 |
+
* Send Log/Backup by eMail
|
| 25 |
|
| 26 |
|
| 27 |
+
I can give no WARRANTY to any backups...
|
| 28 |
|
| 29 |
== Installation ==
|
| 30 |
|
| 47 |
|
| 48 |
1. Job Page
|
| 49 |
|
|
|
|
| 50 |
== Changelog ==
|
| 51 |
+
= 0.6.0 dev.=
|
| 52 |
+
* Add Dashboard Widget
|
| 53 |
+
* Add Database Check
|
| 54 |
+
* Add Backup file transfer to FTP Server
|
| 55 |
+
* Save log fieles in own database table
|
| 56 |
+
* Optimize Memory usage
|
| 57 |
+
* Optimize File system access
|
| 58 |
+
* DB dump with own function
|
| 59 |
+
* fixed some Bugs
|
| 60 |
|
| 61 |
= 0.5.5 =
|
| 62 |
* removed log files. Log now stred in Database
|
