您尚未登录。

#1 2012-03-27 19:25:52

caizhengzhu
管理员

Cpanel主机定时备份

摘自网络上的,修改了一些:

1.新建backup.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 = "domain.com"; // cPanel所在域名或IP
$skin = "x3"; // 正在使用的cPanel风格,默认"x3"。

/************** 备份目的地 ***************
"homedir" - 本地主目录
"ftp" - 远程FTP备份(主动模式)
"passiveftp" - 远程FTP备份(被动模式)
"scp" - 加密传输(需服务器支持)
****************************************/
$savedir = "ftp"; // 备份目的地,默认"ftp",直接将备份传至FTP空间。

// FTP上传的信息(备份目的地为本地的,可不填)

$ftpuser = "username"; // FTP帐号
$ftppass = "passoword"; // FTP密码
$ftphost = "ftp.domain.com"; // FTP服务器IP
$ftpport = "21"; // FTP端口,默认21
$ftprdir = "/backup/"; // 远程FTP目录,默认"/"

// 通知信息
$notifyemail = "username@gmail.com"; // 信息反馈邮件地址,自行修改

// 安全模式
$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=$savedir&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&port=$ftpport&rdir=$ftprdir&submit=Generate Backup";

// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
fputs($socket,"Host: $domain\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");
fputs($socket,"\r\n");

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

fclose($socket);

?>

2.虚拟主机根目录下/home/user新建目录backup,将上述backup传到该目录,修改安全属性为600

3.在cpanel的时钟守护作业中添加定时备份的时间,其中命令为

php -q /home/username/backup/backup.php

离线

#2 2012-04-19 18:55:51

caizhengzhu
管理员

回复: Cpanel主机定时备份

注:上述$domain = "domain.com"  一定要能指向Cpanel的源IP  ,上次自己网站做CDN,domain.com的A记录指向了CDN主机的IP,导致无法备份。此处可以单独创建一个A记录的域名指向Cpanel主机。

离线

#3 2012-09-24 09:23:12

caizhengzhu
管理员

回复: Cpanel主机定时备份

有的主机将backup文件夹权限设定为700(最好设定为600,但经测试部分主机设定backup文件夹为600之后,文件夹内的脚本权限自动成为000,导致自动任务运行访问被拒绝!)

离线

#4 2012-09-24 09:34:17

caizhengzhu
管理员

回复: Cpanel主机定时备份

有的主机不能定时备份成功是因为禁用了fsockopen函数

离线

在此主题中在线的注册用户:0, 访客:1
[Bot] ClaudeBot

论坛底部