主机论坛_虚拟主机_美国主机_美国虚拟主机_云主机技术_全球主机交流聚集地—Web Hosting Talk 中文站

找回密码
立即注册
发新帖

0

收听

3

听众

627

主题
发表于 2014-8-7 17:14:34 | 查看: 1109| 回复: 0
我们现在购买的国外主机,例如本站推荐justhost、bluehost、hostmonster等等国外主机,一般都使用cPanel面板。网站数据的重要性我说的那么明白,那就是站长的命根子,就算再稳定的主机商也会有当机的情况存在,所以,你如何备份你的数据?是每天登陆cPanel后台,手动备份?如果是这样子,就有点麻烦,今天,我们分享一个利用cPanel面板的定时任务来自动定时备份上传FTP到其他空间的方法。
首先,我们需要了解下这个方式实现的效果和原理。这是利用cPanel面板的时钟守护作业自动定时实现全局备份,然后FTP上传至自己指定的其他FTP空间(或者服务器)。
然后,我们将下面的代码复制存为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 = "vpsaa"; // CPanel帐号
$cppass = "123456"; // CPanel密码
$domain = "*.*.*.*"; // cPanel所在域名或IP
$skin = "x3"; // 正在使用的cPanel风格,默认"x3"。
/************** 备份目的地 ***************
"homedir" - 本地主目录
"ftp" - 远程FTP备份(主动模式)
"passiveftp" - 远程FTP备份(被动模式)
"scp" - 加密传输(需服务器支持)
****************************************/
$savedir = "ftp"; // 备份目的地,默认"ftp",直接将备份传至FTP空间。
// FTP上传的信息(备份目的地为本地的,可不填)
$ftpuser = "vpsaa"; // FTP帐号
$ftppass = "123456"; // FTP密码
$ftphost = "*.*.*.*"; // FTP服务器IP
$ftpport = "21"; // FTP端口,默认21
$ftprdir = "/"; // 远程FTP目录,默认"/"
// 通知信息
$notifyemail = "admin@zrblog.net"; // 信息反馈邮件地址,自行修改
// 安全模式
$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);
?>
请注意上面代码中的部分内容,请根据您自己的信息设定。或者,您可以下载这份文件自行修改:点击下载backup.php
接下来,我们打开cPanel文件管理器,在根目录的上级目录(即public_html同级目录)建议一个文件夹:backup,然后将我们修改好的脚本(backup.php)传入该文件夹。
***特别提示***基于安全方面考量,请将backup文件夹权限设定为700(最好设定为600,但经测试部分主机设定backup文件夹为600之后,文件夹内的脚本权限自动成为000,导致自动任务运行访问被拒绝!)
下面,登陆我们的cPanel面板,点击“时钟守护作业”

然后,添加时钟守护作业:
php -q /home/你的名称/backup/fullbackup.php

***关于时钟守护作业,我们可以设定他的运行方式,每天一次,或者每周一次。我建议大家设定每周一次,另外,运行的时间可以选择在深夜或者凌晨,对网站访问无影响时间段。***
好了,做好这些以后,在我们设定的时间,去我们设定的FTP空间就能看到我们的网站全局备份资料了。
这下就不用再担心自己的数据丢失问题

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|WebHostingTalk中文站

GMT+8, 2024-5-3 22:37 , Processed in 0.070039 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表