Version Description
- Important bug fixes. Please upgrade to this version to avoid incomplete or broken backups.
Download this release
Release Info
Developer | pauldewouters |
Plugin | BackUpWordPress |
Version | 3.2.1 |
Comparing to | |
See all releases |
Code changes from version 3.2.0 to 3.2.1
- admin/actions.php +1 -1
- backupwordpress.php +2 -2
- changelog.txt +5 -0
- classes/class-backup.php +68 -16
- languages/backupwordpress.pot +11 -3
- readme.txt +14 -2
admin/actions.php
CHANGED
@@ -284,7 +284,7 @@ function hmbkp_edit_schedule_submit() {
|
|
284 |
|
285 |
}
|
286 |
|
287 |
-
if ( isset( $_POST['hmbkp_schedule_recurrence']['hmbkp_schedule_start_day_of_month'] ) ) {
|
288 |
|
289 |
$day_of_month = absint( $_POST['hmbkp_schedule_recurrence']['hmbkp_schedule_start_day_of_month'] );
|
290 |
|
284 |
|
285 |
}
|
286 |
|
287 |
+
if ( ( 'hmbkp_monthly' === $schedule_recurrence_type ) && isset( $_POST['hmbkp_schedule_recurrence']['hmbkp_schedule_start_day_of_month'] ) ) {
|
288 |
|
289 |
$day_of_month = absint( $_POST['hmbkp_schedule_recurrence']['hmbkp_schedule_start_day_of_month'] );
|
290 |
|
backupwordpress.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
-
Plugin Name: BackUpWordPress
|
4 |
Plugin URI: http://bwp.hmn.md/
|
5 |
Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools → Backups</strong>. On multisite, you'll find me under the Network Settings menu.
|
6 |
-
Version: 3.2.
|
7 |
Author: Human Made Limited
|
8 |
Author URI: http://hmn.md/
|
9 |
License: GPL-2.0+
|
1 |
<?php
|
2 |
/*
|
3 |
+
Plugin Name: BackUpWordPress Backup Plugin
|
4 |
Plugin URI: http://bwp.hmn.md/
|
5 |
Description: Simple automated backups of your WordPress powered website. Once activated you'll find me under <strong>Tools → Backups</strong>. On multisite, you'll find me under the Network Settings menu.
|
6 |
+
Version: 3.2.1
|
7 |
Author: Human Made Limited
|
8 |
Author URI: http://hmn.md/
|
9 |
License: GPL-2.0+
|
changelog.txt
ADDED
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
* Check if shell_exec is available before running command
|
2 |
+
* Only validate day of month if this is the schedule type
|
3 |
+
* Make FS optional and fix the DB connect method
|
4 |
+
* (issue-770) Exclude the folder, not the wildcard
|
5 |
+
* (issue-751) Rename plugin
|
classes/class-backup.php
CHANGED
@@ -169,7 +169,7 @@ namespace HM\BackUpWordPress {
|
|
169 |
'backupbuddy_backups',
|
170 |
'pb_backupbuddy',
|
171 |
'backup-db',
|
172 |
-
'cache',
|
173 |
'Envato-backups',
|
174 |
'managewp',
|
175 |
);
|
@@ -773,7 +773,7 @@ namespace HM\BackUpWordPress {
|
|
773 |
public function dump_database() {
|
774 |
|
775 |
// If we cannot run mysqldump via CLI, fallback to PHP
|
776 |
-
if ( is_wp_error( $this->user_can_connect() ) ) {
|
777 |
$this->mysqldump_fallback();
|
778 |
} else {
|
779 |
// Attempt mysqldump command
|
@@ -953,17 +953,17 @@ namespace HM\BackUpWordPress {
|
|
953 |
public function archive() {
|
954 |
|
955 |
// Do we have the path to the zip command
|
956 |
-
if ( $this->get_zip_command_path() ) {
|
957 |
$this->zip();
|
958 |
}
|
959 |
|
960 |
// If not or if the shell zip failed then use ZipArchive
|
961 |
-
if ( empty( $this->archive_verified ) && class_exists( 'ZipArchive' ) && empty( $this->skip_zip_archive ) ) {
|
962 |
$this->zip_archive();
|
963 |
}
|
964 |
|
965 |
// If ZipArchive is unavailable or one of the above failed
|
966 |
-
if ( empty( $this->archive_verified ) ) {
|
967 |
$this->pcl_zip();
|
968 |
}
|
969 |
|
@@ -999,9 +999,13 @@ namespace HM\BackUpWordPress {
|
|
999 |
// Run the zip command with the recursive and quiet flags
|
1000 |
$command .= ' && ' . escapeshellcmd( $this->get_zip_command_path() ) . ' -rq ';
|
1001 |
|
1002 |
-
|
1003 |
-
|
1004 |
-
|
|
|
|
|
|
|
|
|
1005 |
}
|
1006 |
|
1007 |
// Save the zip file to the correct path
|
@@ -1476,7 +1480,6 @@ namespace HM\BackUpWordPress {
|
|
1476 |
$rule = '^' . $rule;
|
1477 |
}
|
1478 |
|
1479 |
-
|
1480 |
}
|
1481 |
|
1482 |
// Escape shell args for zip command
|
@@ -1843,15 +1846,65 @@ namespace HM\BackUpWordPress {
|
|
1843 |
|
1844 |
// mysql --host=localhost --user=myname --password=mypass mydb
|
1845 |
|
1846 |
-
|
|
|
1847 |
|
1848 |
-
$
|
1849 |
|
1850 |
-
|
1851 |
|
1852 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1853 |
|
1854 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1855 |
|
1856 |
// Pipe STDERR to STDOUT
|
1857 |
$cmd .= ' 2>&1';
|
@@ -1865,9 +1918,8 @@ namespace HM\BackUpWordPress {
|
|
1865 |
}
|
1866 |
|
1867 |
if ( $stderr ) {
|
1868 |
-
return new \WP_Error( '
|
1869 |
}
|
1870 |
-
|
1871 |
}
|
1872 |
|
1873 |
}
|
169 |
'backupbuddy_backups',
|
170 |
'pb_backupbuddy',
|
171 |
'backup-db',
|
172 |
+
'cache/',
|
173 |
'Envato-backups',
|
174 |
'managewp',
|
175 |
);
|
773 |
public function dump_database() {
|
774 |
|
775 |
// If we cannot run mysqldump via CLI, fallback to PHP
|
776 |
+
if ( ! ( self::is_shell_exec_available() ) || is_wp_error( $this->user_can_connect() ) ) {
|
777 |
$this->mysqldump_fallback();
|
778 |
} else {
|
779 |
// Attempt mysqldump command
|
953 |
public function archive() {
|
954 |
|
955 |
// Do we have the path to the zip command
|
956 |
+
if ( ( defined( 'HMBKP_FORCE_ZIP_METHOD' ) && ( 'zip' === HMBKP_FORCE_ZIP_METHOD ) ) || $this->get_zip_command_path() ) {
|
957 |
$this->zip();
|
958 |
}
|
959 |
|
960 |
// If not or if the shell zip failed then use ZipArchive
|
961 |
+
if ( ( defined( 'HMBKP_FORCE_ZIP_METHOD' ) && ( 'ziparchive' === HMBKP_FORCE_ZIP_METHOD ) ) || ( empty( $this->archive_verified ) && class_exists( 'ZipArchive' ) && empty( $this->skip_zip_archive ) ) ) {
|
962 |
$this->zip_archive();
|
963 |
}
|
964 |
|
965 |
// If ZipArchive is unavailable or one of the above failed
|
966 |
+
if ( ( defined( 'HMBKP_FORCE_ZIP_METHOD' ) && ( 'pclzip' === HMBKP_FORCE_ZIP_METHOD ) ) || empty( $this->archive_verified ) ) {
|
967 |
$this->pcl_zip();
|
968 |
}
|
969 |
|
999 |
// Run the zip command with the recursive and quiet flags
|
1000 |
$command .= ' && ' . escapeshellcmd( $this->get_zip_command_path() ) . ' -rq ';
|
1001 |
|
1002 |
+
if ( defined( 'HMBKP_ENABLE_SYNC' ) && HMBKP_ENABLE_SYNC ) {
|
1003 |
+
|
1004 |
+
// If the destination zip file already exists then let's just add changed files to save time
|
1005 |
+
if ( file_exists( $this->get_archive_filepath() ) && $this->get_existing_archive_filepath() ) {
|
1006 |
+
$command .= ' -FS ';
|
1007 |
+
}
|
1008 |
+
|
1009 |
}
|
1010 |
|
1011 |
// Save the zip file to the correct path
|
1480 |
$rule = '^' . $rule;
|
1481 |
}
|
1482 |
|
|
|
1483 |
}
|
1484 |
|
1485 |
// Escape shell args for zip command
|
1846 |
|
1847 |
// mysql --host=localhost --user=myname --password=mypass mydb
|
1848 |
|
1849 |
+
// Guess port or socket connection type
|
1850 |
+
$port_or_socket = strstr( DB_HOST, ':' );
|
1851 |
|
1852 |
+
$host = DB_HOST;
|
1853 |
|
1854 |
+
if ( ! empty( $port_or_socket ) ) {
|
1855 |
|
1856 |
+
$host = substr( DB_HOST, 0, strpos( DB_HOST, ':' ) );
|
1857 |
+
|
1858 |
+
$port_or_socket = substr( $port_or_socket, 1 );
|
1859 |
+
|
1860 |
+
if ( 0 !== strpos( $port_or_socket, '/' ) ) {
|
1861 |
+
|
1862 |
+
$port = intval( $port_or_socket );
|
1863 |
|
1864 |
+
$maybe_socket = strstr( $port_or_socket, ':' );
|
1865 |
+
|
1866 |
+
if ( ! empty( $maybe_socket ) ) {
|
1867 |
+
|
1868 |
+
$socket = substr( $maybe_socket, 1 );
|
1869 |
+
|
1870 |
+
}
|
1871 |
+
|
1872 |
+
} else {
|
1873 |
+
|
1874 |
+
$socket = $port_or_socket;
|
1875 |
+
|
1876 |
+
}
|
1877 |
+
}
|
1878 |
+
|
1879 |
+
// Path to the mysqldump executable
|
1880 |
+
$cmd = 'mysql ';
|
1881 |
+
|
1882 |
+
// Username
|
1883 |
+
$cmd .= ' -u ' . escapeshellarg( DB_USER );
|
1884 |
+
|
1885 |
+
// Don't pass the password if it's blank
|
1886 |
+
if ( DB_PASSWORD ) {
|
1887 |
+
$cmd .= ' -p' . escapeshellarg( DB_PASSWORD );
|
1888 |
+
}
|
1889 |
+
|
1890 |
+
// Set the host
|
1891 |
+
$cmd .= ' -h ' . escapeshellarg( $host );
|
1892 |
+
|
1893 |
+
// Set the port if it was set
|
1894 |
+
if ( ! empty( $port ) && is_numeric( $port ) ) {
|
1895 |
+
$cmd .= ' -P ' . $port;
|
1896 |
+
}
|
1897 |
+
|
1898 |
+
// Set the socket path
|
1899 |
+
if ( ! empty( $socket ) && ! is_numeric( $socket ) ) {
|
1900 |
+
$cmd .= ' --protocol=socket -S ' . $socket;
|
1901 |
+
}
|
1902 |
+
|
1903 |
+
// The database we're dumping
|
1904 |
+
$cmd .= ' ' . escapeshellarg( DB_NAME );
|
1905 |
+
|
1906 |
+
// Quit immediately
|
1907 |
+
$cmd .= ' --execute="quit"';
|
1908 |
|
1909 |
// Pipe STDERR to STDOUT
|
1910 |
$cmd .= ' 2>&1';
|
1918 |
}
|
1919 |
|
1920 |
if ( $stderr ) {
|
1921 |
+
return new \WP_Error( 'mysql-cli-connect-error', __( 'Could not connect to mysql', 'backupwordpress' ) );
|
1922 |
}
|
|
|
1923 |
}
|
1924 |
|
1925 |
}
|
languages/backupwordpress.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: BackUpWordPress 3.2.
|
6 |
"Report-Msgid-Bugs-To: support@humanmade.co.uk\n"
|
7 |
-
"POT-Creation-Date: 2015-03-16
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -720,6 +720,10 @@ msgid ""
|
|
720 |
"or complete"
|
721 |
msgstr ""
|
722 |
|
|
|
|
|
|
|
|
|
723 |
#: classes/class-backupwordpress-wp-cli-command.php:50
|
724 |
msgid "Backup: Dumping database..."
|
725 |
msgstr ""
|
@@ -942,7 +946,7 @@ msgstr ""
|
|
942 |
msgid "Argument 1 for %s must be a valid class"
|
943 |
msgstr ""
|
944 |
|
945 |
-
|
946 |
msgid "BackUpWordPress"
|
947 |
msgstr ""
|
948 |
|
@@ -1170,6 +1174,10 @@ msgstr ""
|
|
1170 |
msgid "Database Manually"
|
1171 |
msgstr ""
|
1172 |
|
|
|
|
|
|
|
|
|
1173 |
#. Plugin URI of the plugin/theme
|
1174 |
msgid "http://bwp.hmn.md/"
|
1175 |
msgstr ""
|
2 |
# This file is distributed under the GPL-2.0+.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: BackUpWordPress Backup Plugin 3.2.1\n"
|
6 |
"Report-Msgid-Bugs-To: support@humanmade.co.uk\n"
|
7 |
+
"POT-Creation-Date: 2015-03-25 16:55:34+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
720 |
"or complete"
|
721 |
msgstr ""
|
722 |
|
723 |
+
#: classes/class-backup.php:1921
|
724 |
+
msgid "Could not connect to mysql"
|
725 |
+
msgstr ""
|
726 |
+
|
727 |
#: classes/class-backupwordpress-wp-cli-command.php:50
|
728 |
msgid "Backup: Dumping database..."
|
729 |
msgstr ""
|
946 |
msgid "Argument 1 for %s must be a valid class"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: classes/class-setup.php:34
|
950 |
msgid "BackUpWordPress"
|
951 |
msgstr ""
|
952 |
|
1174 |
msgid "Database Manually"
|
1175 |
msgstr ""
|
1176 |
|
1177 |
+
#. Plugin Name of the plugin/theme
|
1178 |
+
msgid "BackUpWordPress Backup Plugin"
|
1179 |
+
msgstr ""
|
1180 |
+
|
1181 |
#. Plugin URI of the plugin/theme
|
1182 |
msgid "http://bwp.hmn.md/"
|
1183 |
msgstr ""
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Contributors: humanmade, willmot, pauldewouters, joehoyle, mattheu, tcrsavage, cuvelier
|
3 |
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
|
4 |
Requires at least: 3.9
|
5 |
-
Tested up to: 4.2-
|
6 |
-
Stable tag: 3.2.
|
7 |
|
8 |
Simple automated backups of your WordPress powered website.
|
9 |
|
@@ -118,6 +118,10 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
|
|
118 |
|
119 |
== Upgrade Notice ==
|
120 |
|
|
|
|
|
|
|
|
|
121 |
= 3.1.3 =
|
122 |
|
123 |
* Fixes backwards compatibility for add-ons and avoids a Fatal Error. Please upgrade straight to this version before upgrading your add-ons.
|
@@ -136,6 +140,14 @@ You can also tweet <a href="http://twitter.com/humanmadeltd">@humanmadeltd</a> o
|
|
136 |
|
137 |
== Changelog ==
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
### 3.2 / 2015-03-16
|
140 |
|
141 |
* (issue-698) skip mySql bug
|
2 |
Contributors: humanmade, willmot, pauldewouters, joehoyle, mattheu, tcrsavage, cuvelier
|
3 |
Tags: back up, backup, backups, database, zip, db, files, archive, wp-cli, humanmade
|
4 |
Requires at least: 3.9
|
5 |
+
Tested up to: 4.2-beta
|
6 |
+
Stable tag: 3.2.1
|
7 |
|
8 |
Simple automated backups of your WordPress powered website.
|
9 |
|
118 |
|
119 |
== Upgrade Notice ==
|
120 |
|
121 |
+
= 3.2.1 =
|
122 |
+
|
123 |
+
* Important bug fixes. Please upgrade to this version to avoid incomplete or broken backups.
|
124 |
+
|
125 |
= 3.1.3 =
|
126 |
|
127 |
* Fixes backwards compatibility for add-ons and avoids a Fatal Error. Please upgrade straight to this version before upgrading your add-ons.
|
140 |
|
141 |
== Changelog ==
|
142 |
|
143 |
+
### 3.2.1 / 2015-03-25
|
144 |
+
|
145 |
+
* Check if shell_exec is available before running command
|
146 |
+
* Only validate day of month if this is the schedule type
|
147 |
+
* Make FS optional and fix the DB connect method
|
148 |
+
* (issue-770) Exclude the folder, not the wildcard
|
149 |
+
* (issue-751) Rename plugin
|
150 |
+
|
151 |
### 3.2 / 2015-03-16
|
152 |
|
153 |
* (issue-698) skip mySql bug
|