文章归档

cpanel自动备份教程详解+正解(更正网络流传的错误版本)

20110219

从2011年1月底与咪仔讨论建网站的事情,到1.31正式购买衡天小张的主机和域名,接近半个月了。半个月的时间,从对wordpress的憧憬,到目前对cpanel及wordpress的娴熟,网站逐渐建立起来了。随之而来,想到了网站的备份问题。我是医学生,平时的学习很紧张,每天手动备份自然也不是办法。懒人自有懒招,这不,伟大的股沟让我学到了一些方法。现与大家分享:

一、利用WP-DBManager插件自动备份数据库到邮箱:

1.WP-DBManager介绍:

WP-DBManager是wordpress的数据备份插件,目前已经更新到2.50。用途是对WordPress 的数据库进行管理,从而省去了用户必须使用类似PhpMyadmin登录数据库进行备份、修复、导入等操作,并且可以前台执行 SQL 语句。
该备份插件功能强大,能自动备份数据库文件,只要你设置了自动备份时间,到时间后该系统会自动备份你的wordpress数据;备份数据库的下载、删除、恢复,包括把数据库发送到指定的邮箱;优化、修复、清空、删除数据库表;执行SQL查询等,总之该有的功能应该都有了。

2.WP-DBManager插件安装:

后台–插件–添加新插件–搜索”WP-DBManager”—安装–激活–设置

3.自动备份设置:

进入左侧的Database→DB options,拉到最下面,看到Automatic Scheduling,在Automatic Backing Up Of DB里面填写备份的频率和收取备份邮件的邮箱地址就ok啦。(前提是你的主机支持php的mail函数)

在此建议各位用QQ邮箱,然后在QQ邮箱里面建立个收信规则,把每次备份的邮件都归类到一个文件夹里面,这样,你的数据库就高枕无忧啦!

二、利用cPanel的Cron Jobs 定时自动备份你的全站

为了防止网站出意外,我设定了每三天备份一次数据库,每周手动备份一次整站数据。但时间长了,未免有些麻烦。伟大的cpanel给我们提供了完美的解决办法。

cPanel自带了全站备份工具,并且能够发送到远程FTP。配合cpanel的Cron Jobs(中文名:始终守护作业)就可以自动执行php脚本,将备份好的gz文件传送到你的远程FTP。在FTP的选择上,我用的是000webhost的免费主机,容量速度神马的可以满足备份的需要了。

我在网上找到了一个名为fullbackup的php文件,连续测试了一天,却只能备份,不能传送到远程FTP。最终,万般无奈之下,橙子硬着头皮去找了原作者的老巢,发现这个php文件是2006年编写的。娘的,这都五年过去了,黄花闺女都长大了,cpanel早就变了。

可怜苍天有眼,看在我折腾了一天的份上,让我在cpanel.net上猛然间看到了一个外国人写的新版本。按照他的描述,(After a cPanel update, the well-known cPanel backup script (from Justin Cook or Max Hedroom – one source: Automatic cPanel backup (domain & MySQL) with cron & PHP ) I used for a number of years was no longer working.),在cpanel更新了之后,他也郁闷的发现自己的自动备份功能被上帝吃了。

于是愤怒的他自己修改了代码。

废话少说,奉上方法:

1.下载脚本,或者将下面内容复杂到编辑器,另保存为 fullbackup.php

 <?php
// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords. KEEP ACCESS TO THIS FILE SECURE! (place it in your home dir, not /www/)
//作者:benspun http://forums.cpanel.net/f49/update-cpanel-backup-script-justin-cook-max-hedroom-if-can-help-135265.html
//中文翻译:橙子 www.dopamine.cc
//本脚本用于自动备份整站数据并自动传送到远程FTP,适用于cpanel。
//本脚本包含cpanel及FTP的密码信息!建议放在/public_html以外的地方!!!
// ********* 以下内容需要更改 *********
// Info required for cPanel access
$cpuser = “*******”; // 这里填写你的cpanel用户名
$cppass = “*******”; // 这里填写你的cpanel密码
$domain = “*******”; // 这里填写你的cpanel上的域名
$skin = “x3″; // 设定你使用的cpanel主题,一般人都是x3主题,如果你的是别的,请更改。设置不正确将不能运行脚本。
// Info required for FTP host
$ftpuser = “*******”; // 你要使用的远程FTP的账号。注意,不是你的cpanel的ftp账号。
$ftppass = “*******”; // FTP密码
$ftphost = “*******”; // FTP的地址或IP
$ftpmode = “ftp”; // FTP 模式 (“ftp” 或者 “passiveftp”,一般为FTP即可)
$ftpport = “21″; // 端口 (default = 21)
$rdir = “/”; // 远程ftp保存文件的路径,默认为根目录 (defaut = / )
// Notification information
$notifyemail = “*******”; // 你接受报告的邮箱地址。
// Secure or non-secure mode
$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP
// Set to 1 to have web page result appear in your cron log
$debug = 0;
// *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********
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&port=$ftpport&rdir=$rdir&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);
?>

这个全局脚本包含cPanel的登录帐号和密码,为了安全考虑,需要将这个脚本放到public_html文件夹以外的文件夹中,比如:“/home/yourname/backup”,并设置该文件夹的权限为600。切记!

2.填写好相关信息,修改文件名为fullbackup.php

3.将上述脚本上传到“/home/yourdomain/beifen”目录。(没有可以新建beifen目录)

4.将beifen目录的权限改为600

5.打开cpanel面板的时钟守护作业(Cron Jobs)。

选择作业频率,在command栏输入/usr/bin/php -q /home/yourname/backup/fullbackup.php

3.自动备份完成后,你就可以在远程FTP上看到备份好的文件了。

做到这一步,恭喜你!你的cpanel就会忠诚的给你定时备份啦!

 

 

无觅相关文章插件,快速提升流量