cPanel虚拟空间定时全局备份方案

好久没写东西了,今天是儿童节了,一岁一蹉跎啊,还是打起精神来!

说说我采用的全局备份方案吧:

简单的说就是用cPanel的Cron Jobs来定时运行全局备份脚本并自动FTP上传到其他的服务器(或客户端)

附上全局备份脚本,请自行复制修改为正确的配置并保存为fullbackup.php

[php]

// PHP script to allow periodic cPanel backups automatically.
// Based on script posted by max.hedroom in cpanel.net forums
//   This script contains passwords.  KEEP ACCESS TO THIS FILE SECURE!

// ********* 下列项目需要设定 *********

// cPanel登入信息
$cpuser = "username"; // 登入cPanel的帐号
$cppass = "password"; // 登入cPanel的密码
$domain = "example.com"; // cPanel使用的网域
$skin = "monsoon"; // 设定正在使用的cPanel风格(例如:x, rvblue等,不正确将不能正常运行本脚本)

// FTP上传的信息(这是不是指你CPanel所在服务器的FTP信息)
$ftpuser = "ftpusername"; // FTP帐号
$ftppass = "ftppassword"; // FTP密码
$ftphost = "ftp.example.com"; // FTP服务器网址(或ip)
$ftpmode = "ftp"; // FTP模式("ftp"或"passiveftp")

// 通知信息
$notifyemail = "[email protected]"; // 寄发执行结果的e-mail地址
// 安全模式
$secure = 0; // 0为标准http, 1为ssl(需要主机支援ssl功能)

// 设定值为1时会在排程记录中产生网页报告
$debug = 0;

// *********** 以下不需更改 *********

if ($secure) {
$url = "ssl://".$domain;
$port = 2083;
} else {
$url = $domain;
$port = 2082;
}

$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!n"; exit; }

// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);

$params = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&submit=Generate Backup";

// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0rn");
fputs($socket,"Host: $domainrn");
fputs($socket,"Authorization: Basic $passrn");
fputs($socket,"Connection: Closern");
fputs($socket,"rn");

// Grab response even if we don't do anything with it.
while (!feof($socket)) {
$response = fgets($socket,4096);
if ($debug) echo $response;
}

fclose($socket);

?>[/php]

接下来就是上传该文件到public_html目录下(增加安全性)并在Cron Jobs里面添加定时和备份命令了:

/usr/local/bin/php /home/jorwang/fullbackup.php

有点可以注意下:

Please enter an email address where the cron output will be sent:

本来这里也是填写一个执行信息反馈邮件地址的,由于我们在脚本里面已经设置,所以可以为空。

参考:http://www.totalchoicehosting.com/forums/index.php?showtopic=7787