Ma boîte mail QQ a une capacité de 16G On dit que la capacité est illimitée et augmentera automatiquement si elle est utilisée pour sauvegarder des sites web sur vps, elle ne prend pas de place et est pratique, ne serait-ce pas génial ! Il existe un moyen. Après l'emballage, utilisez sendmail pour envoyer vers la boîte aux lettres QQ, c'est simple et rapide.
Je connais relativement bien PHP et j'utilise PHPMailer-Lite pour appeler sendmail afin d'envoyer des fichiers de sauvegarde. Si vous ne pouvez pas utiliser sendmail, vous pouvez utiliser smtp pour envoyer, mais c'est plus lent.
Si les pièces jointes d'un grand site Web sont stockées quotidiennement, vous pouvez également utiliser cette méthode pour regrouper et sauvegarder quotidiennement les pièces jointes. Quoi qu'il en soit, le courrier QQ a une capacité illimitée, il n'est donc pas nécessaire de l'utiliser en vain.
Besoin de télécharger http://nchc.dl.sourceforge.net/PRoject/phpmailer/phpmailer%20for%20php5_6/PHPMailer-Lite%20v5.1/PHPMailer-Lite_v5.1.zip
Voici le contenu cité :
<?php
/**
* Sauvegarde du blog et envoi par e-mail
* Très pratique et adapté à la sauvegarde de petits sites
*
*utilisation :
* /usr/local/php/bin/php /path/to/mailbackup.php
*
* @auteur Pan Chunmeng<cmpan(at)qq.com>
* @link <a href=" http://yulans.cn/php/mail-backup">yulans.cn</a >
* @licence NEWBSD
*/
//require_once('class.phpmailer-lite.php');
require_once('PHPMailerLite.php');
// installation
$mailTo = '[email protected]' ; // À quelle adresse e-mail envoyer
$mailFrom = '[email protected]' ; // Adresse email pour l'envoi des pièces jointes
$dataDir = '/data/MySQL/3306/data/yulans/'; // Chemin de la base de données MySQL du site Web
$attDir = '/web/yulans.cn/www/wp-content/uploads/'; // Chemin de la pièce jointe
$dataBakFile = 'uploads.yulans.cn.gz';
$attBakFile = 'data.yulans.cn.gz';
date_default_timezone_set('Asie/Shanghai'); // PHP 5 >= 5.2.0
$gzPre = date('Ymd-His-');
imprimer "Message de sauvegarde :n" ;
print "début de la sauvegarde :".date('Ymd H:i:s')."n";
//Pièces jointes du paquet
$attGz = "/tmp/{$gzPre}{$attBakFile}" ; // Package de pièce jointe compressé à envoyer
system("tar zcf $attGz $attDir");
print "$attGz terminer!n";
// Copiez le fichier de base de données et emballez-le
$dbGz = "/tmp/{$gzPre}{$dataBakFile}" // Package de compression de la base de données des pièces jointes à envoyer
$dbTmp = "/tmp/{$gzPre}db_bak_tmp";
system("cp -R $dataDir $dbTmp");
system("tar zcf $dbGz $dbTmp");
print "$dbGz terminer!n";
$mail = nouveau PHPMailerLite(true);
$mail->IsSendmail();
essayer {
$msg = '';
$mail->SetFrom($mailFrom, 'Bak');
$mail->AddAddress($mailTo, 'cm pan');
$mail->Sujet = 'Sauvegarde Yulans.cn';
$mail->AltBody = date('Ymd H:i:s').'!';
$mail->MsgHTML(date('Ymd H:i:s').'! OK');
//Ajouter une pièce jointe
si(file_exists($attGz)) {
$mail->AddAttachment($attGz);
$msg .= "AddAttachment $attGz terminé !<br />n";
} autre {
$msg .= "La pièce jointe $attGz n'existe pas !<br />n";
}
si(file_exists($dbGz)) {
$mail->AddAttachment($dbGz);
$msg .= "AddAttachment $dbGz terminé !<br />n";
} autre {
$msg .= "La pièce jointe $dbGz n'existe pas !<br />n";
}
imprimer $msg ;
$mail->MsgHTML($msg);
$mail->Envoyer();
} catch (phpmailerException $e) {
echo $e->message d'erreur();
} catch (Exception $e) {
echo $e->getMessage();
}
// Supprime les fichiers temporaires
système("rm -f $attGz");
système("rm -f $dbGz");
système("rm -rf $dbTmp");
imprimer « Fin de la sauvegarden » ;
Une fois que tout le contenu du fichier ci-dessus est téléchargé sur le serveur, créez un nouveau fichier dans /etc/cron.daily/ pour permettre au système d'exécuter le script de sauvegarde quotidiennement. Le contenu est :
#!/bin/sh
/webserver/php/bin/php /path/to/worker.php #Le chemin du script php ci-dessus