使用cpanel后台的“时钟守护作业”功能完成空间的定时全备份

现在不少虚拟主机都是使用的cpanel控制面板,由于空间商选用的cpanel版本不同,有的带有定时备份功能,而有的就没有这项功能,需要手动备份。不过,还在绝大部分的cpanel后台都有“时钟守护作业”这个功能——这个功能可以实现定时执行某些指令,对空间进行定时全备份,自然也是可以的。下面,我们就介绍下如何利用cpanel后台的“时钟守护作业”功能巧妙地完成空间定时备份!

 

首先,创建功能文件

要想进行定时备份,只有定时功能是不够的,还需要有备份功能,而这个备份功能就需要我们自己添加了,好在,可以使用php代码实现。

1、登陆空间后台,文件–>文件管理,进入根目录下,创建“backup.php”文件。(案例路径是:/home/bhld/backup.php)切记,千万不要在public_html下创建此文件,不然,很可能会被他人恶意执行。

2、打开“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 = “bhld”;             // CPanel帐号
$cppass = “bluehost”;     // CPanel密码
$domain = “12.14.7.1”;  // cPanel所在域名或IP
$skin = “x3″;                      // 正在使用的cPanel风格,默认”x3″,可以在cpanel后台查看。

/************** 备份目的地 ***************
*”homedir” – 本地主目录
*”ftp” – 远程FTP备份(主动模式)
*”passiveftp” – 远程FTP备份(被动模式)
*”scp” – 加密传输(需服务器支持)
****************************************/
$savedir = “homedir”; // 备份目的地,默认”ftp”,直接将备份传至FTP空间;此处我设置为保存到本服务器。

// 远程FTP上传的信息(备份目的地为本地“homedir”的,可不填)

$ftpuser = “”; // FTP帐号
$ftppass = “”; // FTP密码
$ftphost = “*.*.*.*”; // FTP服务器IP
$ftpport = “21”; // FTP端口,默认21
$ftprdir = “/”; // 远程FTP目录,默认”/”

// 邮箱通知信息
$notifyemail = “1209461019@qq.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! ”; 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 ”);
fputs($socket,”Host: $domain ”);
fputs($socket,”Authorization: Basic $pass ”);
fputs($socket,”Connection: Close ”);
fputs($socket,” ”);

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

fclose($socket);

?>

其次,测试功能文件

根据要求修改保存后,如果你的空间已经开通ssh,可以执行linux指令测试备份效果。

使用putty软件登陆ssh,进入“backup.php”所在目录,执行linux指令:php -f backup.php。空间便开始正常备份,备份结束后还会邮件通知你。

最后,设置时钟守护

1、登陆cpanel后台,高级–>时钟守护作业,在电子邮箱处填写常用邮箱并更新。每次定时全备份的情况都会通过此邮件通知你。

2、在“添加新计时程序作业”把时间设置为“1号和15号”或者“每月一次”。全备份不要太频繁,否则会增加服务器压力。

3、在命令处,填写如下命令:php -f 绝对路径/文件名。如:php -f /home/bhld/backup.php。

4、点击“添加”,添加此时钟守护作业。

至此,设置已经完成。要注意的是:具体时间以服务器时间为准,与用户所在地有一定的时间差(包括时区差),不过影响不是很大。

来自:http://www.lidetao.com/cpanel-all-backup.html

原文地址:https://www.cnblogs.com/zytrue/p/8496921.html