このリポジトリは2023-09-09にアーカイブされています。 ファイルの閲覧とクローンは可能ですが、プッシュ、イシューの作成、プルリクエストはできません。
kikikan/backend/app/Console/Kernel.php

92 行
3.1 KiB
PHP

<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Models\TelActivation;
use App\Models\EmailActivation;
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)
{
$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();
$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);
// $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');
}
}