私のQQメールボックスの容量は16Gで容量は無制限とのことですが、vps上のWebサイトのバックアップに使えば容量もかからず便利ですよね!パッケージ化した後、sendmail を使用して QQ メールボックスに送信する方法があります。これは簡単で高速です。
私は PHP に比較的慣れており、PHPMailer-Lite を使用して sendmail を呼び出してバックアップ ファイルを送信します。 sendmail を使用できない場合は、smtp を使用して送信できますが、速度が遅くなります。
大規模な Web サイトの添付ファイルを毎日保存している場合は、この方法を使用して添付ファイルを毎日パッケージ化してバックアップすることもできます。とにかく、QQ メールは容量が無制限なので、無駄に使用する必要はありません。
http://nchc.dl.sourceforge.net/PRoject/phpmailer/phpmailer%20for%20php5_6/PHPMailer-Lite%20v5.1/PHPMailer-Lite_v5.1.zipをダウンロードする必要があります。
引用した内容は以下の通りです。
<?php
/**
* ブログのバックアップとメールへの送信
* 非常に便利で小規模サイトのバックアップに適しています
*
* 使用法:
* /usr/local/php/bin/php /path/to/mailbackup.php
*
* @author 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');
// 設定
$mailTo = '[email protected]' // 送信先のメール アドレス
$mailFrom = '[email protected]' ; // 添付ファイルを送信するためのメールアドレス
$dataDir = '/data/MySQL/3306/data/yulans/' // Web サイトの MySQL データベース パス
$attDir = '/web/yulans.cn/www/wp-content/uploads/'; // 添付ファイルのパス
$dataBakFile = 'uploads.yulans.cn.gz';
$attBakFile = 'data.yulans.cn.gz';
date_default_timezone_set('アジア/上海') // PHP 5 >= 5.2.0;
$gzPre = date('Ymd-彼の-');
print "バックアップ メッセージ:n";
print "バックアップ開始:".date('Ymd H:i:s')."n";
//添付ファイルをパッケージ化する
$attGz = "/tmp/{$gzPre}{$attBakFile}" // 送信される圧縮添付パッケージ
system("tar zcf $attGz $attDir");
print "$attGz 終了!n";
//データベースファイルをコピーしてパッケージ化する
$dbGz = "/tmp/{$gzPre}{$dataBakFile}" // 送信される添付ファイル データベース圧縮パッケージ
$dbTmp = "/tmp/{$gzPre}db_bak_tmp";
system("cp -R $dataDir $dbTmp");
system("tar zcf $dbGz $dbTmp");
print "$dbGz 終了!n";
$mail = 新しい PHPMailerLite(true);
$mail->IsSendmail();
試す {
$msg = '';
$mail->SetFrom($mailFrom, 'Bak');
$mail->AddAddress($mailTo, 'cm パン');
$mail->件名 = 'Yulans.cn バックアップ';
$mail->AltBody = date('Ymd H:i:s').'!';
$mail->MsgHTML(date('Ymd H:i:s').'! OK');
//添付ファイルを追加
if(file_exists($attGz)) {
$mail->AddAttachment($attGz);
$msg .= "AddAttachment $attGz 終了!<br />n";
} それ以外 {
$msg .= "添付ファイル $attGz は存在しません!<br />n";
}
if(file_exists($dbGz)) {
$mail->AddAttachment($dbGz);
$msg .= "AddAttachment $dbGz 終了!<br />n";
} それ以外 {
$msg .= "添付ファイル $dbGz が存在しません!<br />n";
}
$msg を出力します。
$mail->MsgHTML($msg);
$mail->Send();
} キャッチ (phpmailerException $e) {
echo $e->errorMessage();
} catch (例外 $e) {
echo $e->getMessage();
}
// 一時ファイルを削除する
system("rm -f $attGz");
system("rm -f $dbGz");
system("rm -rf $dbTmp");
「バックアップ終了n」を印刷します。
上記のファイルの内容がすべてサーバーにアップロードされたら、/etc/cron.daily/ に新しいファイルを作成して、システムがバックアップ スクリプトを毎日実行できるようにします。内容は次のとおりです。
#!/bin/sh
/webserver/php/bin/php /path/to/worker.php #上記のphpスクリプトのパス