2021-08-03 15:34:15 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Console;
|
|
|
|
|
|
|
|
use Illuminate\Console\Scheduling\Schedule;
|
|
|
|
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
|
|
|
|
|
2022-02-01 11:40:45 +09:00
|
|
|
use App\Models\TelActivation;
|
|
|
|
use App\Models\EmailActivation;
|
|
|
|
|
2021-08-03 15:34:15 +09:00
|
|
|
class Kernel extends ConsoleKernel
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* The Artisan commands provided by your application.
|
|
|
|
*
|
|
|
|
* @var array
|
|
|
|
*/
|
|
|
|
protected $commands = [
|
|
|
|
//
|
|
|
|
];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Define the application's command schedule.
|
|
|
|
*
|
|
|
|
* @param \Illuminate\Console\Scheduling\Schedule $schedule
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
protected function schedule(Schedule $schedule)
|
|
|
|
{
|
2022-02-01 11:40:45 +09:00
|
|
|
$schedule->call(function () {
|
|
|
|
foreach (TelActivation::get() as $t) {
|
|
|
|
if (time() > strtotime($t->ttl)) {
|
|
|
|
TelActivation::where('id', $t->id)->delete();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
foreach (EmailActivation::get() as $e) {
|
|
|
|
if (time() > strtotime($e->ttl)) {
|
|
|
|
EmailActivation::where('id', $e->id)->delete();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})->everyMinute();
|
2022-02-18 15:51:26 +09:00
|
|
|
$schedule->call(function () {
|
|
|
|
$dbbckp = '/work/storage/backup/mysql/';
|
|
|
|
$flbckp = '/work/storage/backup/file/';
|
|
|
|
$week = 604800; // 1週間
|
|
|
|
$fname = date('Ymd').date('H'); // 日付+時
|
|
|
|
|
|
|
|
// DBのバックアップ
|
|
|
|
exec('/usr/bin/mysqldump --no-tablespaces --user='.config('database.connections.mysql.username').' --host='.config('database.connections.mysql.host').' --password='.config('database.connections.mysql.password').' --databases '.config('database.connections.mysql.database').' > '.$dbbckp.$fname.'_mysql.sql');
|
|
|
|
|
|
|
|
// GZIPでDBを圧縮する(ストレージ為)
|
|
|
|
exec('/bin/gzip '.$dbbckp.$fname.'_mysql.sql');
|
|
|
|
|
|
|
|
// ファイルのバックアップ
|
|
|
|
exec('/bin/tar zcfv '.$flbckp.$fname.'.tar.gz /work/storage/app/private/*');
|
|
|
|
|
|
|
|
// 全てのSQLファイルを読み込むと、古いやつを削除する。
|
|
|
|
foreach (scandir($dbbckp) as $s) {
|
|
|
|
if ($s == '.' || $s == '..') continue;
|
|
|
|
$t = str_replace('_mysql.sql.gz', '', $s); // extの削除
|
|
|
|
$t = preg_replace('/[\w\d]{2}$/', '', $t); // 時間の削除
|
|
|
|
if (strtotime($t) < time()-604800) {
|
|
|
|
exec('/bin/rm -rf '.$dbbckp.$s);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 全てのTARファイルを読み込むと、古いやつを削除する。
|
|
|
|
foreach (scandir($flbckp) as $s) {
|
|
|
|
if ($s == '.' || $s == '..') continue;
|
|
|
|
$t = str_replace('.tar.gz', '', $s); // extの削除
|
|
|
|
$t = preg_replace('/[\w\d]{2}$/', '', $t); // 時間の削除
|
|
|
|
if (strtotime($t) < time()-604800) {
|
|
|
|
exec('/bin/rm -rf '.$flbckp.$s);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})->twiceDaily(0, 12);
|
2021-08-03 15:34:15 +09:00
|
|
|
// $schedule->command('inspire')->hourly();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Register the commands for the application.
|
|
|
|
*
|
|
|
|
* @return void
|
|
|
|
*/
|
|
|
|
protected function commands()
|
|
|
|
{
|
|
|
|
$this->load(__DIR__.'/Commands');
|
|
|
|
|
|
|
|
require base_path('routes/console.php');
|
|
|
|
}
|
|
|
|
}
|