Skip to content

Commit 8dbb2a8

Browse files
committed
首版提交
1 parent 0df2749 commit 8dbb2a8

File tree

1 file changed

+30
-13
lines changed

1 file changed

+30
-13
lines changed

src/BackupDatabase.php

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,28 @@ class BackupDatabase extends Command
1111
{
1212
/**
1313
* The name and signature of the console command.
14-
*
1514
* @var string
1615
*/
1716
protected $signature = 'db:backup';
1817

1918
/**
2019
* The console command description.
21-
*
2220
* @var string
2321
*/
2422
protected $description = 'Backup the database';
2523

24+
/**
25+
* 备份目录
26+
* @var string
27+
*/
28+
protected $backDir;
29+
30+
/**
31+
* 备份留存时间(天)
32+
* @var integer
33+
*/
34+
protected $days;
35+
2636
/**
2737
* Create a new command instance.
2838
*
@@ -32,13 +42,12 @@ public function __construct()
3242
{
3343
parent::__construct();
3444

35-
$this->process = new Process(sprintf(
36-
'mysqldump -u%s -p%s %s > %s',
37-
config('database.connections.mysql.username'),
38-
config('database.connections.mysql.password'),
39-
config('database.connections.mysql.database'),
40-
storage_path('backups/backup_' . date('Y-m-d') . '.sql')
41-
));
45+
$this->backDir = storage_path('backups/');
46+
$this->days = 7;
47+
48+
if (!is_dir($this->backDir)) {
49+
mkdir($this->backDir, 0755, true);
50+
}
4251
}
4352

4453
/**
@@ -48,14 +57,22 @@ public function __construct()
4857
*/
4958
public function handle()
5059
{
60+
$this->process = new Process(sprintf(
61+
'mysqldump -u%s -p%s %s > %s',
62+
config('database.connections.mysql.username'),
63+
config('database.connections.mysql.password'),
64+
config('database.connections.mysql.database'),
65+
$this->backDir . 'backup_' . date('Y-m-d_H:i:s') . '.sql'
66+
));
67+
5168
try {
5269
// 删除N天之前的备份
53-
$directory = storage_path('backups/');
54-
$files = scandir($directory);
70+
$backDir = $this->backDir;
71+
$files = scandir($backDir);
5572

5673
foreach ($files as $file) {
57-
if (!in_array($file, ['.', '..']) && Carbon::now()->diffIndays(substr($file, 7, 10)) >= env('DB_BACKUP_DAYS', 5)) {
58-
unlink($directory . $file);
74+
if (!in_array($file, ['.', '..']) && Carbon::now()->diffIndays(substr($file, 7, 10)) >= $this->days) {
75+
unlink($backDir . $file);
5976
}
6077
}
6178

0 commit comments

Comments
 (0)