내 QQ 메일함 용량은 16G인데 용량은 무제한이고 자동으로 늘어난다고 합니다. vps에서 웹사이트 백업에 사용하면 공간도 차지하지 않고 편리하지 않나요! 포장한 후 sendmail을 사용하여 QQ 사서함으로 보내는 방법이 있습니다. 간단하고 빠릅니다.
나는 PHP에 비교적 익숙하며 PHPMailer-Lite를 사용하여 sendmail을 호출하여 백업 파일을 보냅니다. sendmail을 사용할 수 없는 경우 smtp를 사용하여 보낼 수 있지만 속도가 느려집니다.
대규모 웹사이트의 첨부파일을 매일 저장한다면 이 방법을 이용하여 매일 첨부파일을 패키지화하여 백업할 수도 있습니다. 어쨌든 QQ 메일은 용량이 무제한이므로 헛되이 사용할 필요가 없습니다.
인용된 내용은 다음과 같습니다.
<?php
/**
* 블로그 백업 및 이메일로 보내기
* 매우 편리하며 소규모 사이트 백업에 적합
*
* 용법:
* /usr/local/php/bin/php /path/to/mailbackup.php
*
* @저자 판춘멍<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/'; // 웹사이트의 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-His-');
"백업 메시지:n"을 인쇄합니다.
"백업 시작:".date('Ymd H:i:s')."n"을 인쇄합니다.
//패키지 첨부
$attGz = "/tmp/{$gzPre}{$attBakFile}" // 보낼 압축 첨부 파일 패키지
system("tar zcf $attGz $attDir");
"$attGz 완료!n"을 인쇄하세요;
//데이터베이스 파일을 복사하여 패키지화합니다.
$dbGz = "/tmp/{$gzPre}{$dataBakFile}" // 전송할 첨부파일 데이터베이스 압축 패키지
$dbTmp = "/tmp/{$gzPre}db_bak_tmp";
system("cp -R $dataDir $dbTmp");
system("tar zcf $dbGz $dbTmp");
"$dbGz 완료!n"을 인쇄하세요;
$mail = 새로운 PHPMailerLite(true);
$mail->IsSendmail();
노력하다 {
$msg = '';
$mail->SetFrom($mailFrom, 'Bak');
$mail->AddAddress($mailTo, 'cm 팬');
$mail->제목 = 'Yulans.cn 백업';
$mail->AltBody = 날짜('Ymd H:i:s').'!';
$mail->MsgHTML(date('Ymd H:i:s').'! 확인');
//첨부파일 추가
if(file_exists($attGz)) {
$mail->첨부파일 추가($attGz);
$msg .= "첨부파일 추가 $attGz 완료!<br />n";
} 또 다른 {
$msg .= "$attGz 첨부 파일이 존재하지 않습니다!<br />n";
}
if(file_exists($dbGz)) {
$mail->첨부파일추가($dbGz);
$msg .= "첨부파일 추가 $dbGz 완료!<br />n";
} 또 다른 {
$msg .= "$dbGz 첨부 파일이 존재하지 않습니다!<br />n";
}
$msg를 인쇄하세요;
$mail->MsgHTML($msg);
$mail->보내기();
} 잡기 (phpmailerException $e) {
echo $e->errorMessage();
} 잡기(예외 $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 스크립트의 경로