From d504f26ea52a80d62bf75b6bdab6086e02265d97 Mon Sep 17 00:00:00 2001 From: Fahmi Elfituri Date: Sat, 7 Dec 2019 01:16:51 +0200 Subject: [PATCH 1/4] create backup name composer json add time column Add input and validation to controller, add time to default name composer json update compose json --- src/BackupManager.php | 12 +++++-- src/Config/config.php | 2 +- .../Controllers/BackupManagerController.php | 13 ++++++-- src/Http/Requests/CreateBackupRequest.php | 31 +++++++++++++++++++ src/Http/routes.php | 3 +- src/Views/index.blade.php | 3 ++ src/Views/layout/layout.blade.php | 6 +++- 7 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 src/Http/Requests/CreateBackupRequest.php diff --git a/src/BackupManager.php b/src/BackupManager.php index e6c4051..1f94957 100644 --- a/src/BackupManager.php +++ b/src/BackupManager.php @@ -16,7 +16,6 @@ class BackupManager protected $fBackupName; protected $dBackupName; protected $fileVerifyName = 'backup-verify'; - /** * BackupManager constructor. */ @@ -51,7 +50,8 @@ public function getBackups() 'size_raw' => $file['size'], 'size' => $this->formatSizeUnits($file['size']), 'type' => $file['basename'][0] === 'd' ? 'Database' : 'Files', - 'date' => date('M d Y', $this->getFileTimeStamp($file)) + 'date' => date('M d Y', $this->getFileTimeStamp($file)), + 'time' => date('H:m:s', $this->getFileTimeStamp($file)) ]; } @@ -396,4 +396,12 @@ protected function formatSizeUnits($size) return number_format($size / (1024 ** $power), 2, '.', ',') . ' ' . $units[$power]; } + /** + * Set backup name + */ + public function setBackupName( $name ) + { + $this->fBackupName = "f_$name.tar"; + $this->dBackupName = "d_$name.gz"; + } } diff --git a/src/Config/config.php b/src/Config/config.php index 59e8758..03f2671 100644 --- a/src/Config/config.php +++ b/src/Config/config.php @@ -58,7 +58,7 @@ 'backup_path' => 'backups', // backup files name suffix - 'backup_file_date_suffix' => date('M-d-Y'), + 'backup_file_date_suffix' => date('M-d-Y-h:m:s'), // define number of days old backup files will be deleted before new backup 'delete_old_backup_days' => 10 diff --git a/src/Http/Controllers/BackupManagerController.php b/src/Http/Controllers/BackupManagerController.php index 3367ed3..b863479 100644 --- a/src/Http/Controllers/BackupManagerController.php +++ b/src/Http/Controllers/BackupManagerController.php @@ -2,11 +2,13 @@ namespace Sarfraznawaz2005\BackupManager\Http\Controllers; -use Illuminate\Routing\Controller as BaseController; use Log; -use Sarfraznawaz2005\BackupManager\Facades\BackupManager; use Session; use Storage; +use Illuminate\Routing\Controller as BaseController; +use Sarfraznawaz2005\BackupManager\Facades\BackupManager; +use Sarfraznawaz2005\BackupManager\Http\Requests\CreateBackupRequest; + class BackupManagerController extends BaseController { @@ -26,10 +28,14 @@ public function index() return view('backupmanager::index', compact('title', 'backups')); } - public function createBackup() + public function createBackup(CreateBackupRequest $request) { $messages = []; + // Set name + if ($request->backupName != '') + BackupManager::setBackupName($request->backupName); + // create backups $result = BackupManager::createBackup(); @@ -183,4 +189,5 @@ public function download($file) return response()->download($file); } + } diff --git a/src/Http/Requests/CreateBackupRequest.php b/src/Http/Requests/CreateBackupRequest.php new file mode 100644 index 0000000..76f3145 --- /dev/null +++ b/src/Http/Requests/CreateBackupRequest.php @@ -0,0 +1,31 @@ + ['nullable' ,'string', 'max: 25', 'alpha_dash'] + ]; + } +} diff --git a/src/Http/routes.php b/src/Http/routes.php index 789745a..5bb043c 100644 --- a/src/Http/routes.php +++ b/src/Http/routes.php @@ -3,7 +3,8 @@ Route::group( [ 'namespace' => 'Sarfraznawaz2005\BackupManager\Http\Controllers', - 'prefix' => config('backupmanager.route', 'backupmanager') + 'prefix' => config('backupmanager.route', 'backupmanager'), + 'middleware' => 'web' ], function () { // list backups diff --git a/src/Views/index.blade.php b/src/Views/index.blade.php index ef5168c..263a559 100644 --- a/src/Views/index.blade.php +++ b/src/Views/index.blade.php @@ -5,6 +5,7 @@ @section('header')
{{ csrf_field() }} +
@endsection @@ -20,6 +21,7 @@ # Name Date + Time Size Health Type @@ -34,6 +36,7 @@ {{++$index}} {{$backup['name']}} {{$backup['date']}} + {{$backup['time']}} {{$backup['size']}} @endforeach @endif - + @error('backupName') + + {{ $message }} + + @enderror @yield('content') From 49a49e14a1e68bc32a6de0bac5762bd80cb06143 Mon Sep 17 00:00:00 2001 From: Fahmi Elfituri Date: Thu, 12 Dec 2019 13:17:26 +0200 Subject: [PATCH 2/4] read database port from config --- src/BackupManager.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/BackupManager.php b/src/BackupManager.php index 1f94957..4c97542 100644 --- a/src/BackupManager.php +++ b/src/BackupManager.php @@ -188,13 +188,14 @@ protected function backupDatabase() $connection = [ 'host' => config('database.connections.mysql.host'), + 'port' => config('database.connections.mysql.port'), 'database' => config('database.connections.mysql.database'), 'username' => config('database.connections.mysql.username'), 'password' => config('database.connections.mysql.password'), ]; $tableOptions = ''; - $connectionOptions = "--user={$connection['username']} --password=\"{$connection['password']}\" --host={$connection['host']} {$connection['database']} "; + $connectionOptions = "--user={$connection['username']} --password=\"{$connection['password']}\" --host={$connection['host']} --port={$connection['port']} {$connection['database']} "; // https://mariadb.com/kb/en/library/mysqldump/ $options = [ @@ -276,6 +277,7 @@ protected function restoreDatabase($file) $connection = [ 'host' => config('database.connections.mysql.host'), + 'port' => config('database.connections.mysql.port'), 'database' => config('database.connections.mysql.database'), 'username' => config('database.connections.mysql.username'), 'password' => config('database.connections.mysql.password'), @@ -287,7 +289,7 @@ protected function restoreDatabase($file) $connectionOptions .= " -p\"{$connection['password']}\" "; } - $connectionOptions .= " -h {$connection['host']} {$connection['database']} "; + $connectionOptions .= " -h {$connection['host']} --port={$connection['port']} {$connection['database']} "; //$command = "$cd gunzip < $this->fBackupName | mysql $connectionOptions"; $command = 'cd ' . str_replace('\\', '/', From 60a453982e038c6caf85d01838ddc09173bfb976 Mon Sep 17 00:00:00 2001 From: Fahmi Elfituri Date: Wed, 18 Dec 2019 10:54:06 +0200 Subject: [PATCH 3/4] correct time format --- src/BackupManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BackupManager.php b/src/BackupManager.php index 4c97542..d879653 100644 --- a/src/BackupManager.php +++ b/src/BackupManager.php @@ -51,7 +51,7 @@ public function getBackups() 'size' => $this->formatSizeUnits($file['size']), 'type' => $file['basename'][0] === 'd' ? 'Database' : 'Files', 'date' => date('M d Y', $this->getFileTimeStamp($file)), - 'time' => date('H:m:s', $this->getFileTimeStamp($file)) + 'time' => date('h:i:sa', $this->getFileTimeStamp($file)) ]; } From ae32f297f0d280235fd22e3cb1ea88757f769a52 Mon Sep 17 00:00:00 2001 From: Fahmi Elfituri Date: Wed, 25 Dec 2019 12:23:04 +0200 Subject: [PATCH 4/4] bugfix: change naming to happen in class --- src/BackupManager.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/BackupManager.php b/src/BackupManager.php index d879653..53952ba 100644 --- a/src/BackupManager.php +++ b/src/BackupManager.php @@ -23,7 +23,7 @@ public function __construct() { $this->disk = config('backupmanager.backups.disk'); $this->backupPath = config('backupmanager.backups.backup_path') . DIRECTORY_SEPARATOR; - $this->backupSuffix = strtolower(config('backupmanager.backups.backup_file_date_suffix')); + $this->backupSuffix = strtolower(date('M-d-Y-h:i:sa')); $this->fBackupName = "f_$this->backupSuffix.tar"; $this->dBackupName = "d_$this->backupSuffix.gz";