定期的にバックアップ取るときに使って欲しい。

<?php

define('DB_HOST', 'localhost');
define('DB_NAME', 'database_name');
define('DB_USER', 'database_user');
define('DB_PASSWORD', 'database_password');
define('DB_BACKUP_DIR', '/var/www/html/backup/');
define('EMAIL_TO', 'info@example.com');
define('EMAIL_FROM', 'info@example.com');
define('PERIOD_DAY', '365'); // バックアップファイルの保存期間

system('chmod 705 ' . DB_BACKUP_DIR);
$isSuccessBackup = system('mysqldump --default-character-set=utf8 ' . DB_NAME . ' --host=' . DB_HOST . ' --user=' . DB_USER . ' --password=' . DB_PASSWORD . ' > ' . DB_BACKUP_DIR . date('Y_m_d_H_i') . '.sql');
$isSuccessDeleteFile = system('find ' . DB_BACKUP_DIR . ' -type f -daystart -mtime +' . PERIOD_DAY . ' | xargs rm -rv {} \ ');

// メール送信
mb_language('Japanese'); 
mb_internal_encoding('UTF-8');

if ($isSuccessBackup === false) {
	mb_send_mail(
    EMAIL_TO,
    'データベースのバックアップが失敗しています',
    'データベースのバックアップが失敗しています。管理者にお問合せください。',
    'From: ' . EMAIL_FROM,
    '-f ' . EMAIL_FROM
  );
} elseif ($isSuccessDeleteFile === false) {
	mb_send_mail(
    EMAIL_TO,
    '古いデータベースの削除に失敗しました',
    '古いデータベースの削除に失敗しました。管理者にお問合せください。',
    'From: ' . EMAIL_FROM,
    '-f ' . EMAIL_FROM
  );
} else {
	mb_send_mail(
    EMAIL_TO,
    'データベースのバックアップが完了しました',
    'データベースのバックアップが完了しました。',
    'From: ' . EMAIL_FROM,
    '-f ' . EMAIL_FROM
  );
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA