Mein QQ-Postfach hat eine Kapazität von 16 GB. Es wird gesagt, dass die Kapazität unbegrenzt ist und sich automatisch erhöht, wenn es zum Sichern von Websites auf VPS verwendet wird. Es nimmt keinen Platz ein und ist praktisch. Wäre das nicht großartig? Es gibt eine Möglichkeit, nach dem Packen sendmail zum Senden an die QQ-Mailbox zu verwenden. Dies ist einfach und schnell.
Ich bin relativ vertraut mit PHP und verwende PHPMailer-Lite, um sendmail aufzurufen und Sicherungsdateien zu senden. Wenn Sie sendmail nicht verwenden können, können Sie zum Senden auch SMTP verwenden, dies ist jedoch langsamer.
Wenn die Anhänge einer großen Website täglich gespeichert werden, können Sie diese Methode auch zum täglichen Verpacken und Sichern von Anhängen verwenden. QQ-Mail verfügt jedoch über eine unbegrenzte Kapazität, sodass Sie sie nicht umsonst verwenden müssen.
Sie müssen http://nchc.dl.sourceforge.net/PRoject/phpmailer/phpmailer%20for%20php5_6/PHPMailer-Lite%20v5.1/PHPMailer-Lite_v5.1.zip herunterladen
Nachfolgend der zitierte Inhalt:
<?php
/**
* Blog-Sicherung und E-Mail-Versand
* Sehr praktisch und für die Sicherung kleiner Sites geeignet
*
* Verwendung:
* /usr/local/php/bin/php /path/to/mailbackup.php
*
* @Autor Pan Chunmeng<cmpan(at)qq.com>
* @link <a href=" http://yulans.cn/php/mail-backup">yulans.cn</a >
* @license NEWBSD
*/
//require_once('class.phpmailer-lite.php');
require_once('PHPMailerLite.php');
// aufstellen
$mailTo = '[email protected]' ; // An welche E-Mail-Adresse gesendet werden soll
$mailFrom = '[email protected]' ; // E-Mail-Adresse zum Senden von Anhängen
$dataDir = '/data/MySQL/3306/data/yulans/'; // MySQL-Datenbankpfad der Website
$attDir = '/web/yulans.cn/www/wp-content/uploads/'; // Anhangspfad
$dataBakFile = 'uploads.yulans.cn.gz';
$attBakFile = 'data.yulans.cn.gz';
date_default_timezone_set('Asien/Shanghai'); // PHP 5 >= 5.2.0
$gzPre = date('Ymd-His-');
print „Backup-Nachricht:n“;
print "backup start:".date('Ymd H:i:s')."n";
//Paketanhänge
$attGz = "/tmp/{$gzPre}{$attBakFile}" // Komprimiertes Anhangspaket zum Senden
system("tar zcf $attGz $attDir");
print "$attGz fertig!n";
//Kopieren Sie die Datenbankdatei und verpacken Sie sie
$dbGz = "/tmp/{$gzPre}{$dataBakFile}" // Zu sendendes Anhang-Datenbankkomprimierungspaket
$dbTmp = "/tmp/{$gzPre}db_bak_tmp";
system("cp -R $dataDir $dbTmp");
system("tar zcf $dbGz $dbTmp");
print "$dbGz fertig!n";
$mail = new PHPMailerLite(true);
$mail->IsSendmail();
versuchen {
$msg = '';
$mail->SetFrom($mailFrom, 'Bak');
$mail->AddAddress($mailTo, 'cm pan');
$mail->Subject = 'Yulans.cn-Backup';
$mail->AltBody = date('Ymd H:i:s').'!';
$mail->MsgHTML(date('Ymd H:i:s').'! OK');
//Anhang hinzufügen
if(file_exists($attGz)) {
$mail->AddAttachment($attGz);
$msg .= "AddAttachment $attGz fertig!<br />n";
} anders {
$msg .= "Anhang $attGz existiert nicht!<br />n";
}
if(file_exists($dbGz)) {
$mail->AddAttachment($dbGz);
$msg .= "AddAttachment $dbGz fertig!<br />n";
} anders {
$msg .= "Anhang $dbGz existiert nicht!<br />n";
}
$msg drucken;
$mail->MsgHTML($msg);
$mail->Send();
} Catch (phpmailerException $e) {
echo $e->errorMessage();
} Catch (Ausnahme $e) {
echo $e->getMessage();
}
// Temporäre Dateien löschen
system("rm -f $attGz");
system("rm -f $dbGz");
system("rm -rf $dbTmp");
print „Sicherung abgeschlossenn“;
Nachdem alle oben genannten Dateiinhalte auf den Server hochgeladen wurden, erstellen Sie eine neue Datei in /etc/cron.daily/, damit das System das Sicherungsskript täglich ausführen kann. Der Inhalt ist:
#!/bin/sh
/webserver/php/bin/php /path/to/worker.php #Der Pfad des obigen PHP-Skripts