diff --git a/src/BackupManager.php b/src/BackupManager.php index e6c4051..53952ba 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. */ @@ -24,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"; @@ -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:i:sa', $this->getFileTimeStamp($file)) ]; } @@ -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('\\', '/', @@ -396,4 +398,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')
@endsection @@ -20,6 +21,7 @@