[英]PHP & MySQL - What is the logic on how to use mysqldump to backup your database and send it to an email address using PHP?
我想知道如何使用mysqldump備份數據庫並將數據使用PHP發送到電子郵件地址嗎?
這需要phpmailer :
<?php
require("class.phpmailer.php");
header("Content-type: text/plain");
// --- MySQL et path --------------------------------------------------------
$mysql_host = 'XXXXXXX';
$mysql_username = 'XXXXXXX';
$mysql_password = 'XXXXXXX';
$mysql_db = 'XXXXXXX';
$mail_to1 = 'XXXXXXXXXXXXXXXXXXXX';
$mail_to1_name = 'XXXXXXXXX';
$mail_to2 = 'XXXXXXXXXXXXXXXXXXXX';
$mail_to2_name = 'XXXXXXXXX';
// --------------------------------------------------------------------------
$fname = '' . $mysql_db . '_' . strftime('%Y%m%d-%H%M%S') . '.sql.gz';
echo "Backing up to $fname\n";
system('mysqldump --host=' . $mysql_host . ' --user=' . $mysql_username .
' --password=' . $mysql_password . ' ' . $mysql_db . ' | gzip >' .
$fname);
$mail = new PHPMailer();
$mail->SetLanguage("en", "language/");
$mail->From = 'XXXXXXXXXXXXXXXXXXXXXX';
$mail->FromName = 'Webmaster';
$mail->AddAddress($mail_to1, $mail_to1_name);
$mail->AddAddress($mail_to2, $mail_to2_name);
$mail->WordWrap = 50; // set word wrap to 50 characters
$mail->IsHTML(false); // set email format to plain text
$mail->Subject = '[XXX] Backup MySQL - ' . strftime('%x %X');
$mail->Body = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
if (!$mail->AddAttachment($fname)) // add attachments
{
echo 'Erreur : ' . $mail->ErrorInfo . "\n";
$mail->Body .= "\n" . 'Erreur : ' . $mail->ErrorInfo;
}
if (!$mail->Send())
{
echo 'Message could not be sent. <p>';
echo 'Mailer Error: ' . $mail->ErrorInfo;
exit;
}
echo 'Message has been sent';
unlink($fname);
exit;
?>
在某些BDD上使用(主機僅提供一些php腳本作業,無cron),並且郵件被發送到gmail。 您可以在gzip中添加-9
或使用bzip獲得更好的壓縮效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.